ARM汇编语言伪指令(Directives)_第1页
ARM汇编语言伪指令(Directives)_第2页
ARM汇编语言伪指令(Directives)_第3页
ARM汇编语言伪指令(Directives)_第4页
ARM汇编语言伪指令(Directives)_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、College of Computer Science & Technology第三章 ARM汇编编程 鲁东大学 LUDONG UNIVERSITYARM汇编语言伪指令(Directives)什么是伪指令:由汇编器提供的指令,指导汇编程序对代码进行汇编,辅助编程人员进行汇编编程机器指令(Instructions)运行期间由机器执行伪指令(Directives,Pseudo)-由汇编器处理汇编语言指示符-指示汇编器进行相应的操作 操作伪指令-汇编器汇编成对应机器指令 鲁东大学 LUDONG UNIVERSITY伪指令举例AREA ThumbSub, CODE, READONLY ENTRY CO

2、DE32 ;ARM header ADR r0, start + 1 CODE16 ;Thumb. start MOV r0, #10 doadd MOV pc, lr END 汇编控制伪指令 鲁东大学 LUDONG UNIVERSITYARM汇编语言伪指令杂项伪指令报告伪指令操作伪指令数据定义伪指令符号定义伪指令 鲁东大学 LUDONG UNIVERSITY符号定义伪指令符号定义指令(Symbol definition directives):用于定义ARM汇编程序中的变量(实为常量),可进行重新赋值。GBLA, GBLL, GBLSLCLA, LCLL, LCLS SETA, SETL,S

3、ETS 鲁东大学 LUDONG UNIVERSITY全局变量声明 GBLA, GBLL, GBLS- 声明一个全局的算术、逻辑和串变量 有效作用范围:The scope of the variable is limited to the source file that contains it.DirectivesVariable TypeInitial ValueGBLAarithmetic0GBLL logicalFALSEGBLSstring 鲁东大学 LUDONG UNIVERSITY变量赋值 SETA, SETL, SETS-给一个算术、逻辑、串变量赋值Example:GLBA aG

4、LBS abcGLBS defa SETA 256*256abc SETS this string contains only one double quotedef SETS this string contains only one $ dollar symbol 鲁东大学 LUDONG UNIVERSITYExample GBLA VersionNumberVersionNumber SETA 21 GBLL DebugDebug SETL TRUE GBLS VersionStringVersionString SETS Version 1.0 鲁东大学 LUDONG UNIVERSI

5、TY局部变量声明 LCLA, LCLL, LCLS-声明一个局部的算术、逻辑、串变量有效作用范围:The scope of the variable is limited to a particular macro that contains it.DirectivesVariable TypeInitial ValueLCLAarithmetic0LCLL logicalFALSELCLSstring 鲁东大学 LUDONG UNIVERSITYExampleMACRO ; Declare a macro $label message $a ;Macro prototype line LCL

6、S err ; Declare local string variable err SETS error no: ; Set value of err MEND 鲁东大学 LUDONG UNIVERSITY数据定义伪指令数据定义指令(Data definition directives):用于进行数据空间分配。SPACEDCB DCD, DCDU MAP, FIELD 鲁东大学 LUDONG UNIVERSITYSPACEThe SPACE directive reserves a zeroed block of memory.分配一块内存单元,并用0初始化。ExampleAREA MyDat

7、a, DATA, READWRITEdata1 SPACE 255 ; defines 255 bytes of zeroed store 鲁东大学 LUDONG UNIVERSITYDCBThe DCB directive allocates one or more bytes of memory, and defines the initial values of the memory.分配一段字节内存单元,并用伪指令中的expr初始化。 Syntax:label DCB expr ,expr.ExampleDISPTAB DCB 0 x33,0 x43,0 x76ERRSTR DCB “

8、Send data is error!”,0 鲁东大学 LUDONG UNIVERSITYDCD,DCDUThe DCD directive allocates one or more words of memory, aligned on 4-byte boundaries.DCDU is the same, except that the memory alignment is arbitrary.分配一段字内存单元,并用伪指令中的expr初始化。DCD分配的内存单元需要字对齐,而DCDU则不需要Syntax:label DCDU expr ,expr. 鲁东大学 LUDONG UNIVE

9、RSITYExample for DCD,DCDU 鲁东大学 LUDONG UNIVERSITY字对齐和非字对齐DCB 255 ; Now misaligned .data3 DCDU 20data3 DCD 20 鲁东大学 LUDONG UNIVERSITYMAP,FIELDMAP directive sets the origin of a storage map to a specified address. 将内存区(表)的首地址映射到一个指定地址 is a synonym (同义词)for MAP.Syntax MAP expr,base-registerExample MAP 0,

10、r9 MAP 0 xff,r9 0,r9 鲁东大学 LUDONG UNIVERSITYMAP,FIELDFIELDdirective describes space within a storage map that has been defined using the MAP directive. # is a synonym for FIELD. Syntaxlabel FIELD exprExample MAP 0,r9 Integer FIELD 4 Lab FIELD 4 LDR r0,Lab 鲁东大学 LUDONG UNIVERSITYMAP,FIELD-EXAMPLEStartO

11、fMyTable EQU 0 x1000 MAP 0 x1000Integer FIELD 4Integer2 FIELD 4String FIELD 100Array FIELD 128BitMask FIELD 4对于结构化表结构的存,取操作MOV r1,#1LDR r0,=IntegerSTR r1,r0LDR r2,r0 鲁东大学 LUDONG UNIVERSITY操作伪指令-pseudoinstructionPseudo Instruction-编译器将编译为ARM机器指令,与Directive Instuction不同。 ADR ADRL LDR NOP 鲁东大学 LUDONG U

12、NIVERSITYADRADR-小范围地址读取指令SYNAX ADR 寄存器号,表达式 地址相对于PC的偏移量,在-511B512B的范围内。 使用的标号必须是本段内定义的,不能使用导入的全局标号。EXAMPLE: ADR r0,GotoThumb+1 BX r0 CODE16 GotoThumb ADD r0,r1 鲁东大学 LUDONG UNIVERSITYADRLADRL-中范围地址读取指令 可以加载的最大地址范围在128KB的范围 与ADR相同,只能加载本段定义的标号地址ADRL与ADR的区别ADR伪指令通常会被汇编器翻译成一条语句 向前-sub rn,pc,#xxx 向后-add rn,pc,#xxxADRL会翻译成两条。 鲁东大学 LUDONG UNIVERSITYA

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论