crt0.s
来自「在GNU上开发的应用程序源代码」· S 代码 · 共 48 行
S
48 行
/* Sample initialization file */ .extern arm_entry .extern exit /* .text is used instead of .section .text so it works with arm-aout too. */ .text .code 32 .align 0 .global _mainCRTStartup .global _start .global startstart:_start:_mainCRTStartup:/* Start by setting up a stack */ /* Set up the stack pointer to end of bss */ ldr r3, .LC2 mov sp, r3 sub sl, sp, #512 /* Still assumes 512 bytes below sl */ mov a2, #0 /* Second arg: fill value */ mov fp, a2 /* Null frame pointer */ mov r7, a2 /* Null frame pointer for Thumb */ ldr a1, .LC1 /* First arg: start of memory block */ ldr a3, .LC2 /* Second arg: end of memory block */ sub a3, a3, a1 /* Third arg: length of block */ mov r0, #0 /* no arguments */ mov r1, #0 /* no argv either */ bl arm_entry bl exit /* Should not return */ /* For Thumb, constants must be after the code since only positive offsets are supported for PC relative addresses. */ .align 0.LC1: .word __bss_start__.LC2: .word __bss_end__
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?