📄 utils.cod
字号:
; Listing generated by Microsoft (R) Optimizing Compiler Version 13.10.4091
TTL D:\WINCE500\PLATFORM\BERRYDALE\SRC\BOOTLOADER\EBOOT\.\utils.c
CODE32
00000 AREA |.drectve|, DRECTVE
DCB "-defaultlib:coredll.lib "
DCB "-defaultlib:corelibc.lib "
00000 AREA |.data|, DATA
|monthtable_leap| DCD 0x1f
DCD 0x1d
DCD 0x1f
DCD 0x1e
DCD 0x1f
DCD 0x1e
DCD 0x1f
DCD 0x1f
DCD 0x1e
DCD 0x1f
DCD 0x1e
DCD 0x1f
|monthtable| DCD 0x1f
DCD 0x1c
DCD 0x1f
DCD 0x1e
DCD 0x1f
DCD 0x1e
DCD 0x1f
DCD 0x1f
DCD 0x1e
DCD 0x1f
DCD 0x1e
DCD 0x1f
00000 AREA |.rdata|, DATA, READONLY
|EdbgVendorIds| DCW 0x0
DCW 0x0
DCD 0x4033
DCB 0x1
DCB "AD", 0x0
DCW 0x1050
DCW 0x940
DCD 0x4005
DCB 0x1
DCB "LS", 0x0
DCW 0x1050
DCW 0x940
DCD 0x2078
DCB 0x1
DCB "LS", 0x0
DCW 0x10ec
DCW 0x8029
DCD 0xc0f0
DCB 0x1
DCB "KS", 0x0
DCW 0x10ec
DCW 0x8129
DCD 0x0
DCB 0x4
DCB "RT", 0x0
DCW 0x10ec
DCW 0x8139
DCD 0x900b
DCB 0x4
DCB "RT", 0x0
DCW 0x10ec
DCW 0x8139
DCD 0xd0c9
DCB 0x4
DCB "RT", 0x0
DCW 0x10ec
DCW 0x8139
DCD 0xe04c
DCB 0x4
DCB "RT", 0x0
DCW 0x1186
DCW 0x1300
DCD 0x50ba
DCB 0x4
DCB "DL", 0x0
DCW 0x100b
DCW 0x20
DCD 0xa0cc
DCB 0x5
DCB "NG", 0x0
DCW 0x10b7
DCW 0x9050
DCD 0x6008
DCB 0x6
DCB "3C", 0x0
DCW 0x10b7
DCW 0x9200
DCD 0x476
DCB 0x6
DCB "3C", 0x0
EXPORT |SpinForever|
EXPORT |??_C@_0BB@MEBHIIAP@SpinForever?4?4?4?$AN?6?$AA@| [ DATA ] ; `string'
IMPORT |EdbgOutputDebugString|
; File d:\wince500\platform\berrydale\src\bootloader\eboot\utils.c
00000 AREA |.text| { |SpinForever| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$SpinForever|, PDATA, SELECTION=5, ASSOC=|.text| { |SpinForever| } ; comdat associative
|$T39777| DCD |$L39776|
DCD 0x40000501
00000 AREA |.rdata| { |??_C@_0BB@MEBHIIAP@SpinForever?4?4?4?$AN?6?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0BB@MEBHIIAP@SpinForever?4?4?4?$AN?6?$AA@| DCB "SpinForever...", 0xd
DCB 0xa, 0x0 ; `string'
; Function compile flags: /Ogsy
00000 AREA |.text| { |SpinForever| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |SpinForever| PROC
; 30 : {
00000 |$L39776|
00000 e52de004 str lr, [sp, #-4]!
00004 |$M39774|
; 31 : EdbgOutputDebugString("SpinForever...\r\n");
00004 e59f0004 ldr r0, [pc, #4]
00008 eb000000 bl EdbgOutputDebugString
0000c |$L39675|
; 32 :
; 33 : while (1)
; 34 : {
; 35 : ;
; 36 : }
0000c eafffffe b |$L39675|
00010 |$L39779|
00010 00000000 DCD |??_C@_0BB@MEBHIIAP@SpinForever?4?4?4?$AN?6?$AA@|
00014 |$M39775|
ENDP ; |SpinForever|
EXPORT |OutputDebugStringW|
IMPORT |OEMWriteDebugByte|
00000 AREA |.text| { |OutputDebugStringW| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$OutputDebugStringW|, PDATA, SELECTION=5, ASSOC=|.text| { |OutputDebugStringW| } ; comdat associative
|$T39789| DCD |$L39788|
DCD 0x40000b01
; Function compile flags: /Ogsy
00000 AREA |.text| { |OutputDebugStringW| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |OutputDebugStringW| PROC
; 47 : {
00000 |$L39788|
00000 e92d4010 stmdb sp!, {r4, lr}
00004 |$M39786|
00004 e1a04000 mov r4, r0
; 48 : while (*string != L'\0') OEMWriteDebugByte((UINT8)*string++);
00008 e1d430b0 ldrh r3, [r4]
0000c ea000002 b |$L39785|
00010 |$L39681|
00010 e20300ff and r0, r3, #0xFF
00014 eb000000 bl OEMWriteDebugByte
00018 e1f430b2 ldrh r3, [r4, #2]!
0001c |$L39785|
0001c e3530000 cmp r3, #0
00020 1afffffa bne |$L39681|
; 49 : }
00024 e8bd4010 ldmia sp!, {r4, lr}
00028 e12fff1e bx lr
0002c |$M39787|
ENDP ; |OutputDebugStringW|
EXPORT |OEMReadData|
IMPORT |EbootEtherReadData|
00000 AREA |.text| { |OEMReadData| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$OEMReadData|, PDATA, SELECTION=5, ASSOC=|.text| { |OEMReadData| } ; comdat associative
|$T39800| DCD |$L39799|
DCD 0x40000401
; Function compile flags: /Ogsy
00000 AREA |.text| { |OEMReadData| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |OEMReadData| PROC
; 59 : {
00000 |$L39799|
00000 e52de004 str lr, [sp, #-4]!
00004 |$M39797|
; 60 :
; 61 : // TODO: increment bytes read to track download progress.
; 62 :
; 63 : return(EbootEtherReadData(cbData, pbData));
00004 eb000000 bl EbootEtherReadData
; 64 : }
00008 e49de004 ldr lr, [sp], #4
0000c e12fff1e bx lr
00010 |$M39798|
ENDP ; |OEMReadData|
EXPORT |OEMShowProgress|
00000 AREA |.text| { |OEMShowProgress| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$OEMShowProgress|, PDATA, SELECTION=5, ASSOC=|.text| { |OEMShowProgress| } ; comdat associative
|$T39807| DCD |$L39806|
DCD 0x40000100
; Function compile flags: /Ogsy
00000 AREA |.text| { |OEMShowProgress| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |OEMShowProgress| PROC
; 74 : {
00000 |$L39806|
00000 |$M39804|
; 75 : }
00000 e12fff1e bx lr
00004 |$M39805|
ENDP ; |OEMShowProgress|
00000 AREA |.text| { |IsLeapYear| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$IsLeapYear|, PDATA, SELECTION=5, ASSOC=|.text| { |IsLeapYear| } ; comdat associative
|$T39820| DCD |$L39819|
DCD 0x40001901
; Function compile flags: /Ogsy
00000 AREA |.text| { |IsLeapYear| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |IsLeapYear| PROC
; 79 : {
00000 |$L39819|
00000 e92d4010 stmdb sp!, {r4, lr}
00004 |$M39817|
00004 e1a0e000 mov lr, r0
; 80 : UINT32 Leap;
; 81 :
; 82 : Leap = 0;
00008 e3a00000 mov r0, #0
; 83 : if ((Year % 4) == 0)
0000c e31e0003 tst lr, #3
00010 1a000010 bne |$L39812|
; 84 : {
; 85 : Leap = 1;
; 86 : if ((Year % 100) == 0)
00014 e59f4044 ldr r4, [pc, #0x44]
00018 e3a02064 mov r2, #0x64
0001c e3a00001 mov r0, #1
00020 e083149e umull r1, r3, lr, r4
00024 e1a032a3 mov r3, r3, lsr #5
00028 e0020293 mul r2, r3, r2
0002c e05e3002 subs r3, lr, r2
00030 1a000008 bne |$L39812|
; 87 : {
; 88 : Leap = (Year % 400) ? 0 : 1;
00034 e083149e umull r1, r3, lr, r4
00038 e3a02e19 mov r2, #0x19, 28
0003c e1a033a3 mov r3, r3, lsr #7
00040 e0020293 mul r2, r3, r2
00044 e05e3002 subs r3, lr, r2
00048 13a00000 movne r0, #0
; 89 : }
; 90 : }
; 91 :
; 92 : return(Leap);
; 93 : }
0004c 18bd4010 ldmneia sp!, {r4, lr}
00050 112fff1e bxne lr
; 87 : {
; 88 : Leap = (Year % 400) ? 0 : 1;
00054 e3a00001 mov r0, #1
00058 |$L39812|
; 89 : }
; 90 : }
; 91 :
; 92 : return(Leap);
; 93 : }
00058 e8bd4010 ldmia sp!, {r4, lr}
0005c e12fff1e bx lr
00060 |$L39822|
00060 51eb851f DCD 0x51eb851f
00064 |$M39818|
ENDP ; |IsLeapYear|
00000 AREA |.text| { |FormatSystemTime| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$FormatSystemTime|, PDATA, SELECTION=5, ASSOC=|.text| { |FormatSystemTime| } ; comdat associative
|$T39856| DCD |$L39855|
DCD 0x40006002
; Function compile flags: /Ogsy
00000 AREA |.text| { |FormatSystemTime| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |FormatSystemTime| PROC
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -