GNU ARM汇编伪操作(Directives)
来源:百度文库 编辑:神马文学网 时间:2024/04/19 16:39:49
1.符号定义伪操作jUw平坦软件园
操作符 语法格式 说明jUw平坦软件园
.equ .equ symbol,expr 将symbol定义为exprjUw平坦软件园
.set .set symbol,expr 和equ相同(.set=.equ)jUw平坦软件园
.equiv .equiv symbol 将symbol定义为expr,若 symbol已定义则出错jUw平坦软件园
.global .global symbol 将symbol定义为全局标号jUw平坦软件园
.globl .globl symbol 和.global相同(.globl=.global)jUw平坦软件园
.extern .extern symbol 声明symbol为一个外部变量jUw平坦软件园
jUw平坦软件园
jUw平坦软件园
2.数据定义伪操作jUw平坦软件园
.byte .byte expr {,expr}… 分配一段字节内存单元,并用expr初始化字节内存单元(8bit)jUw平坦软件园
.hword .bword expr {,expr}… 分配一段半字内存单元,并用expr初始化半字内存单元 (16bit)jUw平坦软件园
.short .short expr {,expr}… 同.hword(16bit)jUw平坦软件园
.word .word expr {,expr}… 分配一段字内存单元,并用expr初始化字内存单元(32bit)jUw平坦软件园
.int .int expr {,expr}… 同.word(32bit)jUw平坦软件园
.long .long expr {,expr}… 同.word(32bit)jUw平坦软件园
.ascii .ascii expr{,expr}…分配一段字符串内存单元,并用expr初始化字符串内存单元(非零结束符)jUw平坦软件园
.asciz .asciz expr{,expr}…分配一段字符串内存单元,并用expr初始化字符串内存单元(零结束符)jUw平坦软件园
.string .string expr {,expr}… 同.asciz(零结束符)jUw平坦软件园
.quad .qua expr {,expr}… 分配一段双字内存单元,并用expr初始化双字内存单元jUw平坦软件园
.octa .octa expr{,expr}… 分配一段四字内存单元,并用expr初始化四字内存单元jUw平坦软件园
.float .float expr{,expr}… 分配一段字内存单元,并用32位IEEE单精度浮点数expr初始化内存单元jUw平坦软件园
.single .single expr{,expr}… 同.float jUw平坦软件园
.double .double expr{,expr}… 分配一段双字内存单元,并用64位IEEE双精度浮点数expr初始化内存单元jUw平坦软件园
.fill .fill repeat{,size}{,value} 用size个字节value填充repeat次(size默认为1,value默认为0)jUw平坦软件园
.zero .zreo size 用0填充size个字节的内存单元jUw平坦软件园
.space .space size{,value} 用value填充size个字节的内存单元(value默认为0)jUw平坦软件园
.skip .space size{,value} 同.spacejUw平坦软件园
.ltorg .ltorg 声明一个数据缓冲池(literal pool)jUw平坦软件园
jUw平坦软件园
jUw平坦软件园
3.汇编与反汇编代码控制伪操作jUw平坦软件园
.arm .arm 定义一下代码使用ARM指令集编译jUw平坦软件园
.code 32 .code 32 作用同.armjUw平坦软件园
.thumb .thumb 定义一下代码使用Thumb指令集编译jUw平坦软件园
.code 16 .code 16 作用同.thumbjUw平坦软件园
.section .section expr 定义域中包含的段。expr可以使.text,.data.,.bssjUw平坦软件园
.text .text {subsection} 将定义符开始的代码编译到代码段或代码子段(subsection)jUw平坦软件园
.data .data {subsection} 将定义符开始的代码编译到数据段或数据子段(subsection)jUw平坦软件园
.bss .bss {subsection} 将变量存放到.bss段或.bss的子段(subsection)jUw平坦软件园
.align .align{alignment}{,fill}{,max} 通过用零或指定的数据进行填充来使当前位置与指定边界对齐jUw平坦软件园
.balign .balign{alignment}{,fill}{,max}作用同.alignjUw平坦软件园
.org .org offset{,expr} 指定从当前地址加上offset开始存放代码,并且从当前地址 到当前地址加上offset之间的内存单元,用零或指定的数据进行填充jUw平坦软件园
org=originjUw平坦软件园
jUw平坦软件园
jUw平坦软件园
其他汇编与反汇编jUw平坦软件园
.end .end 标记汇编文件的结束行,即标记后的代码不做处理jUw平坦软件园
.err .err 使编译结果产生错误报告jUw平坦软件园
.eject .eject 在汇编符号列表文件中插入一分页符jUw平坦软件园
.list .list .产生汇编列表(从.list到.nolist)jUw平坦软件园
.nolist .nolist 汇编列表结束处。再次使用.list产生汇编列表jUw平坦软件园
.title .title "title_name" 使用heading作为标题(位于汇编列表文件中文件名下一行)jUw平坦软件园
.sbttl .sbttl "title_name" 使用heading作为子标题(位于.title标题下一行)jUw平坦软件园
.print .print string 打印输出信息到标准输出jUw平坦软件园
jUw平坦软件园
jUw平坦软件园
4.预定义控制操作jUw平坦软件园
.if 条件判断语句jUw平坦软件园
.else 条件判断语句jUw平坦软件园
.endif 条件结束语句jUw平坦软件园
.macro 标识宏定义的开始jUw平坦软件园
.endm 标识宏定义的结束jUw平坦软件园
.exitm .exitm 中 途跳转出宏jUw平坦软件园
.include .include "file_name" 包含文件标识