汇编语言中的增量循环

时间:2015-02-26 14:24:53

标签: assembly x86 dos

我想打印

     *
    **
   ***
  ****
 *****
******
8086模拟器中的控制台上的模式,但我不知道如何在程序集中进行增量循环请帮帮我? 我正在尝试使用代码,但它不起作用

; You may customize this and other start-up templates; 
; The location of this template is c:\emu8086\inc\0_com_template.txt

org 100h

.data 

size dw 5
iner dw 1

.code

mov cx,size
dec cx

outer:

mov dx,cx

mov ah,2
mov dl,' '
int 21h

mov cx,5

inner:

mov ah,2
mov dl,'*'
int 21h



loop inner

mov ah,2



mov cx,dx 
loop outer

ret

1 个答案:

答案 0 :(得分:0)

无论下面的代码如何,你都会错过如下构造:

label:
//do something
    dec register
    jnz label

所以你的任务应该是这样的:

    place=1
    line_length=5

    space_count=line_length
print_spaces:
    mov ah,2
    mov dl,' '
    int 21h
    dec space_count
    jnz print_spaces

    dots_count=place
print_dots:
    mov ah,2
    mov dl,'*'
    int 21h
    dec dots_count
    jnz print_dots

    mov ah,2
    mov dl,'\n'
    int 21h
    inc place
    dec line_length
    jnz print_spaces

    ret