2022年arm汇编语言学习记录[汇 .pdf
《2022年arm汇编语言学习记录[汇 .pdf》由会员分享,可在线阅读,更多相关《2022年arm汇编语言学习记录[汇 .pdf(35页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Arm 汇编体系结构的基本编程:(ARM 基本的编程对于语言要求特别高,尤其是编程格式)分为四个点:AREA声明一个段AREA Example,CODE,READONLY;申明代码段Example ENTRY ;申明代码入口START MOVE RO,#1 / 中间为汇编程序代码End / 程序的结尾,表明结束四个关键点:环境利用RVDS环境编译程序,是一个集成环境,Code warrior 主要管理代码,产生出可以的镜像文件。及搭建ARM 集成环境的搭建 . ARM 工作模式: 1,工作状态:32 位工作状态2,thumb 状态: 16 位的处理。支持最大的4G的存储存储模式的不同:大端模式
2、及小端模式(重点:面试中经常问到)大端及小端模式的不同:大端格式是数据的高位与地址的高位及地位的存储不同如 0X8070 的高位字节是80,逻辑低位是70;数据也存在存储空间要是将 70 放在低地址的话则为小端模式(逻辑高位放在地址的地位,逻辑地位放在地址的地位)要是相反的话则为大端模式的存储。arm 是 32 为的处理器但是他也可以处理8,16,32 位的数据。(如 89c51,128,K60 等)ARM 模式是指四个字节是指在4 的倍数的地方才可以存储数据,二字节也是一样。工作模式:用户模式;快速中端模式;外部中断模式;管理模式;数据访问终止模式等,每一种模式都有对应的中断标志符。模式之间
3、的切换(主要是指ARM 和 thumb 状态):1,通过程序员认为的控制,2,外部的中断控制等,由于外部中断和异常进行切换的。用户模式外的就是特权模式,除去用户模式和系统模式外就是异常模式。ARM 寄存器的分类主要是31 个通用寄存器, 6个程序状态寄存器包括 SPSR 和 CPSR 等。主要是由于工作的状态不一样的话,能够访问的寄存器不同,其中工作模式不同寄存器的访问也不同。不分组寄存器:R0-R7 分组寄存器: R8-R14 其中 R13-R14是指堆栈指针,完成在数据存储,sp 指针完成数据的出栈和入栈功能。R14主要是子程序链接寄存器link,指在函数调用时用于程序的返回保存值。程序计
4、数器:R15(pc) 程序状态寄存器:有 CPSR寄存器程序状态寄存器SPSR寄存器主要是终端模式的寄存器,它用于保存程序的异常处理功能。SPSR是指在异常模式下的名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 35 页 - - - - - - - - - CPSR和 SPSR一样;其中有四个标志位主要能说明程序的状态和环境。用五个位表示的工作模式;工作状态;中断开关等进行处理。实例:程序编译完成后可以再当前模式之下查看现在寄存器的值:ARM 寻址的方式:他的特点之一,寻
5、址方式比较灵活。寻址方式是指寻找数据所在的物理地址: ARM 支持的寻址方式:(立即数寻址,寄存器寻址,寄存器地址寻址) 1, 立即数寻址立即数寻址需要加一个“#” (泛指一个立即数,即可进行常量之间的操作),在十六进制的寻址是指“ ox”2,寄存器寻址名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 35 页 - - - - - - - - - 2, 寄存器间接寻址它是指对于寄存器的地址进行操作,不直接处理操作数,而是处理操作数的地址3, 寄存器寻址(寄存器直接寻址)直接
6、对于寄存器中的数值进行操作;4, 基址变址寻址操作不同。 尤其注名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 35 页 - - - - - - - - - 意第三种,5, 多寄存器寻址指通过一条指令改变多个寄存器的地址值。6, 堆栈寻址堆栈寻址递增堆栈递减堆栈ARM 汇编指令集:arm 支持的汇编指令1, 跳转的指令:使用专门的指令和更改PC的值向前或者向后的跳转B 指令B条件 一旦遇见跳转命令,先判断条件在进行跳转。BL跳转指令BL条件 目标地址名师资料总结 - -
7、-精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 35 页 - - - - - - - - - 只不过使用B 指令使用完成后,不会跳转回来,而BL可以。BLX 则指跳转到thumb 状态,与其他两个不同将下一次要返回的值进行保存。2, 数据处理指令MOV 指令:指在通用寄存器或者立即数之间进行相互传递数据。MVN 指令CMP 指令:CPSR中存在条件标志位,实现比较完成后的存储。TST指令名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - -
8、 - 名师精心整理 - - - - - - - 第 5 页,共 35 页 - - - - - - - - - ADD 命令SUB指令AND 指令名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 35 页 - - - - - - - - - Orr 指令ORR指令Bic 指令名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 35 页 - - - - - -
9、 - - - MUL 指令实例: (指令的编程)名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 35 页 - - - - - - - - - ARM 指令集内存中指令的执行,ARM 的基本内存的指令; 加载和存储指令主要是用在内存之间的各个操作1, LDR指令利用 R1 中存放的值找到操作数放到R1里面去。 MOV 只能操作通用寄存器,要是操作内存单元必须用该指令。2, LDRB指令3,4, LDRH指令名师资料总结 - - -精品资料欢迎下载 - - - - - - -
10、 - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 35 页 - - - - - - - - - LDRB指令STR指令名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 35 页 - - - - - - - - - 第一种采用基址变址寻址方式。第二个采用也是批量加载及存储结构LDM 指令寄存器类表,进行传递。数据交换内的指令:SWP和 SWPB指令名师资料总结 - - -精品资料欢迎下载 - - - - - - - -
11、- - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 35 页 - - - - - - - - - 要是想用其他指令替换可以使用STR指令进行替换。移位指令名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 35 页 - - - - - - - - - 交换和移位指令的演示;ARM 伪指令的编程:就是假指令名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整
12、理 - - - - - - - 第 13 页,共 35 页 - - - - - - - - - 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 35 页 - - - - - - - - - 数据定义的伪指令:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 15 页,共 35 页 - - - - - - - - - 和结合程序控制的伪指令:名师资料总结 - -
13、-精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 16 页,共 35 页 - - - - - - - - - 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 17 页,共 35 页 - - - - - - - - - 段的属性。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 18 页,共
14、 35 页 - - - - - - - - - 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 19 页,共 35 页 - - - - - - - - - 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 20 页,共 35 页 - - - - - - - - - 混合编程:不到万不得已不会用到汇编,所以汇编主要用于硬件开始时,使用汇编实现; 汇编程序主要是指创建函数的中介,
15、在混合编程中:会使用 _asm 伪代码实现加入函数;在 c或者 c+函数的调用在汇编程序中访问c 或者 c+的变量的应用。程序中主要运用IMPORT标识符进行导入到汇编程序,实现两种形式见变量的参数传递。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 21 页,共 35 页 - - - - - - - - - 在汇编程序中使用C/C+的函数调用,反过来呢?Over 标识符的使用。定义函数外extern ,以及注意函数参数的传递方法。参数传递方法是通过寄存器完成参数的传递的。参数保存在
16、寄存中,参数的传递有数量的限制参 数传递的问题 ? 首先将函数名通过IMPORT将函数导入到寄存器中,完成下一步的调用。ARM 协处理器指令:协处理器是一种芯片,数字处理主要完成的各个处理,协处理器可以做管理缓存。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 22 页,共 35 页 - - - - - - - - - 协处理器的访问:专门的指令控制协处理器的处理方法一般在中断部分会用到。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - -
17、 - - - - 名师精心整理 - - - - - - - 第 23 页,共 35 页 - - - - - - - - - 伪指令:ARM 指令汇编语言的伪指令伪指令( ADR,ADRL,LDR,NOP,)Arm 汇编语言的程序设计:(.s)汇编语言语言格式:ARM 程序有代码段的区别,有代码段数据段等。堆栈存储的区别及存储方法本程序就是一个简单地加法运算。ARM 数据操作主要有三种形式:简单地寄存器操作;立即数操作;寄存器移位操作。设置条件码N 代表为负。 。 。等条件执行判断:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - -
18、名师精心整理 - - - - - - - 第 24 页,共 35 页 - - - - - - - - - 子函数调用使用BL调用,指跳转完事能够返回到L寄存器中。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 25 页,共 35 页 - - - - - - - - - 多重子程序的调用是用到堆栈操作。 。跳转表利用程序计数器进行。状态的跳转BX实现。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - -
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年arm汇编语言学习记录汇 2022 arm 汇编语言 学习 记录
限制150内