试图在ASSEMBLY语言中打印星号三角形

时间:2018-03-29 16:56:48

标签: assembly x86 tasm

.model small
.stack 100h
.data
space db 10,"$"
asteric db "*$"
.code
start:
mov cl,5
mov ax,@data
mov ds,ax
mov bl,0
mov al,0
l1:
mov ah,09
lea dx,space
int 21h
inc bl
cmp bl,cl
je exit
l2:
lea dx,asteric
int 21h
cmp al,bl
jl l2
inc al
jnl l1
exit:
mov ah,4ch
int 21h
end start

我不知道我在这里做错了什么,但它给了我这样的输出 输出:

*
*
*
*

我想要这样的输出: 输出:

*
**
***
****

而不是我得到的请帮助

1 个答案:

答案 0 :(得分:-3)

你需要在进入l2循环之前(在标题l2之前)将0归零,因为如果不是,它将计算你之前打印的所有时间。 你还需要在你做jl到l2之前加入,因为你需要计算你在这行中打印的次数,以及你按照它的方式计算行数。