【发布时间】:2016-06-27 10:45:39
【问题描述】:
当我尝试将一个值从BX 寄存器移动到一个数组元素时,该值会完全改变。
例如,假设我的数组是 {0,4,4},SI 寄存器等于 1,并且 colorNum = 3 (colorNum 并且数组是都是字长)。
mov bx, [colorNum]
mov [arr + si], bx
接下来,我可以在调试器中看到数组现在是:{769,0,4}
我根本不知道出了什么问题,应该是这样:{0,3,4}
为了将正确的值移动到数组中,我应该改变什么?
【问题讨论】:
-
如果每个元素都是 WORD,
si必须为 2 才能存储到第二个元素。你确定原来的数组不是{1, 4, 4}吗?这将解释{769,0,4} -
如果
si是正确的并且已经是2*index怎么办?这是不可能的。