我在数据段中声明了一个未初始化的数组,我正在尝试将用户数字输入并存储在数组中。这是代码片段
arr db 5 DUP(?), '$'
MOV CX,5
L1:
LEA SI,X
MOV AH,01
INT 21H
MOV [SI], AL
INC SI
LOOP L1
我增加SI的原因是因为我想让它在用户输入值时转到下一个索引。在用户输入后我查看了数组的内容,它完成的所有内容都覆盖了前一个输入,其余的都未初始化。我该如何解决这个问题?
答案 0 :(得分:0)
与往常一样,使用调试器单步执行代码并查看出错的位置。在这种情况下,很明显,循环回L1
将重新加载SI
地址X
,因此它将始终存储到第一个项目。初始化后移动标签:
arr db 5 DUP(?), '$'
MOV CX,5
LEA SI,X
L1:
MOV AH,01
INT 21H
MOV [SI], AL
INC SI
LOOP L1