1

我有以下补充,并被要求写下 CCR 标志的值是什么。我的问题是我不知道如何找出是否发生溢出。这是因为我不知道是将其视为 2 的补码还是无符号数。当我面临其他问题时,有人可以告诉我如何找到这个吗?

$FF + 1:

      1 1 1 1  1 1 1 1
    + 0 0 0 0  0 0 0 1
      -----------------
  (1) 0 0 0 0  0 0 0 0
4

3 回答 3

1

最好和首先检查的是处理器手册,它可以在这里免费获得:http ://www.freescale.com/files/archives/doc/ref_manual/M68000PRM.pdf

具体来说,查看第 3-2 节和表 3-18(整数单元条件代码计算),其中列出了处理器用于更新 CCR 状态的布尔方程。

于 2014-10-27T17:33:24.077 回答
1

CCR 为未签名和已签名的帐户注册。 维基百科很好地总结了它。

  • N:考虑签名的数字。如果最高有效位为 1,则该数为负数,N 为 1。
  • Z:所有位必须为零,Z 才能为 1。
  • V:始终将数字视为已签名。如果操作溢出,则包含 1。
  • C:始终将数字视为无符号数。如果操作溢出,则包含 1。
于 2014-10-26T20:34:33.480 回答
1

Zenexer 的补充:在您的示例中,第 9 位用于进位(这就是名称的来源)。

如果最高位在有符号的角度“意外”改变,则 V(溢出)被设置:也就是说,如果添加两个 msb=0 的数字并且结果的 msb 变为 1(好像两个正数之和会给出阴性结果)。这是一个(签名的)溢出。

于 2014-10-26T23:44:55.917 回答