首页 > 解决方案 > 为什么添加 3 BYTE 失败,但 DWORD 成功

问题描述

我刚开始ASM,所以这个问题可能表明我缺乏理解。

我试图将 3 个数字相加,下面带有DWORDs 的代码按预期工作:

.data

val1 DWORD 25
val2 DWORD 23
val3 DWORD 20
sum  DWORD 0

.code
main proc
    mov eax,val1                
    add eax,val2        
    add eax,val3
    mov sum,eax

    invoke ExitProcess,0

但是,一旦我从 切换DWORDBYTE,例如:

.data

val1 BYTE 25
val2 BYTE 23
val3 BYTE 20
sum  BYTE 0

我的执行失败了error A2022: instruction operands must be the same size

现在,我的理解是 aBYTE可能包含从 0 到 255 的任何 8 位无符号整数。即使使用DB失败。这是为什么?谢谢。

标签: assemblyx86masmaddition

解决方案


推荐阅读