0
有什么办法可以将8位值添加到x86中的32位寄存器中?例如,如果您执行“ADD EAX,8”,则8将被编码为32位值,因此您的二进制文件中将包含“08000000”。如果你正在添加一个,你可以明显地使用INC指令,但是有没有办法在x86程序集中添加一个通用的8位值?有没有办法在x86中向32位寄存器添加一个8位值?
注意我不认为你可以做“添加AL,8”,因为如果AL已经有了,比如xFE,那么它不会执行进位。但是,“ADC AL,8”的情况是否会将该值传递给AH?
'ADC AL,8'将'8'加上进位值加到'AL'。它不会触及'AH'。 –
'ADD EAX,8'应该用8位立即编码。如果8编码为32位值,这是一个汇编错误。作为一种解决方法,您可以尝试使用不同于“EAX”的寄存器。 –
使用MOVZX进行转换。 –