ARM中的---汇编指令

本文详细介绍了ARM架构中常见的汇编指令,包括带点、带下划线和不带点的指令,涉及数据传送、跳转、内存访问、运算及控制流等。还讲解了汇编中的注释、常数和指令的条件域,帮助理解ARM汇编编程。
摘要由CSDN通过智能技术生成

一. 带点的(一般都是ARM GNU伪汇编指令)


1. ".text"、".data"、".bss"

依次表示的是“以下是代码段”,
“以下是初始化数据段”,
“以下是未初始化数据段”。

2.".global"

定义一个全局符号,通常是为ld使用。比如经常看到的

.global _start

3.".ascii"、".byte"、".short"、".int"、".long"、".word"、".quad"

定义一个字符串,并为它分配空间
定义一个字节,并为它分配空间,占单字节,0x34
定义一个短整型,并为它分配空间,占双字节,0x1234
定义一个整型,并为它分配空间,占四字节,0x12345678
定义一个长整型,并为它分配空间,占四字节,0x12345678
定义一个,并为它分配空间,
定义一个,并为它分配定义,占八字节,...
比如
.long 0x22011110//BWSCON
.long 0x00000700//BANKCON0
...

4.".abort"

停止汇编

5.".align"

.align absexpr1,absexpr2

以某种对齐方式,在未使用的存储区域填充值. 第一个值表示对齐方式,4, 8,16或32. 第二个表达式值表示填充的值

6.".if .else .endif"

.if

.else

.endif:支持条件预编译

7.".include"

.include "file":包含指定的头文件, 可以把一个汇编常量定义放在头文件中

8.".comm"

.comm  symbol, length:

在bss段申请一段命名空间,该段空间的名称叫symbol, 长度为length. Ld连接器在连接会为它留出空间

9.".equ"

.equ symbol, expression: 把某一个符号(symbol)定义成某一个值(expression).该指令并不分配空间,相当于c语言中的#define。例如

.equ aaa,0x20000000

10.".macro .endm"

.macro: 定义一段宏代码,.macro表示代码的开始,.endm表示代码的结束,.exitm跳出宏, 示例如下:

.macro SHIFTLEFT a, b.if \b < 0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值