计算机汇编中两个无符号数相减且结果为负,该如何表示?
来源:学生作业帮 编辑:灵鹊做题网作业帮 分类:数学作业 时间:2024/07/04 16:41:55
计算机汇编中两个无符号数相减且结果为负,该如何表示?
比如A为1 B为2 A-B=-1 如此相减的结果计算机中如何表示,OF CF ZF SF位都为多少?还是这种算法是错误的?
一条指令为 SUB A B 是不是默认为有符号数?
比如A为1 B为2 A-B=-1 如此相减的结果计算机中如何表示,OF CF ZF SF位都为多少?还是这种算法是错误的?
一条指令为 SUB A B 是不是默认为有符号数?
![计算机汇编中两个无符号数相减且结果为负,该如何表示?](/uploads/image/z/8849027-11-7.jpg?t=%E8%AE%A1%E7%AE%97%E6%9C%BA%E6%B1%87%E7%BC%96%E4%B8%AD%E4%B8%A4%E4%B8%AA%E6%97%A0%E7%AC%A6%E5%8F%B7%E6%95%B0%E7%9B%B8%E5%87%8F%E4%B8%94%E7%BB%93%E6%9E%9C%E4%B8%BA%E8%B4%9F%2C%E8%AF%A5%E5%A6%82%E4%BD%95%E8%A1%A8%E7%A4%BA%3F)
mov al,1
mov ah,2
sub al,ah
以上三条指令执行后AL保存了1-2的结果,用16进制表示是FF
SUB指令在汇编中是两意的,可以看成有符号运算,也可以看成无符号运算
OF记录有符号运算时,结果是否可以直接作为最终结果,
CF记录无符号运算时,结果是否可以直接作为最终结果,
如果你把SUB看成无符号运算,1-2=255错误,所以CF=1、ZF=0
如果你把SUB看成有符号运算,1-2=-1正确,所以OF=0、SF=1
mov ah,2
sub al,ah
以上三条指令执行后AL保存了1-2的结果,用16进制表示是FF
SUB指令在汇编中是两意的,可以看成有符号运算,也可以看成无符号运算
OF记录有符号运算时,结果是否可以直接作为最终结果,
CF记录无符号运算时,结果是否可以直接作为最终结果,
如果你把SUB看成无符号运算,1-2=255错误,所以CF=1、ZF=0
如果你把SUB看成有符号运算,1-2=-1正确,所以OF=0、SF=1