汇编语言中,mov al,10110001b(有符号还是无符号数) mov dl,01001010b 执行sub al,dl的结果应该是怎样

2024-11-26 22:53:56
推荐回答(3个)
回答1:

不论是有符号还是无符号结果都是0110 0111b。
但是有符号和无符号的运算会影响标志寄存器。
因为有符号的时候,al是8位,表示范围是 -127~127,当al位10110011b做有符号的时候,10进制为-79,dl始终为74,-79-74是-153,超出8位的存储范围,它的二进制是1 0110 0111b,但是al只有8位,所以无法存放,这样标志寄存器的of会变为1,即表示有符号运算溢出。
所以不论是有符号还是无符号,al存放都是 0110 0111b。

回答2:

有符号与无符号有区别吗?
10110001b,不管有符号数无符号就是一个无符号数。

结果就是1100111b

回答3:

算数运算不会区分有符号数和无符号数。
在条件转移指令时才会区分。