0
これまでのところ、私はこのASM無限ループ
org 100h
.data
Input db "Enter size of the triangle between 2 to 9: $"
Size dw ?
.code
Main proc
Start:
Mov ah, 09h
Mov dx, offset input
int 21h
mov ah, 01h
int 21h;
sub al, '0'
mov ah, 0
mov size, ax
mov cx, ax
mov bx, 1
call newline
lines:
push cx
mov cx, bx
lines2: ; outer loop for number of lines
push cx
sub ax,bx
stars:
mov ah, 02h
mov dl, '*'
int 21h
loop stars
inc bx
call newline
pop cx
loop lines
loop lines2
exit:
mov ax, 4C00H
int 21h
main endp
proc newline
mov ah, 02h
mov dl, 13
int 21h
mov dl, 10
int 21h
ret
newline endp
end main
すべてが正常に動作して通ってループ持っています。私は3を入力した場合たとえば、私は
*
**
***
を取得し、プログラムは、しかし、私は私にこのような何かを与えて起動した直後に別のループを取得しようとしている停止します
*
**
***
***
**
*
を私が入る保ちます無限ループと私はこの問題を解決する方法を解決することはできません。誰かが私が間違っていることについていくつかの洞察を持っていますか?星 -
は、作業または非作業1投稿コードですか?それが前者の場合は、動作していないコードを投稿するか、それとも何が問題なのかを伝えることはできません。インデントしてコメントすることができれば、それは超甘いでしょう。 –
あなたは「MOVのCX、BX」とラインの「MOV CXを、[サイズ]」と「サブCX、BX」あなたは – Tommylee2k
ラウンドピラミッドに他の方法が表示されます、私はあなたのコードを実行し、素晴らしい作品、ない無限ループを、交換する場合おめでとう! –