huchuan2025/20-Area/22-Work/222-ReadNote/armv8体系结构/ARMv8汇编语法汇总 (重要).md

1.3 KiB
Raw Blame History

  • .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
  • 括号()
    • ==待补充==