我有一个整数存储在寄存器 edx 中,包含0到255(0x00到0xFF)的随机值,我想将其值用作 db 的参数 .
edx
db
db edx
但是,当我尝试这样做时,我得到错误A2138说"invalid data initializer" .
要明确一个命令就好
db 57
确实有效,而不是之前显示的那个 .
所以我想我问的问题是如何使用寄存器作为 db 命令的参数?
感谢您的时间 .
你不能 . db 告诉编译器在编译时将 db 之后定义的值放在原来的位置 .
使用寄存器,你不能这样做,因为值是未知的(它已知并且等于零)这就是你得到错误的原因 . 如果要从寄存器中输入值,则需要使用mov操作码 .
loc db ? .... mov [loc], dl
由于 edx 是32位,我们无法将其存储在 db 中,因此要么存储最低的8位,要么我们需要将 loc 更改为 dd .
loc
dd
1 回答
你不能 .
db
告诉编译器在编译时将db
之后定义的值放在原来的位置 .使用寄存器,你不能这样做,因为值是未知的(它已知并且等于零)这就是你得到错误的原因 . 如果要从寄存器中输入值,则需要使用mov操作码 .
由于
edx
是32位,我们无法将其存储在db
中,因此要么存储最低的8位,要么我们需要将loc
更改为dd
.