ARM linux常用汇编语法
来源:互联网 发布:路由器端口是什么意思 编辑:程序博客网 时间:2024/05/21 05:17
=============================
汇编语言每行的语法:
lable: instruction ; comment
段操作: .section
格式: .section 段名 [标志]
[标志]可以是如下:
a 允许段
w 可写段
x 可执行段
常见段名: data, bss, text, rodata段,我们也可以定义我们自己的段。
.data: 已初始化数据段
.bss: 未初始化数据段
.text:代码段
.rodata:只读段
汇编程序的入口点:
通常,linux的汇编程序的入口点都是从_start这个全局符号开始的。而C语言的入口点是main, main函数就是被_start后面的代码调用。
.global _start
_start:
代码,,, 初始化程序运行环境;
代码,,,
,,,
bl main
bl exit
linux汇编中常数的使用:
十进制: 以非0 的数字开头表示, 124, 564
二进制: 以0b开头,如0b101001
八进制: 以0开始的数字,如05645
十六进制:以0x开头, 如0xab12
linux汇编中常用的伪操作:
数据定义伪操作:
.byte, 定义单个字节, 如, .byte 5, 4, 0b1001, 0x22, 055, 'b'
.short, 定义半字数据, 如,.short 0x1122, 3344
.long, 定义4字节数据,如, 0x11223344,
.word
.string, .asciz, .ascii, 定义字符串数据, 比如.string "hello"
对齐伪操作: .align n --> 2^n
文件结束操作:.end
文件包含操作:.include, 一般是在文件开头的时候包含头文件时使用
代码指令集切换:
.thumb, .code 16 这两个伪指令告诉编译器从这里开始,以后的代码都编译成16为的thumb指令。
.arm, .code 32 这两个伪指令告诉编译器从这里开始,以后的代码都编译成32为的arm指令。
函数定义格式:
函数名:
函数体
函数返回语句
比如add函数:
.global add
add:
add r0, r1, r2
mov pc, lr
常见符号的意义和用法:
@ : 代码注释符号
; 语句分离符号。(相当于C语言中的;)
# 立即数前缀
- ARM linux常用汇编语法
- ARM linux常用汇编语法
- ARM linux常用汇编语法
- ARM-linux汇编常用语法
- Linux下ARM汇编语法
- Linux下ARM汇编语法
- Linux下ARM汇编语法
- linux 下arm汇编语法
- Linux下ARM汇编语法
- LINUX下ARM的汇编语法
- arm gnu 汇编语法
- arm gnu 汇编语法
- arm gnu 汇编语法
- GUN ARM 汇编语法
- GNU ARM汇编语法
- arm汇编语法Demo
- arm 简易汇编语法
- Linux下ARM汇编语法(转载学习)
- C - More is better
- 基础练习 字母图形
- jquery
- 建立自己的代码地盘(1)
- 自学Linux---5(tar命令)
- ARM linux常用汇编语法
- CDockablePane创建自己的盘子
- Linux守护进程工作原理和方式----笛风读书笔记系列
- Fibonacci数列非递归解法 C++实现
- uva 1422 12124
- Ubuntu 12.0下为Firefox安装Adobe Flash Player
- 黑马程序员—银行业务调度系统
- arm gcc内嵌汇编
- 动态规划之矩阵连乘