📄 deviceinfo.cod
字号:
; Listing generated by Microsoft (R) Optimizing Compiler Version 13.10.4237
TTL C:\WINCE500\PLATFORM\Ep93xx\Src\Bootloader\Common\.\deviceinfo.c
CODE32
00000 AREA |.drectve|, DRECTVE
DCB "-defaultlib:coredll.lib "
DCB "-defaultlib:corelibc.lib "
00000 AREA |.rdata|, DATA, READONLY
|EdbgVendorIds| DCW 0x0
DCW 0x0
DCD 0x4033
DCB 0x1
DCB 0x0
DCB "AD", 0x0
% 3
DCW 0x1050
DCW 0x940
DCD 0x4005
DCB 0x1
DCB 0x0
DCB "LS", 0x0
% 3
DCW 0x1050
DCW 0x940
DCD 0x2078
DCB 0x1
DCB 0x0
DCB "LS", 0x0
% 3
DCW 0x10ec
DCW 0x8029
DCD 0xc0f0
DCB 0x1
DCB 0x0
DCB "KS", 0x0
% 3
DCW 0x10ec
DCW 0x8129
DCD 0x0
DCB 0x4
DCB 0x0
DCB "RT", 0x0
% 3
DCW 0x10ec
DCW 0x8139
DCD 0x900b
DCB 0x4
DCB 0x0
DCB "RT", 0x0
% 3
DCW 0x10ec
DCW 0x8139
DCD 0xd0c9
DCB 0x4
DCB 0x0
DCB "RT", 0x0
% 3
DCW 0x10ec
DCW 0x8139
DCD 0xe04c
DCB 0x4
DCB 0x0
DCB "RT", 0x0
% 3
DCW 0x1186
DCW 0x1300
DCD 0x50ba
DCB 0x4
DCB 0x0
DCB "DL", 0x0
% 3
DCW 0x100b
DCW 0x20
DCD 0xa0cc
DCB 0x5
DCB 0x0
DCB "NG", 0x0
% 3
DCW 0x10b7
DCW 0x9050
DCD 0x6008
DCB 0x6
DCB 0x0
DCB "3C", 0x0
% 3
DCW 0x10b7
DCW 0x9200
DCD 0x476
DCB 0x6
DCB 0x0
DCB "3C", 0x0
% 3
DCW 0x8086
DCW 0x1039
DCD 0x4033
DCB 0x7
DCB 0x1
DCB "IN", 0x0
% 3
DCW 0x8086
DCW 0x103a
DCD 0x4033
DCB 0x7
DCB 0x1
DCB "IN", 0x0
% 3
DCW 0x8086
DCW 0x1051
DCD 0x4033
DCB 0x7
DCB 0x1
DCB "IN", 0x0
% 3
DCW 0x8086
DCW 0x1229
DCD 0x4033
DCB 0x7
DCB 0x1
DCB "IN", 0x0
% 3
DCW 0x8086
DCW 0x2449
DCD 0x4033
DCB 0x7
DCB 0x1
DCB "IN", 0x0
% 3
EXPORT |itoa10|
IMPORT |__rt_udiv|
; File c:\wince500\platform\ep93xx\src\kernel\hal\common\deviceinfo.c
00000 AREA |.text| { |itoa10| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$itoa10|, PDATA, SELECTION=5, ASSOC=|.text| { |itoa10| } ; comdat associative
|$T38150| DCD |$L38149|
DCD 0x40005b04
; Function compile flags: /Ods
00000 AREA |.text| { |itoa10| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |itoa10| PROC
; 41 : {
00000 |$L38149|
00000 e1a0c00d mov r12, sp
00004 e92d0003 stmdb sp!, {r0, r1}
00008 e92d5000 stmdb sp!, {r12, lr}
0000c e24dd010 sub sp, sp, #0x10
00010 |$M38147|
; 42 : int i = 0;
00010 e3a03000 mov r3, #0
00014 e58d3000 str r3, [sp]
; 43 :
; 44 : // Get absolute value of number
; 45 : unsigned int val = (unsigned int)((n < 0) ? -n : n);
00018 e59d3018 ldr r3, [sp, #0x18]
0001c e3530000 cmp r3, #0
00020 aa000003 bge |$L38144|
00024 e59d3018 ldr r3, [sp, #0x18]
00028 e2633000 rsb r3, r3, #0
0002c e58d300c str r3, [sp, #0xC]
00030 ea000001 b |$L38145|
00034 |$L38144|
00034 e59d3018 ldr r3, [sp, #0x18]
00038 e58d300c str r3, [sp, #0xC]
0003c |$L38145|
0003c e59d300c ldr r3, [sp, #0xC]
00040 e58d3004 str r3, [sp, #4]
00044 |$L38082|
; 46 :
; 47 : // Extract digits in reverse order
; 48 : do {
; 49 : s[i++] = (val % 10) + '0';
00044 e59d1004 ldr r1, [sp, #4]
00048 e3a0000a mov r0, #0xA
0004c eb000000 bl __rt_udiv
00050 e2811030 add r1, r1, #0x30
00054 e59d201c ldr r2, [sp, #0x1C]
00058 e59d3000 ldr r3, [sp]
0005c e0822003 add r2, r2, r3
00060 e1a03c01 mov r3, r1, lsl #24
00064 e1a03c43 mov r3, r3, asr #24
00068 e5c23000 strb r3, [r2]
0006c e59d3000 ldr r3, [sp]
00070 e2833001 add r3, r3, #1
00074 e58d3000 str r3, [sp]
; 50 : } while (val /= 10);
00078 e59d1004 ldr r1, [sp, #4]
0007c e3a0000a mov r0, #0xA
00080 eb000000 bl __rt_udiv
00084 e58d0004 str r0, [sp, #4]
00088 e59d3004 ldr r3, [sp, #4]
0008c e3530000 cmp r3, #0
00090 1affffeb bne |$L38082|
; 51 :
; 52 : // Add sign if number negative
; 53 : if (n < 0) s[i++] = '-';
00094 e59d3018 ldr r3, [sp, #0x18]
00098 e3530000 cmp r3, #0
0009c aa000007 bge |$L38085|
000a0 e59d201c ldr r2, [sp, #0x1C]
000a4 e59d3000 ldr r3, [sp]
000a8 e0822003 add r2, r2, r3
000ac e3a0302d mov r3, #0x2D
000b0 e5c23000 strb r3, [r2]
000b4 e59d3000 ldr r3, [sp]
000b8 e2833001 add r3, r3, #1
000bc e58d3000 str r3, [sp]
000c0 |$L38085|
; 54 :
; 55 : s[i--] = '\0';
000c0 e59d201c ldr r2, [sp, #0x1C]
000c4 e59d3000 ldr r3, [sp]
000c8 e0822003 add r2, r2, r3
000cc e3a03000 mov r3, #0
000d0 e5c23000 strb r3, [r2]
000d4 e59d3000 ldr r3, [sp]
000d8 e2433001 sub r3, r3, #1
000dc e58d3000 str r3, [sp]
; 56 :
; 57 : // Reverse string
; 58 : for (n = 0; n < i; n++, i--)
000e0 e3a03000 mov r3, #0
000e4 e58d3018 str r3, [sp, #0x18]
000e8 ea000005 b |$L38086|
000ec |$L38087|
000ec e59d3018 ldr r3, [sp, #0x18]
000f0 e2833001 add r3, r3, #1
000f4 e58d3018 str r3, [sp, #0x18]
000f8 e59d3000 ldr r3, [sp]
000fc e2433001 sub r3, r3, #1
00100 e58d3000 str r3, [sp]
00104 |$L38086|
00104 e59d2018 ldr r2, [sp, #0x18]
00108 e59d3000 ldr r3, [sp]
0010c e1520003 cmp r2, r3
00110 aa000012 bge |$L38088|
; 59 : {
; 60 : char swap = s[n];
00114 e59d201c ldr r2, [sp, #0x1C]
00118 e59d3018 ldr r3, [sp, #0x18]
0011c e0823003 add r3, r2, r3
00120 e1d330d0 ldrsb r3, [r3]
00124 e5cd3008 strb r3, [sp, #8]
; 61 : s[n] = s[i];
00128 e59d201c ldr r2, [sp, #0x1C]
0012c e59d3000 ldr r3, [sp]
00130 e0821003 add r1, r2, r3
00134 e59d201c ldr r2, [sp, #0x1C]
00138 e59d3018 ldr r3, [sp, #0x18]
0013c e0822003 add r2, r2, r3
00140 e1d130d0 ldrsb r3, [r1]
00144 e5c23000 strb r3, [r2]
; 62 : s[i] = swap;
00148 e59d201c ldr r2, [sp, #0x1C]
0014c e59d3000 ldr r3, [sp]
00150 e0822003 add r2, r2, r3
00154 e1dd30d8 ldrsb r3, [sp, #8]
00158 e5c23000 strb r3, [r2]
; 63 : }
0015c eaffffe2 b |$L38087|
00160 |$L38088|
; 64 : }
00160 e28dd010 add sp, sp, #0x10
00164 e89d6000 ldmia sp, {sp, lr}
00168 e12fff1e bx lr
0016c |$M38148|
ENDP ; |itoa10|
EXPORT |CreateDeviceName|
EXPORT |??_C@_0L@OPLKAENE@EDB9307?11X?$AA@| [ DATA ] ; `string'
IMPORT |gBoardInformation|
IMPORT |gBoardInformationValid|
IMPORT |strlen|
IMPORT |strcpy|
IMPORT |memcpy|
00000 AREA |.text| { |CreateDeviceName| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$CreateDeviceName|, PDATA, SELECTION=5, ASSOC=|.text| { |CreateDeviceName| } ; comdat associative
|$T38157| DCD |$L38156|
DCD 0x40004304
00000 AREA |.rdata| { |??_C@_0L@OPLKAENE@EDB9307?11X?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0L@OPLKAENE@EDB9307?11X?$AA@| DCB "EDB9307/1X", 0x0 ; `string'
; Function compile flags: /Ods
00000 AREA |.text| { |CreateDeviceName| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |CreateDeviceName| PROC
; 100 : {
00000 |$L38156|
00000 e1a0c00d mov r12, sp
00004 e92d0003 stmdb sp!, {r0, r1}
00008 e92d5000 stmdb sp!, {r12, lr}
0000c e24dd00c sub sp, sp, #0xC
00010 |$M38154|
; 101 : DWORD dwUpperMAC;
; 102 :
; 103 : if(gBoardInformationValid &&
; 104 : ( gBoardInformation.strEdbgName[0] != 0xFF ||
; 105 : gBoardInformation.strEdbgName[1] != 0xFF ||
; 106 : gBoardInformation.strEdbgName[2] != 0xFF ||
; 107 : gBoardInformation.strEdbgName[3] != 0xFF ))
00010 e59f30f0 ldr r3, [pc, #0xF0]
00014 e5933000 ldr r3, [r3]
00018 e3530000 cmp r3, #0
0001c 0a000019 beq |$L38102|
00020 e59f30dc ldr r3, [pc, #0xDC]
00024 e1d331d0 ldrsb r3, [r3, #0x10]
00028 e35300ff cmp r3, #0xFF
0002c 1a00000b bne |$L38103|
00030 e59f30cc ldr r3, [pc, #0xCC]
00034 e1d331d1 ldrsb r3, [r3, #0x11]
00038 e35300ff cmp r3, #0xFF
0003c 1a000007 bne |$L38103|
00040 e59f30bc ldr r3, [pc, #0xBC]
00044 e1d331d2 ldrsb r3, [r3, #0x12]
00048 e35300ff cmp r3, #0xFF
0004c 1a000003 bne |$L38103|
00050 e59f30ac ldr r3, [pc, #0xAC]
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -