问题:请解释下面的一小段汇编语言程序:
- __main
- EXPORT BootReset
- BootReset
- B resetvec reqset
- IMPORT BootEntry
- IMPORT |Image$$RO$$Limit|
- AREA BOOTROM, CODE, READONLY
- LDR r0, =|Image$$RO$$Limit
- BEQ 1
- ldr pc, [pc,#-&F20]
回答:上面是ARM公司编译器支持的汇编语言,移植成gcc支持的汇编语言为:
- __main
- .global BootReset /* 定义全局符号 BootReset */
- BootReset:
- B resetvec reqset /* 跳转到resetvec */
- .extern BootEntry /* 定义引用的外部符号(函数)*/
- .extern Image_RO_Limit /* Image_RO_Limit 为外部符号,一般定义 */
- /* 在连接定位文件中, 表示ROM区大小 */
- # AREA BOOTROM, CODE, READONLY
- LDR r0, =Image_RO_Limit /* 将Image_RO_Limit值存储到R0*/
- BEQ FUNC1 /* 如果等于则跳转到符号FUNC1 */
- ldr pc, [pc,#-0xF20] /* 将PC-0xF20的值存储到PC */