从寄存器移动到变量 x86
Moving from a register to a variable x86
我有一个包含 sbytes 的数组,使用
edx
和
ebp
注册。
代码工作正常,除了现在我正在尝试移动
ebp
到一个名为 total_sum 的变量,该变量将保存 SWORD。但是,我不确定该怎么做。
我得到的错误是
error A2022: instruction operands must be the same siz
我的理解是我尝试转换的格式不同。
有人能帮我指明正确的方向吗?
相关代码如下:
mov esi, OFFSET array
mov ecx, LENGTHOF array
mov total_sum, 0
mov ebp,0
L1:
movsx edx, byte ptr [esi]
add ebp, edx
inc esi
loop L1
mov eax, ebp
call WriteInt
call Crlf
mov [total_sum], ebp
mov byte ptr [total_sum], ebp
变量声明为字节,寄存器为4字节。汇编程序不确定您的意思 - 截断寄存器,或使用从标签 total_sum.
开始的四个字节
我有一个包含 sbytes 的数组,使用
edx
和
ebp
注册。
代码工作正常,除了现在我正在尝试移动
ebp
到一个名为 total_sum 的变量,该变量将保存 SWORD。但是,我不确定该怎么做。
我得到的错误是
error A2022: instruction operands must be the same siz
我的理解是我尝试转换的格式不同。
有人能帮我指明正确的方向吗?
相关代码如下:
mov esi, OFFSET array
mov ecx, LENGTHOF array
mov total_sum, 0
mov ebp,0
L1:
movsx edx, byte ptr [esi]
add ebp, edx
inc esi
loop L1
mov eax, ebp
call WriteInt
call Crlf
mov [total_sum], ebp
mov byte ptr [total_sum], ebp
变量声明为字节,寄存器为4字节。汇编程序不确定您的意思 - 截断寄存器,或使用从标签 total_sum.
开始的四个字节