第四章 ARM指令系统与汇编编程

第四章 ARM指令系统与汇编编程

ID:37620218

大小:1017.71 KB

页数:210页

时间:2019-05-26

第四章 ARM指令系统与汇编编程_第1页
第四章 ARM指令系统与汇编编程_第2页
第四章 ARM指令系统与汇编编程_第3页
第四章 ARM指令系统与汇编编程_第4页
第四章 ARM指令系统与汇编编程_第5页
资源描述:

《第四章 ARM指令系统与汇编编程》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第四章ARM指令系统与汇编编程第四章ARM指令系统与汇编编程鲁东大学LUDONGUNIVERSITYARM汇编程序结构ARM指令寻址方式ARM9机器指令集ARM汇编语言伪指令C和汇编混合编程ARM汇编程序结构鲁东大学LUDONGUNIVERSITYARM汇编程序结构-基本知识(1)ARM源程序为文本格式,可以使用任意文本编辑器编写程序代码以程序段为单位组织代码,段有名称段分为代码段和数据段两种代码段-内容为执行代码数据段-内容为代码运行时用到的数据一个汇编程序至少包含一个代码段多个代码段和数据段在编译链接时生成一个可执行映像文件ARM汇编语言程序

2、结构-示例鲁东大学LUDONGUNIVERSITYAREAInit,CODE,READONLYENTRYstartLDRR0,0x3FF5000该程序,由一个代码LDRR0,0xFF段一个数据段组成,STRR1,[R0]包含汇编指令和伪指令两种指令,汇编指…令中采用了两种寻址方式AREAtestdata,DATA,READWRITEsrcDCD1,2,3;定义数据END伪指令鲁东大学LUDONGUNIVERSITY机器指令—能够直接被处理器识别,执行的指令。汇编指令和机器指令之间为一一对应关系伪指令—只在汇编编译过程中起作用,为完成程序的汇编做准备,或者汇

3、编编译程序会将伪指令编译为相应的指令伪指令完成的操作称为伪操作。即:伪指令是被编译器执行的,而机器指令是由处理器执行的。ARM汇编程序结构鲁东大学LUDONGUNIVERSITYAREAInit,CODE,READONLY;段定义伪指令段定义伪指令格式:AREA段名,属性1,属性2,…定义名为Init的段属性1为CODE-表明为代码段属性2为READONLY-为只读AREABlockData,DATA,READWRITE一个可执行文件,必须包含至少一个只读代码段,零个或者多个可读/写的数据段。ENTRY的说明鲁东大学LUDONGUNIVERSITYENTRY

4、-伪指令用于指明程序的入口点,供编译链接使用一个完整的源程序可包含多个源文件一个完整的源程序至少应有一个ENTRY(有多个ENTRY时,由链接器指定入口)一个源文件最多只能有一个ENTRY(可以没有ENTRY)END的说明鲁东大学LUDONGUNIVERSITYEND-伪指令通知汇编编译器,源程序结束所有的汇编源文件都要以END结束包括*.INC文件,否则编译器会警告汇编语言语句格式鲁东大学LUDONGUNIVERSITY汇编语言语句格式为:[标号]<指令或伪指令><操作数>[;注释]所有标号必须在一行的顶格书写,指令不能顶格书写。ARM汇编对大小写

5、敏感,即,区分大小写,注意在程序中对大小写的使用一致。对于指令/伪指令,寄存器名称,标号,可全部为大写或小写,但不可大小写混用。单行语句过长时,可以使用“”换行,代表下行为此行的续行。汇编语言语句格式鲁东大学LUDONGUNIVERSITY找错误:STARTMOVR0,#1ABC:MOVR1,#2MOVR2,#3loopMovR2,#3BLoopARM指令寻址方式鲁东大学LUDONGUNIVERSITY立即寻址寄存器寻址寄存器移位寻址寄存器间接寻址基址寻址多寄存器寻址堆栈寻址相对寻址立即寻址鲁东大学LUDONGUNIVERSITY立即寻

6、址-不能做目的操作数寻址例:MOVR0,#0xff000SUBR0,R0,#1;立即数以“#”号作前缀十六进制立即数,以“0x”或者“&”表示寄存器寻址鲁东大学LUDONGUNIVERSITY寄存器寻址-操作数位于寄存器中例:MOVRO,R1SUBR0,R1,R2寄存器寻址方式使用频率高,执行效率高寄存器移位寻址鲁东大学LUDONGUNIVERSITY寄存器移位寻址-ARM指令集特有,第2个操作数在进行指令指定的操作前,首先进行移位操作。例:MOVR0,R1,LSL#3;R1的值先左移三位,再传送到R0中ANDR1,R1,R2,LSLR3;R2的内容先

7、左移R3位,然后与R1作与操作,结果存入R1。可采用的移位操作鲁东大学LUDONGUNIVERSITY寄存器移位寻址,可采用的移位方式包括5种:LSL:逻辑左移,低位补0LSR:逻辑右移,高位补0ASR:算术右移,高位补符号位ROR:循环右移,移出的低位补入高位RRX:带扩展的循环右移,带C位LSL鲁东大学LUDONGUNIVERSITYLSL:逻辑左移,低位补0LSR鲁东大学LUDONGUNIVERSITY寄存器移位寻址,可采用的移位方式包括:LSR:逻辑右移,高位补0ASR鲁东大学LUDONGUNIVERSITY寄存器移位寻址,可采用的移位方式包括:ASR

8、:算术右移,高位补符号位ROR鲁东大学

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。