Tyl*_*den 0 optimization x86 assembly
有没有办法在x86中为32位寄存器添加8位值?
例如,如果您执行"ADD EAX,8",那么8将被编码为32位值,因此您的二进制文件中将包含"08000000".如果你加一个,你可以明显地使用INC指令,但有没有办法在x86汇编中添加一个通用的8位值?
注意我不认为你可以做"ADD AL,8",因为如果AL已经有了xFE,那么就不会进行进位.那么"ADC AL,8"怎么样,它会带来AH的价值?
有一种编码使用8位符号扩展立即,它被列为ADD r/m32, imm8操作码83 /0.您如何表明您希望编码取决于您的汇编程序,但您忘记提及您使用的编码器.nasm例如,如果您打开优化,或者如果您明确要求它,则会自动使用此编码:add eax, byte 8.GNU汇编程序似乎也使用更短的编码,实际上我不知道如何强制它到32位(你的问题的反面).