首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何存储从组件68K CCR的进位?

如何存储从组件68K CCR的进位?
EN

Stack Overflow用户
提问于 2014-05-27 02:34:26
回答 1查看 1.8K关注 0票数 3

我确实在手册中找到了一个从CCR指令中移开的地方.manual/M68000PRM.pdf

但我一直收到一个“无效寻址模式”错误。我尝试过不同的语法形式,无论如何,我只想存储进位,而不是整个CCR。这些都是我尝试过的语法,但没有结果。它非常明确地表示大小必须是单词。

代码语言:javascript
复制
MOVE.W CCR,D6
MOVE.W CCR,CARRY
MOVE   CCR,D6
MOVE   CCR,CARRY
MOVE.B CCR,D6
MOVE.B CCR,CARRY

什么都没有。我做错了什么?是否有更好的方法来专门存储执行位(C)?

EN

回答 1

Stack Overflow用户

发布于 2014-06-04 14:05:52

您不应该直接访问SR/CCR来获取单个标志的状态。

68K家族有非常方便的S(cc)指令(在条件下设置),它为(cc)接受条件谓词,并生成一个反映条件的字节。示例:

代码语言:javascript
复制
SEQ D0

如果清除零标志,则D0.b变为0x00,否则为0xFF。所有条件谓词都对此指令有效,这包括基于进位的测试(SCS,SCC)。

CCR的问题在于它首先不允许在MC68000上使用(它根本不存在,它是MC68010引入的一个扩展)。我不确定从CCR执行移动是否触发了IllegalInstruction,或者它是否以静默方式从SR转换为从SR (它们的编码几乎相同,只移动SR是字大小的,移动CCR是字节大小的)。

您也不应该使用MOVE,这将在x> 0的所有MC680x0上崩溃,因为指令仅是这些处理器上的监控器(特权)。

由于家庭内部的这些差异,访问SR需要非常小心。

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

https://stackoverflow.com/questions/23880257

复制
相关文章

相似问题

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