1.3 KiB
1.3 KiB
- .macro .endm 汇编宏
- .macro .endm 声明一个汇编宏
- .macro中后面 逗号或者空格 用来分隔参数 冒号用来指定参数类型req(requirement)
- 例如: .macro el1_interrupt_handler, handler:req
- 宏不会显示在elf文件
- .text 代码段
- .text 标记代码段的开始? 这玩意有用么?
- .align 对齐
- .align n
- n对应着2的几次方, 比如2的11次方就一共是0x800对齐 例如linux的vectors
- .global 全局符号定义
- 声明一个全局符号 ==elf中类型是什么样的呢?==
- 也可以声明一个定义在别的文件中的符号(也可以是c文件)
- 具体的定义还得是 symbol:
- .set 别名设置
- .set 一般给一个标签地址(.global)设置一个别名
- .org 位置设置
- .org 见
- Linux下一组新的定义方式
- 函数定义 类似C语言的函数定义
- SYM_FUNC_START/SYM_FUNC_END elf类型显示为FUNC
- SYM_FUNC_START_LOCAL/SYM_FUNC_END
- 特殊函数定义 使用特殊堆栈?
- SYM_CODE_START/SYM_CODE_END 外部函数定义,elf中显示为GLOBAL,类型显示位Notype
- SYM_CODE_START_LOCAL/SYM_CODE_END static函数定义,elf中显示为LOCAL
- 数据定义
- SYM_DATA_START 类型是OBJECT
- 函数定义 类似C语言的函数定义
- 括号()
- ==待补充==