gpt4 book ai didi

arrays - 使用 mov 从寄存器到数组更改值

转载 作者:行者123 更新时间:2023-12-02 08:37:48 25 4
gpt4 key购买 nike

当我尝试将值从 BX 寄存器移动到数组元素时,该值完全改变。
举例来说,假设我的数组为 {0,4,4},SI 寄存器等于 1,colorNum = 3 (colorNum> 和数组都是字大小)。

mov bx, [colorNum]
mov [arr + si], bx

接下来,我可以在调试器中看到该数组现在是:{769,0,4}
我根本不知道出了什么问题,因为它应该是:{0,3,4}

为了将正确的值移至数组,我应该更改什么?

最佳答案

表达式arr + si相当于(char*)arr+1

假设 word 的大小为 2:使用 mov [arr + si], bx,您正在写入一个 word 值进入数组第一个单元格的后半部分和数组第二个单元格的前半部分。

因此您需要将 arr + si 替换为相当于 (char*)arr+1*sizeof(word) 的表达式。

关于arrays - 使用 mov 从寄存器到数组更改值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38051958/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com