我需要减少cont2变量来制作一个三角形

时间:2015-03-25 23:22:35

标签: assembly

我有这个代码,我需要创建一个三角形。

我希望每次执行cont2时递减ciclo2变量。有人可以帮我吗?我无法找到减量的地方。

org 100h

;selecciona modo de vídeo
mov ah, 4FH
mov al, 02
mov bx, 13h ;modo gráfico 13H
int 10h
    mov cx, 80               ;coluna
    mov dx, 80               ;linha
    mov [cont], 30
    cicloc2:                   ;ciclo que repete a linha até fazer um quadrado
    mov [cont2], 30
            cicloc1:                    ;ciclo que cria a linha
            ;ativa um pixel
            mov ah, 0Ch               ;desenha nos pixeis do ecra
            mov al, 4                 ;determina a cor
            mov bh, 0                 ;numero de pagina grafica
            int 10h
            dec cx
            dec [cont2]
            jnz cicloc1
    mov cx, 80
    dec dx
    dec [cont2]
    dec [cont]
    jnz cicloc2

;leitura dummy para parar o ecran
mov ah, 07h
int 21h
;terminar, retorna ao SistemaOperativo
mov ah, 4ch
int 21h

;DECLARAÇÕES
 cont rb 1
 cont2 rb 1  

1 个答案:

答案 0 :(得分:0)

所以你希望内循环在外循环的每次迭代中少执行一次迭代?您可以通过使用外部循环计数器的值初始化内部循环计数器来完成此操作:

cicloc2:                   ;ciclo que repete a linha até fazer um quadrado
mov al,[cont]              
mov [cont2], al            ; cont2 will be initialized with 30, 29, 28, ...
        cicloc1:                    ;ciclo que cria a linha
        ;ativa um pixel
        mov ah, 0Ch               ;desenha nos pixeis do ecra
        mov al, 4                 ;determina a cor
        mov bh, 0                 ;numero de pagina grafica
        int 10h
        dec cx
        dec byte [cont2]
        jnz cicloc1
mov cx, 80
dec dx
dec byte [cont]
jnz cicloc2