文档详情

arm第六章.ppt

发布:2017-06-12约2.76千字共33页下载文档
文本预览下载声明
配套教材: 《ARM嵌入式系统结构与编程》, 邱铁 编著,清华大学出版社,2009,3 第6章 ARM汇编伪指令与伪操作 内容提要 6.1 汇编语言伪指令 6.2 ARM汇编语言伪操作 6.3 ARM汇编伪操作 6.4 GNU ARM汇编伪操作 6.4 GNU ARM汇编伪操作 在嵌入式系统开发中,不可避免的要使用GNU工具,要进行嵌入式LINUX的移植与开发,其中与硬件直接相关的部分要用汇编语言来编程。 6.4.1 符号定义伪操作 1.常量定义伪操作.equ或.set 语法格式: .equ symbol, expr .set symbol, expr 其中: symbol 为要指定的名称,它可以是以前定义过的符号; expr 表示数字常量或程序中的标号。 2.常量定义伪操作.equiv 语法格式: .equiv symbol, expr 其中: symbol 为要指定的名称,它不可以是以前定义过的符号; expr 表示数字常量或程序中的标号。 3.声明全局常量伪操作.global或.globl 语法格式: .global symbol .globl symbol 其中: symbol 为要声明的全局变量名称 4.声明外部常量伪操作.extern 语法格式: .extern symbol 其中: symbol 为要声明的外部变量名称 6.4.2 数据定义伪操作 1.字节定义.byte 语法格式: .byte expr {, expr }… 其中: expr 数字表达式或程序中的标号。 2.半字定义.hword或.short 语法格式: .hword expr {, expr }…. .short expr {, expr }… 其中: expr 数字表达式或程序中的标号。 3.字定义.word或.int或.long 语法格式: .word expr {, expr }…. .int expr {, expr }… .long expr {, expr }… 其中: expr 数字表达式或程序中的标号。 4.字符串定义.ascii和.asciz或.string 语法格式: .ascii expr {, expr }… .asciz expr {, expr }… .string expr {, expr }… 其中: expr 表示字符串。 5.双字定义.quad 语法格式: .quad expr {, expr }… 其中: expr 数字表达式。 6.四字定义.octa 语法格式: .octa expr {, expr }… 其中: expr 数字表达式。 7.单精度浮点数定义.float或.single 语法格式: .float expr {, expr }…. .single expr {, expr }…. 其中: expr 为32位的 IEEE 单精度浮点数。 8.双精度浮点数定义.double 语法格式: .double expr {, expr }… 其中: expr 为32位的 IEEE 单精度浮点数。 9.重复内存单元定义.fill 语法格式: .fill repeat {, size}{, value} 其中: repeat 重复填充的次数; size 每次所填充的字节数; value 所填充的数据。 9.零填充字节内存单元定义.zero 语法格式: .zero size 其中: size 所分配的0填充字节数 10.固定填充字节内存单元定义.space或.skip 语法格式: .space size {, value} .skip size {, value} 其中: size 所分配的字节数 11.声明数据缓冲池.ltorg 语法格式 .ltorg 6.4.3汇编与反汇编代码控制伪操作 指令集类型标识伪操作 .arm .code 32 .thumb .code 16 段属性定义伪操作 语法格式如下: .section expr 其中: expr 为段属性,可以是.text、.data、.bss中的一个。 段起始声明伪操作 具体的语法格式如下: .text .data .bss 对齐方式设置伪操作.align或.balign 语法格式: .align {alignment} {, fill} .balign {alignment} {, fill} 其中: alignment 是一个数值表达式,用于指定对齐方式,其取值在0~15范围内; fill 用来指定进行填充的数据。 代码位置设置伪操作.org? 语法格式: .org offset {, expr}? 其中: offset
显示全部
相似文档