作为微控制器考试的准备,我有一个问题:当执行字节操作0x80 + 0x80时,条件位如何设置? 我理解如何添加这些2,但我得到256,我不知道在这种情况下设置了哪些条件位。
首先,一个字节可以容纳的最高值是255 (0xFF)
,所以我认为结果不是256,而是溢出会导致结果值为0 (0x00)
。
其次,条件位将取决于您的处理器,但通过一些ARM notes,我可能合理地期望:
Z: Zero
如果标志设置指令的结果为零,则设置Z标志。
C: Carry (or Unsigned Overflow)
如果无符号运算的结果溢出32位结果寄存器,则置位C标志。例如,该位可用于实现64位无符号算术。