0

我是汇编新手,我很困惑一些变量如何神奇地从无处获得值,就像我拥有的​​这段代码一样(程序移动一个 ASCII 代码,所有输入的符号)

.model small

.stack 100h

.data
 Enterr  db 10, 13, "$"
 buffer db 255
 number db ?
 symb   db 255 dup (?)

.code
 START:
MOV ax, @data       
MOV ds, ax          

MOV     ah, 10      
MOV     dx, offset buffer
INT 21h

    MOV     ah, 9           
MOV     dx, offset ENTERR       
INT 21h

    MOV     bx, offset symb     
MOV     cl, number          
MOV     ch, 0           

CMP     cx, 0
JE      terminate           

 cycle: 
INC byte ptr [bx]       
INC bx              
LOOP cycle          

MOV byte ptr [bx], '$'

MOV ah, 9
MOV dx, offset symb
INT 21h

 terminate:
MOV ah, 4Ch         
MOV al, 0           
INT 21h         
END START

就在循环之前,cx 输入了符号的数量,并且循环从那里开始加快步伐。此 cx 值是在将变量“number”复制到 cl 时获得的。变量“数字”是如何获得这样的值的?更换

 MOV     cl, number  

 MOV     cl, [number] 

不影响程序。这是为什么?是否每个变量定义为

 variable   db ? 

具有相同的值,即输入的符号数?(我使用的是 TASM)

4

0 回答 0