⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 loadkernel.c.s

📁 ADSV1.2可以编译的早期linux版本
💻 S
字号:
; generated by ARM C Compiler, ADS1.2 [Build 805]

; commandline [-O0 -browseinfo "0xff
" -S   -g+ -apcs /interwork -fk -J:cw:]
        CODE32

        AREA ||.text||, CODE, READONLY

initMemorry PROC
        STR      lr,[sp,#-4]!
        LDR      r3,|L1.408|
        LDR      r1,|L1.412|
        LDR      r2,|L1.416|
        MOV      r0,#0
|L1.20|
        CMP      r0,r2
        BCS      |L1.52|
        B        |L1.40|
|L1.32|
        ADD      r0,r0,#1
        B        |L1.20|
|L1.40|
        LDRB     lr,[r3],#1
        STRB     lr,[r1],#1
        B        |L1.32|
|L1.52|
        LDR      r1,|L1.420|
        LDR      r2,|L1.424|
        MOV      r0,#0
|L1.64|
        CMP      r0,r2
        BCS      |L1.96|
        B        |L1.84|
|L1.76|
        ADD      r0,r0,#1
        B        |L1.64|
|L1.84|
        MOV      r12,#0
        STRB     r12,[r1],#1
        B        |L1.76|
|L1.96|
        LDR      lr,[sp],#4
        BX       lr
        ENDP

loadkernel PROC
        STMFD    sp!,{r4-r6,lr}
        MOV      r0,#0
        MOV      r1,#0x2000000
        STR      r0,[r1,#0x48]
        MOV      r0,#0x64
        MOV      r1,#0x2000000
        STR      r0,[r1,#0x84]
        MOV      r0,#0x64
        MOV      r1,#0x2000000
        STR      r0,[r1,#0x88]
        MOV      r0,#0
        MOV      r1,#0x2000000
        STR      r0,[r1,#0x8c]
        MOV      r0,#3
        MOV      r1,#0x2000000
        STR      r0,[r1,#0x80]
        MOV      r0,#1
        MOV      r1,#0x2000000
        STR      r0,[r1,#0xc0]
        MOV      r0,#0
        MOV      r1,#0x2000000
        STR      r0,[r1,#0x100]
        LDR      r0,|L1.428|
        MOV      r1,#0x2000000
        STR      r0,[r1,#0x104]
        MOV      r4,#0
|L1.208|
        CMP      r4,#0xa
        BGE      |L1.224|
        ADD      r4,r4,#1
        B        |L1.208|
|L1.224|
        MOV      r0,#1
        MOV      r1,#0x2000000
        STR      r0,[r1,#0x100]
        MOV      r0,#0
        MOV      r1,#0x2000000
        STR      r0,[r1,#0x104]
        MOV      r4,#0
|L1.252|
        CMP      r4,#0xa
        BGE      |L1.268|
        ADD      r4,r4,#1
        B        |L1.252|
|L1.268|
        MOV      r0,#2
        MOV      r1,#0x2000000
        STR      r0,[r1,#0x100]
        MOV      r0,#0
        MOV      r1,#0x2000000
        STR      r0,[r1,#0x104]
        MOV      r6,#0
|L1.296|
        CMP      r6,#0xdc
        BGE      |L1.360|
        B        |L1.316|
|L1.308|
        ADD      r6,r6,#1
        B        |L1.296|
|L1.316|
        MOV      r5,#0
|L1.320|
        CMP      r5,#0xb0
        BGE      |L1.356|
        B        |L1.340|
|L1.332|
        ADD      r5,r5,#1
        B        |L1.320|
|L1.340|
        MOV      r0,#0xf800
        MOV      r1,#0x2000000
        STR      r0,[r1,#0x104]
        B        |L1.332|
|L1.356|
        B        |L1.308|
|L1.360|
        MOV      r0,#3
        MOV      r1,#0x2000000
        STR      r0,[r1,#0x120]
        ADD      r0,r0,#0x100
        MOV      r1,#0x2000000
        STR      r0,[r1,#0x108]
        BL       initMemorry
        BL       start_kernel
        ADR      r0,|L1.432|
        BL       out
        NOP      
|L1.404|
        B        |L1.404|
|L1.408|
        DCD      ||Load$$ERAM$$Base||
|L1.412|
        DCD      ||Image$$ERAM$$Base||
|L1.416|
        DCD      ||Image$$ERAM$$Length||
|L1.420|
        DCD      ||Image$$ERAM$$ZI$$Base||
|L1.424|
        DCD      ||Image$$ERAM$$ZI$$Length||
|L1.428|
        DCD      0x0000dcb0
|L1.432|
        DCB      "can "
        DCB      "not "
        DCB      "run "
        DCB      "to h"
        DCB      "ere\r"
        DCB      "\n\0\0\0"
        ENDP



        EXPORT loadkernel
        EXPORT initMemorry

        IMPORT out
        IMPORT start_kernel
        IMPORT ||Image$$ERAM$$ZI$$Length||, WEAK
        IMPORT ||Image$$ERAM$$ZI$$Base||, WEAK
        IMPORT ||Image$$ERAM$$Length||, WEAK
        IMPORT ||Image$$ERAM$$Base||, WEAK
        IMPORT ||Load$$ERAM$$Base||, WEAK
        IMPORT ||Lib$$Request$$armlib||, WEAK

        KEEP ||BuildAttributes$$THUMB_ISAv1$M$PE$A:L22$X:L11$S22$IW$USESV6$~STKCKD$USESV7$~SHL$OSPACE$PRES8||
||BuildAttributes$$THUMB_ISAv1$M$PE$A:L22$X:L11$S22$IW$USESV6$~STKCKD$USESV7$~SHL$OSPACE$PRES8|| EQU 0

        ASSERT {ENDIAN} = "little"
        ASSERT {SWST} = {FALSE}
        ASSERT {NOSWST} = {TRUE}
        ASSERT {INTER} = {TRUE}
        ASSERT {ROPI} = {FALSE}
        ASSERT {RWPI} = {FALSE}
        ASSERT {NOT_SHL} = {TRUE}
        ASSERT {FULL_IEEE} = {FALSE}
        ASSERT {SHL1} = {FALSE}
        ASSERT {SHL2} = {FALSE}
        END

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -