打印

中断保护这样做有什么好处

[复制链接]
1527|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
haiping0823|  楼主 | 2010-12-22 08:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近看一些资料,看到EMC宏与伪指令这章的时候,看到有一个关于中断保护数据处理方式的宏:
             PUSH        MACRO   
             MOV         A_BUF ,   A
             SWAP       A_BUF
             SWAPA     STATUS
             MOV         STATUS_BUF,  A
             ENDM
             POP          MACRO
             SWAPA     STATUS_BUF
             MOV         STATUS,     A
             SWAPA     A_BUF
             ENDM

不太明白为什么:
            已经 将ACC中的数据保存到寄存器中去,为什么还需要高低四位交换?

相关帖子

沙发
yewuyi| | 2010-12-22 09:12 | 只看该作者
印象中主要是防止MOV等指令对状态标志,例如Z标志等的影响。
SWAP这样的指令可确保不影响任何的状态标志。

使用特权

评论回复
板凳
haiping0823|  楼主 | 2010-12-22 11:22 | 只看该作者
好像在指令表上 MOV指令跟SWAP指令都不会影响状态标志位

使用特权

评论回复
地板
haiping0823|  楼主 | 2010-12-22 11:29 | 只看该作者
说错了,纠正下, EMC指令中  MOV    A, R   跟MOV  R,  R是影响Z标志位的
                             MOV    R,  A   跟MOV  A, K是不影响的
SWAP是不影响任何标志位

使用特权

评论回复
5
hxy6951| | 2010-12-22 13:11 | 只看该作者
就是为了不影响状态寄存器的状态位。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:我的IT我的梦

2

主题

241

帖子

3

粉丝