2011年11月7日
摘要: 饱和32位数到16位ldr m, =0x00007fffmov a, b, asr #15 ; a = (b >> 15)teq a, b, asr #31 ; if (a != sign(b))eorne b, m, b, asr #31 ; b = 0x7fff ^ sign(b)饱和左移mov m, #0x7fffffffmov a, b, lsl c ; a = b << cteq b, a, asr c ; if (b != (a >> c))eorne a, m, b, asr #31 ; a = 0x7fffffff ^ sign(b)舍入右移 阅读全文
posted @ 2011-11-07 14:08 MirAcle_包子 阅读(339) 评论(0) 推荐(0) 编辑
摘要: 一、跳转指令。跳转指令用于实现程序流程的跳转,在ARM程序中有以下两种方法可以实现程序流程的跳转。 Ⅰ.使用专门的跳转指令。Ⅱ.直接向程序计数器PC写入跳转地址值。 通过向程序计数器PC写入跳转地址值,可以实现在4GB的地址空间中的任意跳转,在跳转之前结合使用 MOV LR,PC等类似指令,可以保存将来的返回地址值,从而实现在4GB连续的线性地址空间的子程序调用。ARM指令集中的跳转指令可以完成从当前指令向前或向后的32MB的地址空间的跳转,包括以下4条指令: 1、B指令 B指令的格式为: B{条件} 目标地址 B指令是最简单的跳转指令。一旦遇到一个B指令,ARM处理器将立即跳转到给定的目标地 阅读全文
posted @ 2011-11-07 08:21 MirAcle_包子 阅读(671) 评论(0) 推荐(0) 编辑