程序¶
段¶
- 数据段
- bss段
- 文本段
数据段¶
关键字.section声明段类型
.data,数据段.bss,.text,文本段.rodata,只读数据段 例如: .section .data
定义变量¶
| 类型 | 说明 |
|---|---|
| .ascii | 文本字符串 |
| .asciz | 以空字符结束的字符串 |
| .double | 双精度浮点数 |
| .float | 单精度浮点数 |
| .byte | 字节 |
| .short | 2个字节整数 |
| .int | 4字节整数 |
| .long | 32bit整数 |
| .fill | |
| .equ | 声明静态数据符号 |
| 其他略 |
变量名+类型
例如:
| Text Only | |
|---|---|
1 2 3 4 5 6 7 | |
bss段¶
无需声明特定的数据类型,只需声名占用内存大小即可
| 类型 | 说明 |
|---|---|
| .comm | 声明未初始化的数据的通用内存区域 |
| .lcomm | 声明未初始化的数据的本地通用内存区域,不能从本地汇编代码之外访问 |
格式:.comm sysbol, length
| Text Only | |
|---|---|
1 2 3 | |
入口¶
_start 表明程序的入口点
global 声明外部程序可以访问的程序标签
helloworld示例¶
| GAS | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | |
| Bash | |
|---|---|
1 2 3 4 5 | |