完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
ARM常用汇编指令:
1、 EQU:给数字常量取一个符号名,相当于C语言中的define 2、 AREA:汇编一个新的代码段或者数据段 3、 SPACE:分配内存空间 4、 PRESERVE8:当前文件栈需要按照8字节对齐 5、 EXPORT:声明一个标号具有全局属性,可被外部的文件使用 6、 DCD:以字为单位分配内存,要求4字节对齐,并要求初始化这些内存 7、 PROC:定义子程序,与ENDP成对使用,表示子程序结束 8、 WEAK:弱定义,如果外部文件声明了标号,则优先使用外部文件定义的标号,如果外部文件没有定义也不出错。需要注意的是:这个不是ARM的指令,是编译器的,放在这里是为了方便 9、 IMPORT:声明标号来自外部文件,不是在本程序定义的,跟C语言中的EXTERN关键字类似 10、B:跳转到一个标号 12、ALIGN:编译器对指令或者数据的存放地址进行对齐,一般需要跟一个立即数,缺省表示4字节对齐。要注意的是:这个不是ARM指令,是编译器的,放在这里是为了方便 13、END:到达文件的末尾,文件结束 14、IF,ELSE,ENDIF:汇编条件分支语句,跟C语言的if else 类似。 15、MRS:加载特殊功能寄存器的值到通用寄存器 16、MSR:存储通用寄存器的值到特殊功能寄存器 17、CBZ:比较,如果结果为0就转移 18、CBNZ:比较,如果结果非0就转移 19、LDR:从存储器中加载字到一个寄存器中 20、LDR[伪指令]:加载一个立即数或者一个地址到一个寄存器。举例:LDR Rd, = label,如果label是立即数,那Rd等于立即数,如果label是一个标识符,比如指针,那存到Rd的就是label这个标识符的地址 21、LDRH:从存储器中加载半字到一个寄存器中 22、LDRB:从存储器中加载字节到一个寄存器中 23、STR:把一个寄存器按字存储到存储器中 24、STRH:把一个寄存器存器的低半字存储到存储器中 25、STRB:把一个寄存器的低字节存储到存储器中 26、LDMIA:加载多个字,并且在加载后自增基址寄存器 27、STMIA:存储多个字,并且在存储后自增基址寄存器 28、ORR:按位或 29、BX:直接跳转到由寄存器给定的地址 30、BL:跳转到标号对应的地址,并且把跳转前的下条指令地址保存到LR 31、BLX:跳转到由寄存器REG给出的的地址,并根据REG的LSB切换处理器状态 , 还要把转移前的下条指令地址保存到LR 。ARM(LSB=0),Thumb(LSB=1)。CM3只在Thumb中运行,就必须保证reg的LSB=1,否则一个fault打过来。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1614 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1541 浏览 1 评论
970 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
682 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1592 浏览 2 评论
1863浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
644浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
515浏览 3评论
531浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
504浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 01:40 , Processed in 0.798598 second(s), Total 79, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号