历史上的今天
今天是:2025年01月29日(星期三)
2020年01月29日 | ARM汇编指令集3
2020-01-29 来源:eefocus
常用ARM指令1:数据处理指令
•数据传输指令 mov mvn
mov r1, r0 @两个寄存器之间数据传递
mov r1, #0xff @将立即数赋值给寄存器
mov 和mvn用法一样,区别是mov是原封不动的传递,而mvn是按位取反后传递
•算术指令 add sub rsb adc sbc rsc
and 逻辑与
orr 逻辑或
eor 逻辑异或
•逻辑指令 and orr eor bic
bic 位清零
bic r0,r1,#0x1f @将r1的数的bit0 到bit4清零后赋值给r0
•比较指令 cmp cmn tst teq (比较指令重在过程不在乎结果)
cmp r0, r1 @等价于sub r2, r0,r1 (r2 = r0-r1)
cmn r0, r1 @等价于 add r0,r1
tst r0,#0x08 @测试bit_3是否为0
bne suspendup @上一条指令指令是否成立 成立就跳转到 标签suspendup
tst r0,#0x0f @测试r0的bit0-bit3是否都为0
•乘法指令 mvl mla umull umlal smull smlal
•前导零计数 clz
比较指令用来比较2个寄存器中的数 注意:比较指令不用后加s后缀就可以影响cpsr中的标志位。
常用ARM指令2:cpsr访问指令 :mrs & msr
•mrs用来读psr(包括cpsr、spsr),msr用来写psrpsr(包括cpsr、spsr)
cpsr和spsr的区别和联系:cpsr程序状态寄存器,整个SOC中只有1个;而spsr有5个,分别在5种异常模式下,作用是当普通模式进入异常模式时,
用来保存之前普通模式下的cpsr,已在返回普通模式时恢复原来的spsr。
•CPSR寄存器比较特殊,需要专门的指令访问,这就是mrs和msr。
常用ARM指令3:跳转(分支)指令:b & bl & bx
•b 直接跳转(就没打开算返回)
•bl branch and link,跳转前把返回地址放入lr中,以便返回,以便用于函数调用
•bx跳转同时切换到ARM模式,一般用于异常处理的跳转。
常用ARM指令4:访存指令:ldr/str & ldm/stm & swp
•单个字/半字/字节访问 ldr/str
•多字批量访问 ldm/stm
•swp r1, r2, [r0]
•swp r1, r1, [r0](内存和寄存器交换数据)
ARM汇编中的立即数(合法立即数与非法立即数)
•ARM指令都是32位,除了指令标记和操作标记外,本身只能附带很少位数的立即数。因此立即数有合法和非法之分。
•合法立即数:经过任意位数的移位后非零部分可以用8位表示的即为合法立即数
如:合法立即数:0x000000ff、0x00ff0000
非合法立即数:0x000001ff
常用ARM指令5:软中断指令 :swi(software interrupt)
•软中断指令用来实现操作系统中系统调用
史海拾趣
|
求救:如何将SST 89E564RD (40-c-p1 0438064-AC)变成仿真器 买了块廉价的芯片,想自己做仿真器 里面没有启动程序 想自己DIY一个仿真器 麻烦成功的大虾发一个可以用的 1电路图 2软件 3监控程序 4 其他对SST 89E564RD 用的上 [ 本帖最后由 wanzsxit ...… 查看全部问答> |
|
再次请教S3C2440+WinCE5.0+4.2BSP下使用4GB的SDHC大容量SD卡驱动问题,大家指点 再次请教S3C2440+WinCE5.0+4.2BSP下使用4GB的SDHC大容量SD卡驱动问题,大家指点!!! 大家好,谢谢大家一直以来这么热心的回复的我帖子,帮助我,谢谢大家,祝大家工作顺利! 我的环境:S3C2440+WinCE5.0+4.2BSP,开发板是广嵌科技的GEC2440。 ...… 查看全部问答> |
|
现在用nrf905设计开发一个射频智能卡测试平台的无线接口,为增强实验的可靠性,我们在设计了PCB环形差分天线的前提下,通过两个跳线,将芯片的ANT1和ANT2通过匹配网络再连接到SMA天线接口处,以备PCB环形天线不能满足实验要求时,可以经过跳线连接 ...… 查看全部问答> |
|
在eMbedded Visual C++中使用VC++编写的.dll的问题 我最近做个项目,在手机上显示监控图像。在eMbedded Visual C++中使用VC下的Dll出错。 提示如下: error LNK2019: unresolved external symbol __imp__MP4_ClientStopCapture referenced in function \"protected: void __thiscall CKlsDlgDlg::On ...… 查看全部问答> |
|
datasheet上是说应该在下面一点共地,但是如果在附近引出来用0欧电阻接可能产生什么问题,还查到有说,用磁珠相连有选频的好处,这个“选频”怎么讲?是指可以把数字区指定频率的噪声滤掉吗?数字区的噪声频率是不是就是单片机的频率啊?谢谢指教 ...… 查看全部问答> |
|
这是继MSP430的MP3扩展板(DSP C5000)后的又一个华丽的扩展板。 说说功能吧!扩展板提供一路VGA输出,VGA的DA采用电阻分压的方式,分辨率为400×300,并且支持两个任天堂的游戏手柄, 打游戏嘛!手柄肯定不能少。主芯片是一片Spartan 3的FPGA ...… 查看全部问答> |




