大多数询问算术运算。
示例:
假设32位硬件 eax存储0xff000000
如果调用了“ sub al,0x10”,那么更高的字节/位会改变吗? 它会影响整个寄存器,还是将操作限制在该细分范围内?
其他操作(add,sal,sar等)是否具有一致的整体/子寄存器交互?
答案 0 :(得分:0)
您实际上可以阅读Intel manuals中的文档,其中描述了只有您在命令中处理的寄存器部分会更改。
或者您可以使用调试器(例如,如果使用Windows,例如WinDbg Preview)自己进行快速测试。
从下图可以看到,在执行sub al, 0x10
(通过trace t
命令)后,eax
寄存器将为0xff0000f0
(通过转储寄存器命令) r
)。
这些标志会根据寄存器特定下部的更改而更新(例如,从nc
到cy
的进位)。
希望这会有所帮助。问候,罗纳德