- 已关闭。**此问题为not reproducible or was caused by typos。当前不接受答案。
这个问题是由打字错误或无法再重现的问题引起的。虽然类似的问题在这里可能是on-topic,但这个问题的解决方式不太可能帮助未来的读者。
2天前关闭。
Improve this question
所以我有一个DWORD类型变量:变量2数据字10000小时、20000小时、30000小时、40000小时
我的程序是:
.data
var2 DWORD 10000h,20000h,30000h,40000h
.code
main PROC
mov eax, 0
mov ebx, 0
mov ecx, 0
mov edx, 0
mov eax, [var2]
mov ebx, [var2+4]
mov ecx, [var2+8]
mov edx, [var2+12]
add eax,ebx
add ecx, edx
add ecx, eax
call DumpRegs
exit
main ENDP
END main
一切似乎都工作正常,我的寄存器看起来像
但实际的答案应该是100000小时,不是吗?因为10000 + 20000 + 30000 + 40000是100000小时。
我试过改变寄存器,把总数放在一个变量中,然后把它移到一个寄存器中,但是我总是得到相同的A0000。
1条答案
按热度按时间v1uwarro1#
但实际的答案应该是100000小时,不是吗?因为10000 + 20000 + 30000 + 40000是100000小时。
不,你搞错了。
10000小时+20000小时+30000小时+40000小时= A0000小时
(To得到100000h,你必须在最后再加上60000h。)
你可以在任何一个支持十六进制的计算器中尝试这个方法(例如Windows,如果你切换到程序员模式的话)。从十进制的1 + 2 + 3 + 4 = 10,十进制的10在十六进制中是A的事实来看,这也是合乎逻辑的。