装配说明我们:
movb $ 0xff,(%bl)
我的问题:
汇编指令错误,答案说%bl不能是地址寄存器。我无法理解这个答案。请帮帮我。(这是32位计算机,AT& A汇编语言)
答案 0 :(得分:3)
由于这是32位模式汇编,因此在32位寄存器中只能 一个地址。构造( )
使用内部的寄存器(或表达式)作为地址,%bl
是8位寄存器,因此指令是不连贯的。我认为它甚至无法编码。
答案 1 :(得分:1)
对于x86 CPU,所有8位寄存器和16位寄存器ax,cx和dx不能用作括号[]中的地址寄存器,但bx,si,di(默认段DS)和bp和sp (使用默认段SS)和80386+所有32位寄存器。