我是汇编的新手,我很困惑一些变量如何从不知道的地方神奇地获取值,就像我在这个代码中所做的那样(程序通过一个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输入了符号数,循环开始从那里开始。当变量“number”被复制到cl时,获得该cx值。变量“数字”是如何获得这样的值的?替换
MOV cl, number
带
MOV cl, [number]
不影响该计划。这是为什么?每个变量都由
定义 variable db ?
具有相同的值,即输入的符号数?(我正在使用TASM)