第三章PART2.ppt

上传人:ga****84 文档编号:492876 上传时间:2018-10-14 格式:PPT 页数:24 大小:1.20MB
下载 相关 举报
第三章PART2.ppt_第1页
第1页 / 共24页
第三章PART2.ppt_第2页
第2页 / 共24页
第三章PART2.ppt_第3页
第3页 / 共24页
第三章PART2.ppt_第4页
第4页 / 共24页
第三章PART2.ppt_第5页
第5页 / 共24页
点击查看更多>>
资源描述

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

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

3、 SETA, SETL,SETS,鲁东大学 LUDONG UNIVERSITY,全局变量声明,GBLA, GBLL, GBLS- 声明一个全局的算术、逻辑和串变量 有效作用范围:The scope of the variable is limited to the source file that contains it.,鲁东大学 LUDONG UNIVERSITY,变量赋值,SETA, SETL, SETS-给一个算术、逻辑、串变量赋值Example:GLBA aGLBS abcGLBS defa SETA 256*256abc SETS this string contains only

4、 one double quotedef SETS this string contains only one $ dollar symbol,鲁东大学 LUDONG UNIVERSITY,Example,GBLA VersionNumberVersionNumber SETA 21 GBLL DebugDebug SETL TRUE GBLS VersionStringVersionString SETS Version 1.0,鲁东大学 LUDONG UNIVERSITY,局部变量声明,LCLA, LCLL, LCLS-声明一个局部的算术、逻辑、串变量有效作用范围:The scope of

5、 the variable is limited to a particular macro that contains it.,鲁东大学 LUDONG UNIVERSITY,Example,MACRO ; Declare a macro $label message $a ;Macro prototype line LCLS err ; Declare local string variable err SETS error no: ; Set value of err MEND,鲁东大学 LUDONG UNIVERSITY,数据定义伪指令,数据定义指令(Data definition di

6、rectives):用于进行数据空间分配。SPACEDCB DCD, DCDU MAP, FIELD,鲁东大学 LUDONG UNIVERSITY,SPACE,The SPACE directive reserves a zeroed block of memory.分配一块内存单元,并用0初始化。ExampleAREA MyData, DATA, READWRITEdata1 SPACE 255 ; defines 255 bytes of zeroed store,鲁东大学 LUDONG UNIVERSITY,DCB,The DCB directive allocates one or m

7、ore bytes of memory, and defines the initial values of the memory.分配一段字节内存单元,并用伪指令中的expr初始化。 Syntax:label DCB expr ,expr.ExampleDISPTAB DCB 0x33,0x43,0x76ERRSTR DCB “Send data is error!”,0,鲁东大学 LUDONG UNIVERSITY,DCD,DCDU,The DCD directive allocates one or more words of memory, aligned on 4-byte boun

8、daries.DCDU is the same, except that the memory alignment is arbitrary.分配一段字内存单元,并用伪指令中的expr初始化。DCD分配的内存单元需要字对齐,而DCDU则不需要Syntax:label DCDU expr ,expr.,鲁东大学 LUDONG UNIVERSITY,Example for DCD,DCDU,鲁东大学 LUDONG UNIVERSITY,字对齐和非字对齐,DCB 255 ; Now misaligned .data3 DCDU 20,data3 DCD 20,鲁东大学 LUDONG UNIVERSI

9、TY,MAP,FIELD,MAP directive sets the origin of a storage map to a specified address. 将内存区(表)的首地址映射到一个指定地址 is a synonym (同义词)for MAP.Syntax MAP expr,base-registerExample MAP 0,r9 MAP 0xff,r9 0,r9,鲁东大学 LUDONG UNIVERSITY,MAP,FIELD,FIELDdirective describes space within a storage map that has been defined

10、 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 UNIVERSITY,MAP,FIELD-EXAMPLE,StartOfMyTable EQU 0x1000 MAP 0x1000Integer FIELD 4Integer2 FIELD 4String FIELD 100Array FIELD 128BitMask FIELD 4,对于结构化表结构的存,取操作M

11、OV r1,#1LDR r0,=IntegerSTR r1,r0LDR r2,r0,鲁东大学 LUDONG UNIVERSITY,操作伪指令-pseudoinstruction,Pseudo Instruction-编译器将编译为ARM机器指令,与Directive Instuction不同。 ADR ADRL LDR NOP,鲁东大学 LUDONG UNIVERSITY,ADR,ADR-小范围地址读取指令SYNAX ADR 寄存器号,表达式 地址相对于PC的偏移量,在-511B512B的范围内。 使用的标号必须是本段内定义的,不能使用导入的全局标号。EXAMPLE: ADR r0,GotoT

12、humb+1 BX r0 CODE16 GotoThumb ADD r0,r1,鲁东大学 LUDONG UNIVERSITY,ADRL,ADRL-中范围地址读取指令 可以加载的最大地址范围在128KB的范围 与ADR相同,只能加载本段定义的标号地址ADRL与ADR的区别ADR伪指令通常会被汇编器翻译成一条语句 向前-sub rn,pc,#xxx 向后-add rn,pc,#xxxADRL会翻译成两条。,鲁东大学 LUDONG UNIVERSITY,ADR-ADRL区别说明,8位补码,加边界对齐,鲁东大学 LUDONG UNIVERSITY,ARM伪指令-操作伪指令(2),LDR-用于加载32位的立即数/地址到目的寄存器SYNTAX LDR 寄存器号,=立即数/地址标号表达式 EXAMPLE LDR r0,=0x12345678 LDR r0,=GotoThumb+10区别:LDR r0,r1NOP-空操作,用于延时和预留存储空间,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文资料库 > 毕业论文

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。