【发布时间】:2014-06-08 15:31:30
【问题描述】:
考虑以下 x86 汇编中的错误指令:
imul edx, [eax+cl], 2
Nasm 抱怨有效地址不正确。我知道我不能添加两个不同大小的寄存器内容。应该如何正确地做到这一点?也许我应该以某种方式添加一个偏移量 - 我怎么能在 nasm 中做到这一点?注意:我不能添加整个 ecx,因为高位包含数据。
【问题讨论】:
-
如何将 ecx 存储在另一个寄存器中,然后
and它与 255 ? -
movzx ecx,cl(无符号)或 movsx ecx,cl(有符号)呢?
-
mov ebx,ecx xor ecx,ecx mov cl,bl imul edx,[eax+ecx] [链接]courses.engr.illinois.edu/ece390/archive/spr2002/books/…
标签: assembly x86 nasm x86-64 low-level