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

[复制链接]
2465|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是不影响任何标志位
hxy6951 发表于 2010-12-22 13:11 | 显示全部楼层
就是为了不影响状态寄存器的状态位。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:我的IT我的梦

2

主题

241

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部