完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
1.ARM有六类指令集: 跳转指令、数据处理指令、程序状态寄存器传输指令、Load/Store指令、协处理器指令、异常中断产生指令 2.ARM中实现程序跳转的方式有两种: 1).通过跳转指令 2).直接向PC寄存器(R15)中写入目标地址值 3. 数据处理指令又可分为3类: 数据传送指令、算术逻辑运算指令、比较指令 部分指令的使用如下: AND(And 逻辑与操作指令)可以提取寄存器中某些位的值,具体的做法是见杜春雷P69。 ORR(Logical OR逻辑或操作指令)可将寄存器中的某些位设置成1,详见杜春雷P70 EOR(Exclusive OR逻辑异或操作指令)可将进村器中某些位的值取反,详见杜春雷P71 BIC(Bit Clear位清除指令)用于将寄存器中的某些位的值设置成0,详见杜春雷P72 TST(Test位测试指令)用于测试寄存器中某个位是1还是0,详见杜春雷P73 TEQ(Test Equivalence相等测试指令)用于比较两个数或操作数是否相等 4.程序不能通过直接修改CPSR中的T控制位直接将程序状态切换到Thumb状态,必须通过BX等指令完成程序状态的切换 5.LDR指令的用法: a.可以用来从内存中读取32位字数据到通用寄存器,然后对数据进行操作 b.当PC作为指令中的目标寄存器时,指令可以实现程序跳转的功能 现通过LDR的用法不难总结出 1)LDRB(Load Register Byte字节数据处理指令)的用法如下: a.读取8位字节数据,然后对其操作(寄存器高24位清零) b.PC为目标寄存器时,实现程序跳转 2)LDRH(Load Register Halfword半字数据读取指令)的用法如下: a.读取16位半字节数据,然后对其操作(高16位清零) b.PC为目标寄存器时,实现程序跳转 6.arm汇编语言中$ 是意思是什么? 在一个符号前使用$,表示程序在汇编时将使用相应的值来代替$后的符号 7.宏汇编技术与子程序: 使用子程序可以节省存储空间及程序设计所花费的时间,也可以提供模块化的程序设计,使程序的调试维护方便,但它也有缺点,例如,使用子程序时保存和恢复相关的寄存器及子程序现场,增加了额外的开销。因此在子程序较短而需要传递的参数较多的可以使用宏汇编技术。 原作者:两把刷子飞啊飞 |
|
相关推荐 |
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
飞凌嵌入式ElfBoard ELF 1板卡-TF卡烧录流程之烧写过程
91 浏览 0 评论
iTOP-3A5000主控板龙芯架构外加机箱就是一台电脑主机
1031 浏览 0 评论
迅为RK3568开发板EMMC镜像导出打包update.img
1080 浏览 0 评论
飞凌嵌入式-ELFBOARD 硬件知识分享-ELF 2电源电路讲解
1506 浏览 0 评论
2213 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-31 06:09 , Processed in 0.422986 second(s), Total 38, Slave 32 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号