【发布时间】:2015-12-26 11:56:52
【问题描述】:
我正在编写 NASM 汇编代码,并且必须进行一些索引寻址。我将索引存储在 $al 中,但是 x86 不会让您使用 $al 作为索引寄存器,而且我已经在使用 $bl,所以我不能使用 $bx。所以我需要将我在 $al 中的字节放入一个 32-but 寄存器,例如 $ecx,但是,当我尝试时,它会抛出一个 操作码和操作数的无效组合错误。有没有办法做到这一点?
sub al, 97 ; char - 97
push ecx ; b/c al cant be used as indexing register
mov ecx, al ; move byte in al into ecx
mov bl, [table + ecx] ; value_at(first_table_addr + char) -> bx
pop ecx
【问题讨论】:
标签: assembly indexing x86 nasm cpu-registers