c.AA 发表于 2020-10-23 14:04:24

求助

本帖最后由 c.AA 于 2020-10-23 14:07 编辑

10下面程序执行完后,AX=____,程序转向_____
MOV AX, 1090H
SUB AX,4AEOH
JC L1
JO L2
JMP L3

这个为什么答案写的是转向L1啊

sunrise085 发表于 2020-10-23 14:39:56

本帖最后由 sunrise085 于 2020-10-23 14:41 编辑

1090H减去4AE0H会产生借位,使得CF标志位为1,JC判断为真就会跳转了啊
不知道你是对CF标志位不理解,还是对JC指令不明白
CF标志位是进位借位标志,若运算的时候产生进位或借位,就会将CF设置为1
JC指令是判断CF位,若CF位为1,则进行跳转

c.AA 发表于 2020-10-23 14:57:56

sunrise085 发表于 2020-10-23 14:39
1090H减去4AE0H会产生借位,使得CF标志位为1,JC判断为真就会跳转了啊
不知道你是对CF标志位不理解,还是 ...

谢谢了,我以为CF只是进位标志

sunrise085 发表于 2020-10-23 15:04:39

本帖最后由 sunrise085 于 2020-10-23 15:05 编辑

c.AA 发表于 2020-10-23 14:57
谢谢了,我以为CF只是进位标志

你可以这么理解进位借位
在计算机中没有真正的进位,所谓的进位或借位都是运算的时候溢出。加运算溢出我们称之为进位,减法实际上是加补码,减法借位实际上是加补码的时候溢出了
也就是说我们所说的进位或借位实际上在计算机看来都是加运算溢出
页: [1]
查看完整版本: 求助