Assembly 68000上的CCR
所以我的一个朋友问了我一个大会问题,他也在努力学习和理解这门语言。他问: 给定以下寄存器值:Assembly 68000上的CCR,assembly,68000,Assembly,68000,所以我的一个朋友问了我一个大会问题,他也在努力学习和理解这门语言。他问: 给定以下寄存器值: D0: 364B 421E D1: F3FC 9066 执行指令后: cmp.w D0,D1 CCR中的结果值是什么: N: Z: V: C: 以及是否会发生以下各分支: BLO <Label> Yes or No? BVC <Label> Yes or No? BGE <Label> Yes
D0: 364B 421E
D1: F3FC 9066
执行指令后:
cmp.w D0,D1
CCR中的结果值是什么:
N: Z: V: C:
以及是否会发生以下各分支:
BLO <Label> Yes or No?
BVC <Label> Yes or No?
BGE <Label> Yes or No?
BMI <Label> Yes or No?
BLT <Label> Yes or No?
BCS <Label> Yes or No?
BLO是还是否?
BVC是或否?
BGE是或否?
体重指数是还是不是?
BLT是还是不是?
是还是不是?
如果有人能帮助我理解它,那么当我向他解释它时,我就能加深对概念和答案的理解。谢谢。将概念映射到现代术语可能会有所帮助。C标志对应无符号算术,N和V标志对应有符号算术。Z标志对两者都有效 分支指令在本手册表3-19中有详细说明。请注意,表中有几个输入错误 对于无符号算术,请使用以下分支:
> BHI
<= BLS
>= BCC/BHS
< BCS/BLO
>= BGE
< BLT
> BGT
<= BLE
最后是BVS/BVC对。V标志在溢出时设置,这意味着结果的符号位不跟随输入的符号位。例如,从正数减去负数应该总是得到正数。对于ccr标志,除了溢出和进位之外,大多数都是自解释的,但是根据这一点,您应该能够计算出它们 挂旗 在二进制/整数数学中打开进位标志的规则有两条:
而且应该被忽略。哇,这超级棒好像是家庭作业@nycynik我相信这是一份工作表,供他们使用,但我不认为这是为了学分或其他什么,我现在回想起来,我在页面上看到了“练习工作表”,但再次不确定它是否是为了学分。从@Mark Ransom开始,我们已经看到了这一点,这对初学者来说不是很友好,即使在询问其他人时,分支指令的结果也可以很容易地从表3-19中得出。剩下的就是确定CCR标志的值。如何检查溢出标志是否已设置?我会写什么Easy86k代码?
== BEQ
!= BNE