首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >68000上的CCR

68000上的CCR
EN

Stack Overflow用户
提问于 2012-11-29 06:30:11
回答 2查看 4.2K关注 0票数 2

因此,我的一个朋友问了我一个组装问题,他也在努力学习和理解这种语言。他问道:

给定以下寄存器值:

代码语言:javascript
复制
D0: 364B 421E
D1: F3FC 9066

在执行指令之后:

代码语言:javascript
复制
cmp.w    D0,D1

CCR中的结果值是什么:

代码语言:javascript
复制
N:    Z:    V:    C:

以及是否会出现以下每个分支:

代码语言:javascript
复制
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?

有人能帮助我理解它吗?当我向他解释它时,我可以加深对概念和答案的理解。谢谢。

EN

回答 2

Stack Overflow用户

发布于 2012-11-29 07:49:53

这可能有助于将这些概念映射到现代术语。C标志对应于无符号算术,N和V标志对应于有符号算术。Z标志对两者都有效。

分支指令在M68000 Programmer's Reference Manual的表3-19中有完整的说明。请注意,表中有几个拼写错误。

对于无符号算术,请使用以下分支:

代码语言:javascript
复制
>   BHI
<=  BLS
>=  BCC/BHS
<   BCS/BLO

对于带符号的算术,请使用以下分支:

代码语言:javascript
复制
>=  BGE
<   BLT
>   BGT
<=  BLE

这些方法适用于这两种情况:

代码语言:javascript
复制
==  BEQ
!=  BNE

最后是BVS/BVC对。当存在溢出时,设置V标志,这意味着结果的符号位不在输入的符号位之后。例如,从正数中减去负数应该始终得到正数。

票数 4
EN

Stack Overflow用户

发布于 2012-11-29 18:51:33

使用ccr标志,除了溢出和进位之外,大多数都是不言而喻的,但是根据这个http://teaching.idallen.com/dat2343/10f/notes/040_overflow.txt,您应该能够弄清楚它们

进位标志

在二进制/整数数学中打开进位标志的规则有两条:

  1. 如果两个数字相加导致相加的最高有效(最左边)位进位,则进位标志被置位。

1111 + 0001 = 0000 (进位标志开启)

  • 如果两个数字的减法需要借位到所减去的最高有效位(最左边),则进位(借位)标志也被置位。

0000 - 0001 = 1111 (进位标志打开)

否则,进位标志关闭(零)。* 0111 + 0001 = 1000 (进位标志关闭为零)* 1000 - 0001 = 0111 (进位标志关闭为零)

在无符号算术中,观察进位标志以检测错误。在有符号算术中,进位标志不会告诉你任何有趣的事情。

溢出标志

在二进制/整数数学中打开溢出标志的规则有两条:

  1. 如果符号位为关闭的两个数字的和产生一个符号位为打开的结果数,则打开"overflow“标志。

0100 + 0100 = 1000 (overflow标志打开)

  • 如果符号位打开的两个数字的和产生一个sign位关闭的结果数,则打开"overflow“标志。

1000 + 1000 = 0000 (溢出标志打开)

否则,溢出标志被关闭。* 0100 + 0001 = 0101 (溢出标志关闭)* 0110 + 1001 = 1111 (溢出标志关闭)* 1000 + 0001 = 1001 (溢出标志关闭)* 1100 + 1100 = 1000 (溢出标志关闭)

请注意,您只需查看这三个数字的符号位(最左边),即可决定是否打开或关闭溢出标志。

如果你正在做二的补码(有符号)算术,overflow flag on意味着答案是错误的--你把两个正数相加得到一个负数,或者你把两个负数相加得到一个正数。

如果您正在进行无符号算术,则overflow标志没有任何意义,应该被忽略。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13615568

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档