0
在c或C++或其他中高级语言中,我们可以使用尽可能多的变量。装配怎么样?如何在程序集中使用多个变量
假设我做了这段代码。
.model small
.stack 100h
.data
lf equ 0ah
cr equ 0dh
crlf db cr,lf,'$'
.code
main proc
;initialize database
mov ax, @data
mov ds, ax
mov bx,01
fop:
mov cx, bx
mov ah,2
mov dl,'*'
top:
int 21h
loop top
inc bx
lea dx, crlf
mov ah, 9
int 21h
cmp bl, 05
jg _end_this
loop fop
_end_this:
main endp
end main
结果是...
*
**
***
****
*****
现在我要像做以下。
.
*
**
***
****
*****
我试图做到这一点通过其他变量来创造空间的循环。随着空间的减少,这种模式将成为可能。但所有的主要寄存器似乎都预订了。 AX,BX,CX,DX。现在做什么。如果我需要更多变数,会怎样?
_“但所有的主要寄存器似乎预订。ax,bx,cx,dx”_。 'cx'只在'top'循环中使用,因此添加另一个也使用'cx'的循环不会是一个问题。顺便说一句,'jg _end_this' /'loop fop'可以被'jle fop'替代。 – Michael
假设有另一个寄存器我可以使用..说前 MOV BX,01 MOV前,04 FOP: MOV CX,EX MOV啊,2 MOV DL, '';空间 GOP: INT 21H 结束GOP MOV CX,BX MOV啊,2 MOV DL, '*' 顶部: INT 21H 循环顶端 INC BX 月前 –
你不不需要任何额外的寄存器。您可以像我之前评论中所说的那样使用'cx'。您在程序中使用register _somewhere_的事实并不意味着该程序中的_everywhere_使用该寄存器。 – Michael