文档详情

ARM嵌入式系统结构与编程:第6章 ARM汇编伪指令与伪操作.ppt

发布:2025-03-26约2.26千字共30页下载文档
文本预览下载声明

*TM**TM内容提要6.1汇编语言伪指令6.2ARM汇编语言伪操作6.3ARM汇编伪操作6.4GNUARM汇编伪操作6.4 GNUARM汇编伪操作在嵌入式系统开发中,不可避免的要使用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语法格式:.zerosize其中: size 所分配的0填充字节数10.固定填充字节内存单元定义.space或.skip语法格式:.space size{,value}.skip size{,value}其中: size 所分配的字节数11.声明数据缓冲池.ltorg语法格式 .ltorg6.4.3汇编与反汇编代码控制伪操作1.指令集类型标识伪操作.arm.code32.thumb.code166.4.3汇编与反汇编代码控制伪操作2.段属性定义伪操作语法格式如下:.sectionexpr其中:expr 为段属性,可以是.text、.data、.bss中的一个。3.段起始声明伪操作具体的语法格式如下:.text.data.bss4.对齐方式设置伪操作.align或.balign语法格式:.align {alignment}{,fill}.balignv{alignment}{,fill}其中:alignment是一个数值表达式,用于指定对齐方式,其取值在0~15范围内;fill 用来指定进行填充的数据。5.代码位置设置伪操作.org?语法格式:.org offset{,expr}?其中:offset是一

显示全部
相似文档