Hai*_*der 2 assembly x86-64 cpu-registers addressing-mode
以下指令有什么问题:
movb $0xF, (%ebx)
Run Code Online (Sandbox Code Playgroud)
答案指出%ebx不能用作地址寄存器。我是装配新手,有人可以解释这意味着什么吗?
如果该指示是movb $0xF, (%rbx)有效的吗?另外,地址寄存器到底是什么?最后,在寄存器周围写括号是否直接引用寄存器指向的内存位置?
1没有什么问题movb $0xf, (%ebx)。
即使在 64 位模式下,s\xc3\xa8 也没有问题。当然,x32 程序不会介意使用它,并且r/e/bx肯定可以用作基址寄存器(事实上,bx它是少数可以在 16 位模式下充当基址的原始寄存器之一)。
我的建议是找到更好的学习来源。
\n1 ,它在 64 位和 16 位模式下正确组装,在 32 位模式下67 C6 03 0F没有地址大小覆盖字节 ( )。67