(6)--06ARM指令集2嵌入式系统原理及应用.pdf
《(6)--06ARM指令集2嵌入式系统原理及应用.pdf》由会员分享,可在线阅读,更多相关《(6)--06ARM指令集2嵌入式系统原理及应用.pdf(42页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、03 ARM指令集 3.1 ARM指令集概述 目录 CONTENTS 3.2 ARM指令的寻址方式 3.3 ARM指令简介 3.4 Thumb指令简介 3.5 ARM汇编语言程序设计 3.5 ARM汇编语言程序设计 汇编语言编程格式 3.5 ARM汇编语言程序设计 伪操作 ARM汇编语言程序是由机器指令、伪指令和伪操作组成的。伪操作是ARM汇编语言程序里的一些特殊的指令助记符,和指令系统中的助记符不同,这些助记符没有相应的操作码。伪操作主要是为完成汇编程序做一些准备工作,在源程序汇编过程中起作用,一旦汇编完成,伪操作的使命就完成。例如:要告诉编译器程序段的开始和结束,需要定义数据等.3.5 A
2、RM汇编语言程序设计 伪操作 在ARM的汇编程序中,把伪指令分为三部分介绍:通用伪指令 与ARM指令相关的伪指令 与Thumb指令相关的伪指令 3.5 ARM汇编语言程序设计 伪操作 通用伪指令 符号定义伪指令 数据定义伪指令 汇编控制伪指令 及其他一些常用伪指令等 3.5 ARM汇编语言程序设计 符号定义伪指令 符号定义伪指令用于声明ARM汇编程序中的变量、对变量赋值以及定义寄存器的名称等操作。常见的符号定义伪指令有如下几种:GBLA、GBLL和GBLS LCLA、LCLL和LCLS SETA、SETL和SETS RLIST 3.5 ARM汇编语言程序设计 符号定义伪指令(1)GBLA、GB
3、LL和GBLS 语法格式:GBLA(GBLL或GBLS)全局变量名 GBLA用于声明一个全局的数字变量,并初始化为0;GBLL伪指令用于声明一个全局的逻辑变量,并初始化为F(假);GBLS伪指令用于声明一个全局的字符串变量,并初始化为空;对于全局变量来说,变量名在源程序中必须是唯一的 3.5 ARM汇编语言程序设计 符号定义伪指令(1)GBLA、GBLL和GBLS 语法格式:GBLA(GBLL或GBLS)全局变量名 指令示例:GBLA DATE1;声明一个全局数字变量DATE1 GBLL DATE2;声明一个全局逻辑变量DATE2 GBLS DATE3;声明一个全局的字符串变量DATE3 DA
4、TE3 SETS“Testing”;将该变量赋值为“Testing 3.5 ARM汇编语言程序设计 符号定义伪指令(2)LCLA、LCLL和LCLS 语法格式:LCLA(LCLL或LCLS)局部变量名 功能分析:LCLA、LCLL和LCLS伪指令是声明局部变量伪指令,用于定义一个ARM程序中的局部变量,并将其初始化。注意:对于局部变量来说,变量名在使用的范围内必须是唯一的,范围限制在定义这个变量的宏指令程序段内。3.5 ARM汇编语言程序设计 符号定义伪指令(2)LCLA、LCLL和LCLS 语法格式:LCLA(LCLL或LCLS)局部变量名 指令示例:LCLA DATE4 ;声明一个局部数字
5、变量DATE4 LCLL DATE5 ;声明一个局部的逻辑变量DATE5 DATA4 SETA 0 x10;为变量DATE4赋值为0 x10 LCLS DATA6 ;声明一个局部的字符串变量DATA6 3.5 ARM汇编语言程序设计 符号定义伪指令(3)SETA、SETL和SETS 语法格式:变量名 SETA(SETL或SETS)表达式 功能分析:SETA、SETL、SETS是变量赋值伪指令,用于给一个已经定义的全局变量或局部变量赋值。3.5 ARM汇编语言程序设计 符号定义伪指令(3)SETA、SETL和SETS 指令示例:GBLA EXAMP1 ;先声明一个全局数字变量EXAMP1 EXA
6、MP1 SETA 0 xaa ;将变量EXAMP1赋值为0 xaa LCLL EXAMP2 ;声明一个局部的逻辑变量EXAMP2 EXAMP1 SETL TRUE ;将变量EXAMP1赋值为TRUE GBLS EXAMP3 ;先声明一个全局字符串变量EXAMP3 EXAMP3 SETS“string”;将变量EXAMP3赋值为string 3.5 ARM汇编语言程序设计 符号定义伪指令(4)RLIST 语法格式:名称 RLIST 寄存器列表 功能分析:定义通用寄存列表伪指令,主要应用在堆栈操作或多寄存器传送中(可在ARM指令LDM/STM中使用)。在LDM/STM指令中,列表中的寄存器访问次序
7、为根据寄存器的编号由低到高,而与列表中的寄存器排列次序无关。3.5 ARM汇编语言程序设计 符号定义伪指令(4)RLIST 指令示例:RegList RLIST R0-R5,R8 ;定义寄存器列表为RegList STMFD SP!,RegList ;在程序中使用,存储列表到堆栈 LDMIA R5,RegList 加载列表 3.5 ARM汇编语言程序设计 数据定义伪指令 数据定义伪指令一般用于为特定的数据分配存储单元,同时可完成已分配存储单元的初始化。(1)DCB 语法格式:标号 DCB 表达式 功能分析:DCB伪指令是字节分配内存单元伪指令,用来分配一片连续的字节存储单元并用伪指令中指定的数
8、值或字符初始化。其中,数值范围为0255,DCB也可用“=”代替。3.5 ARM汇编语言程序设计 数据定义伪指令 数据定义伪指令一般用于为特定的数据分配存储单元,同时可完成已分配存储单元的初始化。(2)MAP和FILED 指令示例:MAP 表达式,基址寄存器 标号 FIELD 表明数据字节数的数值 功能分析:MAP和FILED是内存表定义伪指令 3.5 ARM汇编语言程序设计 汇编控制伪指令 汇编控制伪指令用于控制汇编程序的执行流程。(1)MACRO、MEND和MEXIT MACRO$标号 宏名$参数1,$参数2,语句段 MEXIT 语句段 MEND 3.5 ARM汇编语言程序设计 汇编控制伪
9、指令 汇编控制伪指令用于控制汇编程序的执行流程。(2)IF、ELSE、ENDIF 指令示例:IF R0=0 x10 ;判断R0中的内容是否是0 x10 ADD R0,R1,R2 ;如果R0=0 x10,则执行R0=R1+R2 ELSE ADD R0,R1,R3 ;如果R0 0 x10,则执行R0=R1+R3 ENDIF 3.5 ARM汇编语言程序设计 其他杂类伪指令(1)ALIGN 语法格式:ALIGN 表达式,偏移量 指令示例:B START ADD R0,R1,R2 ;正常语句 DATA1 DCB“Ertai”;插入5个字节的存储区,地址不对准 ALIGN 4 START LDR R5,R
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 06 ARM 指令 嵌入式 系统 原理 应用
限制150内