【发布时间】:2013-02-21 12:20:37
【问题描述】:
我正在尝试确定在以下操作之后应将各种标志设置为(进位、符号、零、溢出):
mov ax, 7ff0h; ax register is now 7ff0h
add al, 10h;
我对汇编如何处理这个感到困惑。因为我们只添加到包含f0h 的寄存器的al 部分,所以f0h + 10h 给出100h。这是否设置了溢出标志?携带标志?两者都不?我认为会设置溢出标志,但是,我想到的另一种可能性是程序检测到这一点并自动将 ah 寄存器从7fh 更改为80h,使完整的ax 寄存器8000h。这在理论上不会设置进位标志,而是设置符号标志和溢出标志,因为我们的总数 8000h 现在是负数。谁能解释一下这是如何处理的?
谢谢。
【问题讨论】:
标签: assembly x86 flags cpu-registers