为什么添加3个BYTE失败,但是DWORDs成功

时间:2018-06-19 17:20:58

标签: assembly x86 masm addition

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

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

.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

但是,一旦我从DWORD切换到BYTE,就像viz:

.data

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

我的执行失败,并显示error A2022: instruction operands must be the same size

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

0 个答案:

没有答案