启动代码 汇编

来源:百度知道 编辑:UC知道 时间:2024/05/21 14:22:37
这是一个启动文件的一段代码:
#define PTR(name) \
.##name: .word name

... ...

PTR(undefined_instruction) // 0x24
PTR(software_interrupt) // 0x28
PTR(abort_prefetch) // 0x2C
PTR(abort_data) // 0x30
.word 0 // 0x34
PTR(IRQ) // 0x38
PTR(FIQ) // 0x3c
这段是什么意思啊,特别是ptr,它起什么作用呢

PTR是个宏定义
#define PTR(name) \
.##name: .word name
就是说把PTR(name)都替换成 .name: .word name的值

例如:
PTR(abort_data)最后被替换成 .abort_data: .word abort_data

意思是定义abort_data的值这么多个word,并把起始的地方定义为.abort_data