ArmGNU汇编&Arm汇编

ArmGNU汇编&Arm汇编

arm芯片做汇编开发有两种汇编形式可以选择,1.arm汇编2.arm gnu汇编
两者用的都是汇编指令,不同在于两者的伪指令、伪操作不一样。
arm汇编用的是arm的编译器,而armgnu的汇编用的是arm–gcc编译器。

GNU-ARM的注释

代码中的注释可以是@,整段注释//
整行注释符号#
语句分隔符;
立即数的前缀#或者$。
Linux的汇编语句格式:
结构如下:

[label:][instruction/directive/pseudo-instruction}@comment
label:标号,gnu汇编中任何以冒号结尾的都被视为一个标号,不一定在一行的开始。
instruction指令,directive伪操作,pseudo-instruction伪指令
.section伪指令,可以通过.section来定义一个段。.section也有格式要求。
gnuarm预定义的段名:
.text代码段
.data数据段
.bss未初始化段
.sdata
.sbss
gnu汇编语句入口点:
汇编语句缺省入口是:_start
.global用来让某一符号对链接可见,.global _start让start对链接可见,告诉连接器从什么地方开始start执行。
gnu汇编的宏定义:

格式如下:
.macro 宏名参数名列表 @伪指令 .macro定义了一个宏
宏主题
.endm @.endm表示结束宏。

gnu汇编中的常数:

1.十进制以非0的数字开始
2.二进制以0b开始,其中字母无大小写区别
3.八进制以0开始。
4.十六进制以0x开始,
5.字符串常量用双引号,中间也可以用转义字符。
6.当前地址以.表示,gnu汇编中以.表示当前指令的地址。

函数的定义:

函数名:
函数体
返回语句
函数的编写遵循的规则:
1.参数、结果暂存到r0-r3中,
2.函数值返回≯一个字的值,应该把这个字放到r0中,
3.函数中如果改动了sp/r13堆栈指针、fp/r11框架指针、sl/r10堆栈限制、lr/r14链接寄存器、r4-r11函数结束时要回复这些寄存器的值。
4. .global/.globl:用来定义一个全局的符号,格式如下: .global/.globl symbol,
一般的,函数如果需要在其他文件中调用,需要用到.global 伪操作将函数声明
为全局函数;

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值