欢迎来到天天文库
浏览记录
ID:50482893
大小:56.00 KB
页数:18页
时间:2020-03-09
《汇编语言与接口技术 第2版 教学课件 作者 叶继华 第8章 ARM汇编语言程序设计.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第8章ARM汇编语言程序设计8.1ARM处理器的寻址方式8.2ARM处理器汇编语言指令8.3ARM汇编语言伪指令8.4ARM汇编语言语句格式8.5ARM汇编语言程序设计8.1ARM处理器的寻址方式1.立即数寻址2.寄存器寻址3.寄存器间接寻址4.基址变址寻址5.多寄存器寻址6.相对寻址7.堆栈寻址8.寄存器移位寻址8.2ARM处理器汇编语言指令8.2.1ARM指令概述8.2.2Thumb指令概述8.2.1ARM指令概述ARM微处理器的指令集主要有6大类,分别是跳转指令、数据处理指令(包括乘法指令与乘加指令)、程序状态寄存器(PSR)处理指令、加载/存储指令、协处理器指令、异常产生指令
2、。在ARM的指令中,操作数有时要先进行移位操作,然后再参与指令的工作,移位操作主要有LSL(或ASL)操作、LSR操作、ASR操作、ROR操作和RRX操作。8.2.2Thumb指令概述Thumb指令集是ARM指令集的一个子集,允许指令编码为16位的长度。与等价的32位代码相比较,Thumb指令集在保留32代码优势的同时,可以在很大程度上节省系统的存储空间。当处理器在执行ARM程序段时,称ARM处理器处于ARM工作状态;当处理器在执行Thumb程序段时,称ARM处理器处于Thumb工作状态。所有的Thumb指令都有对应的ARM指令,而且Thumb的编程模型也对应于ARM的编程模型,在应
3、用程序的编写过程中,只要遵循一定调用的规则,Thumb子程序和ARM子程序就可以互相调用,二者结合应用可以充分发挥各自的特点,取得较好的效果。8.3ARM汇编语言伪指令8.3.1符号定义伪指令8.3.2数据定义伪指令8.3.3汇编控制伪指令8.3.4其他常用的伪指令8.3.1符号定义伪指令符号定义伪指令用于定义ARM汇编程序中的变量、对变量赋值以及定义寄存器的别名等操作。常见的符号定义伪指令有:用于定义全局变量的GBLA、GBLL和GBLS,用于定义局部变量的LCLA、LCLL和LCLS,用于对变量赋值的SETA、SETL、SETS,为通用寄存器列表定义名称的RLIST。8.3.2数
4、据定义伪指令数据定义伪指令一般用于为特定的数据分配存储单元,同时可完成已分配存储单元的初始化。常见的数据定义伪指令有如下几种:DCB用于分配一片连续的字节存储单元并用指定的数据初始化;DCW(DCWU)用于分配一片连续的半字存储单元并用指定的数据初始化;DCD(DCDU)用于分配一片连续的字存储单元并用指定的数据初始化;DCFD(DCFDU)用于为双精度的浮点数分配一片连续的字存储单元并用指定的数据初始化;DCFS(DCFSU)用于为单精度的浮点数分配一片连续的字存储单元并用指定的数据初始化;DCQ(DCQU)用于分配一片以8字节为单位的连续的存储单元并用指定的数据初始化;SPACE
5、用于分配一片连续的存储单元;MAP用于定义一个结构化的内存表首地址;FIELD用于定义一个结构化的内存表的数据域。8.3.3汇编控制伪指令汇编控制伪指令用于控制汇编程序的执行流程,常用的汇编控制伪指令包括以下几条:1.IF、ELSE、ENDIF语法格式:IF逻辑表达式指令序列1ELSE指令序列2ENDIF2.WHILE、WEND语法格式:WHILE逻辑表达式指令序列WEND3.MACRO、MEND语法格式:$标号宏名MACRO$参数1,$参数2,……指令序列MEND4.MEXIT语法格式:MEXIT8.3.4其他常用的伪指令还有一些其他的伪指令在汇编程序中会被使用,包括以下几条:AR
6、EA;ALIGN;CODE16、CODE32;ENTRY;END;EQU;EXPORT(或GLOBAL);IMPORT;EXTERN;GET(或INCLUDE);INCBIN;RN;ROUT。8.4ARM汇编语言语句格式8.4.1ARM汇编语言中的符号8.4.2ARM汇编语句中的表达式8.4.1ARM汇编语言中的符号在汇编语言程序设计中,经常使用各种符号代替地址、变量和常量等,以增加程序的可读性。符号的命名由程序员决定,但必须遵循以下约定:符号由大小写字母、数字以及下划线组成符号是区分大小写的符号中的所有字符都是有意义的符号在其作用范围内必须唯一,即在其作用范围内不可有同名的符号程序
7、中的符号不能与系统内部变量或者系统预定义的符号同名程序中的符号通常不要与指令助记符或者伪操作同名。当同名时,用双竖线将符号括起来1.常量程序中的常量是指其值在程序运行过程中不能被改变的量。ARM汇编程序所支持的常量有数字常量、逻辑常量和字符串常量。2.变量程序中的变量是指程序运行过程中可以改变的量。ARM汇编程序所支持的变量有有数字变量、逻辑变量和字符串变量。3.标号标号代表一个地址。段内标号的地址值在汇编时确定,段外标号的值在连接时确定。根据标号的生成方
此文档下载收益归作者所有