arm汇编语言学习记录.docx

  1. 1、本文档共35页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
arm汇编语言学习记录

Arm 汇编体系结构的基本编程:(ARM基本的编程对于语言要求特别高,尤其是编程格式)分为四个点:AREA声明一个段AREA Example,CODE,READONLY;申明代码段ExampleENTRY ;申明代码入口 START MOVE RO,#1//中间为汇编程序代码End //程序的结尾,表明结束四个关键点:环境利用RVDS环境编译程序,是一个集成环境,Code warrior 主要管理代码,产生出可以的镜像文件。及搭建ARM集成环境的搭建.ARM工作模式:1,工作状态:32位工作状态 2,thumb状态:16位的处理。支持最大的4G的存储存储模式的不同:大端模式及小端模式(重点:面试中经常问到)大端及小端模式的不同:大端格式是数据的高位与地址的高位及地位的存储不同如0X8070的高位字节是80,逻辑低位是70;数据也存在存储空间要是将70放在低地址的话则为小端模式(逻辑高位放在地址的地位,逻辑地位放在地址的地位)要是相反的话则为大端模式的存储。arm是32为的处理器但是他也可以处理8,16,32位的数据。(如89c51,128,K60等)ARM模式是指四个字节是指在4的倍数的地方才可以存储数据,二字节也是一样。工作模式:用户模式;快速中端模式;外部中断模式;管理模式;数据访问终止模式等,每一种模式都有对应的中断标志符。模式之间的切换(主要是指ARM和thumb状态):1,通过程序员认为的控制,2,外部的中断控制等,由于外部中断和异常进行切换的。用户模式外的就是特权模式,除去用户模式和系统模式外就是异常模式。ARM 寄存器的分类主要是31个通用寄存器,6个程序状态寄存器{包括SPSR和CPSR等}。主要是由于工作的状态不一样的话,能够访问的寄存器不同,其中工作模式不同寄存器的访问也不同。不分组寄存器:R0-R7分组寄存器:R8-R14 其中R13-R14是指堆栈指针,完成在数据存储,sp指针完成数据的出栈和入栈功能。R14主要是子程序链接寄存器link,指在函数调用时用于程序的返回保存值。程序计数器:R15(pc)程序状态寄存器:有CPSR寄存器——程序状态寄存器 SPSR寄存器主要是终端模式的寄存器,它用于保存程序的异常处理功能。SPSR是指在异常模式下的CPSR和SPSR一样;其中有四个标志位主要能说明程序的状态和环境。用五个位表示的工作模式;工作状态;中断开关等进行处理。实例:程序编译完成后可以再当前模式之下查看现在寄存器的值:ARM寻址的方式:他的特点之一,寻址方式比较灵活。寻址方式是指寻找数据所在的物理地址:ARM支持的寻址方式:(立即数寻址,寄存器寻址,寄存器地址寻址)立即数寻址立即数寻址需要加一个“#”(泛指一个立即数,即可进行常量之间的操作),在十六进制的寻址是指“ox”2,寄存器寻址寄存器间接寻址它是指对于寄存器的地址进行操作,不直接处理操作数,而是处理操作数的地址寄存器寻址(寄存器直接寻址)直接对于寄存器中的数值进行操作;基址变址寻址操作不同。尤其注意第三种,多寄存器寻址指通过一条指令改变多个寄存器的地址值。堆栈寻址堆栈寻址递增堆栈递减堆栈ARM汇编指令集:arm支持的汇编指令跳转的指令:使用专门的指令和更改PC的值向前或者向后的跳转B 指令 B{条件}一旦遇见跳转命令,先判断条件在进行跳转。BL跳转指令 BL{条件} 目标地址只不过使用B指令使用完成后,不会跳转回来,而BL可以。BLX 则指跳转到thumb状态,与其他两个不同将下一次要返回的值进行保存。数据处理指令MOV指令:指在通用寄存器或者立即数之间进行相互传递数据。MVN指令CMP指令:CPSR中存在条件标志位,实现比较完成后的存储。TST指令ADD命令SUB指令AND指令Orr指令ORR指令Bic指令MUL指令实例:(指令的编程)ARM指令集内存中指令的执行,ARM的基本内存的指令;加载和存储指令主要是用在内存之间的各个操作LDR指令利用R1中存放的值找到操作数放到R1里面去。MOV只能操作通用寄存器,要是操作内存单元必须用该指令。LDRB指令LDRH指令LDRB指令STR指令第一种采用基址变址寻址方式。第二个采用也是批量加载及存储结构LDM指令寄存器类表,进行传递。数据交换内的指令:SWP和SWPB指令要是想用其他指令替换可以使用STR指令进行替换。移位指令交换和移位指令的演示;ARM伪指令的编程:就是假指令数据定义的伪指令:和结合程序控制的伪指令:段的属性。混合编程:不到万不得已不会用到汇编,所以汇编主要用于硬件开始时,使用汇编实现;汇编程序主要是指创建函数的中介,在混合编程中:会使用

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档