📄 deviceinfo.cod
字号:
; Listing generated by Microsoft (R) Optimizing Compiler Version 13.10.4237
TTL C:\WINCE500\PLATFORM\Ep93xx\Src\Kernel\Hal\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|
; 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
|$T15279| DCD |$L15278|
DCD 0x40002701
; Function compile flags: /Ogsy
00000 AREA |.text| { |itoa10| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |itoa10| PROC
; 41 : {
00000 |$L15278|
00000 e92d4070 stmdb sp!, {r4 - r6, lr}
00004 |$M15276|
00004 e1a04001 mov r4, r1
00008 e3500000 cmp r0, #0
; 42 : int i = 0;
; 43 :
; 44 : // Get absolute value of number
; 45 : unsigned int val = (unsigned int)((n < 0) ? -n : n);
0000c e59f6084 ldr r6, [pc, #0x84]
00010 42605000 rsbmi r5, r0, #0
00014 51a05000 movpl r5, r0
00018 e3a0e000 mov lr, #0
0001c |$L15194|
; 46 :
; 47 : // Extract digits in reverse order
; 48 : do {
; 49 : s[i++] = (val % 10) + '0';
0001c e0832695 umull r2, r3, r5, r6
00020 e1a011a3 mov r1, r3, lsr #3
00024 e0813101 add r3, r1, r1, lsl #2
00028 e0453083 sub r3, r5, r3, lsl #1
0002c e2833030 add r3, r3, #0x30
00030 e7ce3004 strb r3, [lr, +r4]
00034 e28ee001 add lr, lr, #1
; 50 : } while (val /= 10);
00038 e1b05001 movs r5, r1
0003c 1afffff6 bne |$L15194|
; 51 :
; 52 : // Add sign if number negative
; 53 : if (n < 0) s[i++] = '-';
00040 e3500000 cmp r0, #0
00044 43a0302d movmi r3, #0x2D
00048 47ce3004 strmib r3, [lr, +r4]
0004c 428ee001 addmi lr, lr, #1
; 54 :
; 55 : s[i--] = '\0';
00050 e3a03000 mov r3, #0
00054 e7ce3004 strb r3, [lr, +r4]
00058 e24ee001 sub lr, lr, #1
; 56 :
; 57 : // Reverse string
; 58 : for (n = 0; n < i; n++, i--)
0005c e35e0000 cmp lr, #0
00060 e3a05000 mov r5, #0
00064 da000009 ble |$L15200|
00068 |$L15198|
00068 e1a01005 mov r1, r5
0006c e1a0000e mov r0, lr
; 59 : {
; 60 : char swap = s[n];
00070 e1b120d4 ldrsb r2, [r1, +r4]!
; 61 : s[n] = s[i];
00074 e1b030d4 ldrsb r3, [r0, +r4]!
00078 e2855001 add r5, r5, #1
0007c e24ee001 sub lr, lr, #1
00080 e155000e cmp r5, lr
00084 e5c13000 strb r3, [r1]
; 62 : s[i] = swap;
00088 e5c02000 strb r2, [r0]
0008c bafffff5 blt |$L15198|
00090 |$L15200|
; 63 : }
; 64 : }
00090 e8bd4070 ldmia sp!, {r4 - r6, lr}
00094 e12fff1e bx lr
00098 |$L15281|
00098 cccccccd DCD 0xcccccccd
0009c |$M15277|
ENDP ; |itoa10|
00000 AREA |.text| { |UpperDWFromMAC| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$UpperDWFromMAC|, PDATA, SELECTION=5, ASSOC=|.text| { |UpperDWFromMAC| } ; comdat associative
|$T15290| DCD |$L15289|
DCD 0x40000800
; Function compile flags: /Ogsy
00000 AREA |.text| { |UpperDWFromMAC| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |UpperDWFromMAC| PROC
; 73 : {
00000 |$L15289|
00000 |$M15287|
00000 e1d010b4 ldrh r1, [r0, #4]
; 74 : DWORD ret;
; 75 :
; 76 : //
; 77 : // The WORDs in wMAC field are in net order, so we need to do some
; 78 : // serious shifting around.
; 79 : // A hex ethernet address of 12 34 56 78 9a bc is stored in wMAC array as
; 80 : // wMAC[0] = 3412, wMAC[1] = 7856, wMAC[2] = bc9a.
; 81 : // The 4 byte return value should look like 0x00123456
; 82 : //
; 83 : ret = (pAddr->wMAC[0] & 0x00ff) << 16;
; 84 : ret |= pAddr->wMAC[0] & 0xff00;
; 85 : ret |= pAddr->wMAC[1] & 0x00ff;
; 86 : return ret;
00004 e1d030b6 ldrh r3, [r0, #6]
00008 e20120ff and r2, r1, #0xFF
0000c e20330ff and r3, r3, #0xFF
00010 e1832802 orr r2, r3, r2, lsl #16
00014 e2013cff and r3, r1, #0xFF, 24
00018 e1820003 orr r0, r2, r3
; 87 : }
0001c e12fff1e bx lr
00020 |$M15288|
ENDP ; |UpperDWFromMAC|
EXPORT |CreateDeviceName|
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -