assembly - 为什么添加 3 BYTE 失败,但 DWORD 成功
问题描述
我刚开始ASM
,所以这个问题可能表明我缺乏理解。
我试图将 3 个数字相加,下面带有DWORD
s 的代码按预期工作:
.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
,例如:
.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
失败。这是为什么?谢谢。
解决方案
推荐阅读
- php - 加载更多选项在 Laravel AJAX 中不起作用
- javascript - 哈巴狗模板不正确
- java - 如何在不使用代理的情况下使用 Java 捕获网络流量并获取文件类型?
- html - 仅使用 CSS 根据屏幕高度缩放字体大小
- php - Drupal 8 + AWS ElastiCache Redis:连接超时
- function - Teradata EXPLAIN 中的 STAT FUNCTION 是什么意思?
- git - 无法在 AIX 7.1 中加载程序 git-remote-http
- python - 使用 python 从 tkinter 上的 entrybox 将记录插入 db 时出错
- javascript - 多图选择禁用低位时调整序号
- vue.js - Webix 作为 Vue 调用方法