[ZLG-ARM] 第一个汇编指令实验没看懂

[复制链接]
2322|1
 楼主| songbw 发表于 2007-10-25 09:42 | 显示全部楼层 |阅读模式
前几天买的开发板,已经开始调试程序<br />就是smartARM2200的配套实验教材中,第一段汇编代码我没看明白。<br /><br />MOVHS&nbsp;&nbsp;&nbsp;&nbsp;R0,#0&nbsp;;&nbsp;若R0大于等于10,则此指令执行,R0&nbsp;&lt=&nbsp;0<br /><br />就是上面这段,而其它的我都看明白了。<br />如果在前面的代码中,R0等于10的话,那应该CPSR的条件码标志位应该变成0110,这我们也能分析的出来。可是下面的这条语句应该是MOVVS才对。为什么是MOVHS呢?<br />给出的教材中,指令条件码表是这样的:<br />0010&nbsp;&nbsp;&nbsp;&nbsp;CS/HS&nbsp;&nbsp;&nbsp;&nbsp;C==1&nbsp;&nbsp;&nbsp;&nbsp;无符号数大于或等于<br />0110&nbsp;&nbsp;&nbsp;&nbsp;VS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;V==1&nbsp;&nbsp;&nbsp;&nbsp;溢出<br />其它的我就不写了<br />上面第一行,CS/HS和0010没有任何对应关系,从0010中根本无法判断是无符号数大于或等于<br />第二行也是,VS和0110没有任何对应关系,从0110中也根本无法判断是溢出<br />请问这是怎么回事?<br />后面的汇编代码也是这样<br />
zlgarm 发表于 2007-10-25 11:18 | 显示全部楼层

re~~~

0010和0110是对应条件的操作机器码,它们和CPSR的状态位并没有直接关系,CS/HS表示代码的执行依赖于CPSR的条件位,
您需要登录后才可以回帖 登录 | 注册

本版积分规则

26

主题

86

帖子

1

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