汇编语言 - 设置CCR标志(68000)

时间:2014-10-26 20:26:10

标签: assembly 68000

我有以下添加内容,并被要求写出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

3 个答案:

答案 0 :(得分:1)

CCR注册帐号既无签名又有签名。 Wikipedia sums it up nicely.

  • N :考虑已签名的号码。如果最高有效位为1,则该数字为负数,N为1。
  • Z :Z为1时,所有位必须为零。
  • V :始终将号码视为已签名。如果操作溢出,则包含1。
  • C :始终将号码视为未签名。如果操作溢出,则包含1。

答案 1 :(得分:1)

Zenexer的补充: 在你的例子中,第9位进位(这就是名字的来源)。

如果最高位在符号视点中“意外地”改变,则V(溢出)被设置:即如果添加两个msb = 0的数字并且结果的msb变为1(就好像两个正数的总和)数字会给出负面结果)。那是(签名的)溢出。

答案 2 :(得分:1)

最好和第一个检查的地方是处理器手册,可在此处免费获取:http://www.freescale.com/files/archives/doc/ref_manual/M68000PRM.pdf

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

相关问题