arm伪指令
符号定义伪指令
定义arm汇编程序中的变量、对变量赋值以及定义寄存器的别名
定义全局变量
gbla(全局数字变量,初始化值为0)
GBLA 全局变量名
示例代码如下:
GBLA Test1;定义全局数字变量test1
Test1 SETA 0x123;将该变量赋值为0x123
gbll(全局逻辑变量,初始化为F)
GBLL 全局变量名
示例代码如下:
GBLL Test2;定义全局逻辑变量test2
Test2 SETL {TRUE};将变量赋值为真
bgls(全局字符串变量,初始化为空)
GBLS 全局变量名
示例代码如下:
GBLS Test3;定义全局字符串变量test3
Test3 SETS "Testing";将变量赋值为testing
定义局部变量
lcla
lcll
lcls
对变量赋值
seta
setl
sets
为通用寄存器列表定义名称 rlist
在LDM/STM指令中,列表中的寄存器访问次序根据寄存器的编号由低到高
与列表中的寄存器的排列次序无关
语法格式:
名称 RLIST {寄存器列表}
示例代码如下:
RegList RLIST (R0-R5,R8,R10);定义RegList寄存器列表
数据定义伪指令
DCB 分配一片连续的字节存储单元,并且用指令中指定的表达式初始化
语法格式:
标号 DCB 表达式
示例代码如下:
str DCB "this is a test!";分配一片连续的字节存储单元并初始化
SPACE 分配一片连续的存储区域并初始化为0,表达式的值为要分配的字节数
语法格式:
标号 SPACE 表达式
示例代码如下:
DataSpace SPACE 100;分配连续100字节的存储单元并初始化为0
MAP 定义一个结构化内存表的首地址
语法格式:
MAP 表达式{,基址寄存器}
示例代码如下:
MAP 0X100,R0;定义结构化内存表首地址为0x100+R0
FILED 定义一个结构化内存表中的数据域
语法格式:
标号 FILED 表达式
示例代码如下:
MAP 0X0100;定义结构化内存表首地址的值为0x100
A FILED 16;定义A的长度为16字节,位置为0x100
B FILED 32;定义B的长度为32字节,位置为0x110
C FILED 256;定义C的长度为256字节,位置为0x130
汇编控制伪指令
IF ELSE ENDIF
语法格式:
IF 逻辑表达式
指令序列1
ELSE
指令序列2
ENDIF
示列代码如下:
GBLL Test;
IF Test=TRUE
指令序列1
ELSE
指令序列2
ENDIF
WHILE WEND
语法格式:
WHILE 逻辑表达式
指令序列
WEND
示例代码如下:
GBLA Counter;声明一个全局数学变量
Counter SETA 3;赋值
WHILE Counter<10
指令序列
WEND
MACRO MEND
MEXIT
宏指令
其它伪指令
AREA 定义一个代码段或数据段
语法格式:
AREA 段名 属性1,属性2
常用属性:
CODE:定义代码段,默认为readonly
DATE:定义数据段,默认为readwirte
READONLY:只读
READWRITE:可读可写
ALIGN:对齐方式 语法格式:ALIGN {表达式{,偏移量}}
示例代码如下:
AREA Init,CODE,READONLY;定义一个名为init的代码段,属性为只读
AREA Init,CODE,READONLY,ALIEN=3;指定后面的指令为8字节对齐
CODE16(CODE32)通知编译器,其后的指令序列为16位的thumb指令
ENTRY 指定汇编程序的入口点
示例代码如下:
AREA Init,CODE,READONLY
ENTRY;指定应用程序的入口点
EQU 为程序中的常量,标号等定义一个等效的字符名称(类似于define)
语法格式:
名称 EQU 表达式{,类型}
示例代码如下:
Test EQU 50;定义标号Test的值为 50
Addr EQU 0x55,CODE32;定义Addr 的值为0x55,且该处为32位的arm指令
EXPORT 在程序中声明一个全局的标号,该标号可在其他的文件中引用
语法格式:
EXPORT 标号
示例代码:
AREA Init,CODE,READONLY
EXPORT Stest;声明一个可全局引用的标号Stest
- 浏览: 263131 次
- 性别:
- 来自: 济南
相关推荐
ARM处理器的学习笔记主要涵盖了处理器的存储格式、程序存储器和数据存储器、处理器模式、寄存器使用以及状态寄存器和伪指令等方面的知识。 1. ARM存储格式选择:ARM处理器有两种存储器结构,但并非对应两种存储格式...
【ARM汇编质量学习笔记】 在深入探讨ARM汇编指令之前,先理解汇编语言的基本概念至关重要。汇编语言是一种低级编程语言,它与计算机硬件的指令集紧密相关,每条指令通常对应一个机器码。ARM汇编是针对ARM架构处理器...
【ARM 学习笔记资料概述】 本专题资料涵盖了 ARM 处理器的基础知识和应用,旨在帮助学习者深入了解 ARM 架构。ARM 是一款广泛应用于嵌入式系统和移动设备的处理器架构,其低功耗和高效能特性使其在诸多领域得到广泛...
ARM 汇编学习笔记涵盖了 ARM 架构的基础知识和技巧,包括 LDR 和 MOV 的不同、汇编的位操作技巧、B 和 BL 的不同、IMPORT 伪操作等内容。掌握这些知识点对于学习 ARM 架构和编写高效的汇编语言程序非常重要。
汇编语言是与硬件紧密相关的低级语言,ARM汇编语言包括了一系列伪操作、伪指令和语句格式,用于编写高效的底层程序。此外,ARM汇编编译器的使用也是掌握ARM编程的关键。 八、ARM存储系统概述与MMU ARM存储系统...
3. 伪指令:虽然不被处理器直接执行,但它们在汇编过程中起着重要作用,如定义变量(`DB`, `DW`, `DD`),定位代码(`EQU`, `ORG`)等。 三、程序结构与控制流 1. 子程序和调用:通过`CALL`指令实现子程序调用,`...
- **伪指令**: 解释ARM汇编器支持的伪指令及其用途。 - **嵌入式系统应用编程API函数**: - **显示部分**: 提供显示相关的API函数,如DISPLAY.H。 - **消息相关函数**: 如OSMESSAGE.H,用于处理系统消息。 - **...
- **伪指令**: 包括ARM汇编器支持的伪指令。 **附录C: 嵌入式系统应用编程API函数** - **函数**: 提供了一系列用于嵌入式系统开发的API函数。 - **分类**: 包括显示、消息处理、文件操作等多个方面的函数。 **附录...
在实际编程中,我们还会接触到伪指令,它们在汇编过程中被编译器或汇编器解释为特定的操作,如LDR和STR用于加载和存储内存中的数据,它们简化了对内存访问的处理。 在"第9章 ARM汇编语言程序设计基础"的电子课件中...
4. **伪指令与指令**:在ARM汇编语言中,除了标准的指令集外,还有一些特殊的伪指令,它们不是直接映射到机器码的指令,而是由汇编器解释并转换为相应的机器码。这些伪指令用于控制程序的结构和组织。 通过以上内容...
第四章:c程序维护工具 make (makefile文件命名规则,含有PDF文件,内嵌在word里面,可打开,伪目标,简化,makefile变量等内容) 第五章:ARM编程指令详解(条件码,跳转指令,7个寻址方式介绍) 第六章:ARM汇编...
5. **宏和伪指令**:为了提高可读性和减少重复,汇编语言支持宏定义和伪指令,提供了一些类似高级语言的特性。 【压缩包子文件的文件名称列表】"SOFT262-master" 提示这是一个项目的主分支或者源代码库,可能包含了...