我是汇编新手,我很困惑一些变量如何神奇地从无处获得值,就像我拥有的这段代码一样(程序移动一个 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)