📄 format.cod
字号:
; Listing generated by Microsoft (R) Optimizing Compiler Version 13.10.4237
TTL C:\WINCE500\PLATFORM\Ep93xx\Src\Bootloader\Common\.\format.c
CODE32
00000 AREA |.drectve|, DRECTVE
DCB "-defaultlib:coredll.lib "
DCB "-defaultlib:corelibc.lib "
EXPORT |szSprintf| [ DATA ]
00000 AREA |.bss|, NOINIT
|szSprintf| % 0x4
EXPORT |EdbgOutputDebugString|
; File c:\wince500\platform\ep93xx\src\bootloader\common\format.c
00000 AREA |.text| { |EdbgOutputDebugString| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$EdbgOutputDebugString|, PDATA, SELECTION=5, ASSOC=|.text| { |EdbgOutputDebugString| } ; comdat associative
|$T37621| DCD |$L37620|
DCD 0x4000a504
; Function compile flags: /Ods
00000 AREA |.text| { |EdbgOutputDebugString| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |EdbgOutputDebugString| PROC
; 94 : {
00000 |$L37620|
00000 e1a0c00d mov r12, sp
00004 e92d000f stmdb sp!, {r0 - r3}
00008 e92d5000 stmdb sp!, {r12, lr}
0000c e24dd014 sub sp, sp, #0x14
00010 |$M37618|
; 95 : unsigned char c;
; 96 : va_list vl;
; 97 :
; 98 : va_start(vl, sz);
00010 e28d301c add r3, sp, #0x1C
00014 e2833004 add r3, r3, #4
00018 e58d3000 str r3, [sp]
0001c |$L37217|
; 99 :
; 100 : while (*sz)
0001c e59d301c ldr r3, [sp, #0x1C]
00020 e5d33000 ldrb r3, [r3]
00024 e3530000 cmp r3, #0
00028 0a000094 beq |$L37218|
; 101 : {
; 102 : c = *sz++;
0002c e59d301c ldr r3, [sp, #0x1C]
00030 e5d33000 ldrb r3, [r3]
00034 e5cd3004 strb r3, [sp, #4]
00038 e59d301c ldr r3, [sp, #0x1C]
0003c e2833001 add r3, r3, #1
00040 e58d301c str r3, [sp, #0x1C]
; 103 : switch (c)
00044 e5dd3004 ldrb r3, [sp, #4]
00048 e58d300c str r3, [sp, #0xC]
0004c e59d300c ldr r3, [sp, #0xC]
00050 e353000a cmp r3, #0xA
00054 0a000084 beq |$L37298|
00058 e59d300c ldr r3, [sp, #0xC]
0005c e3530025 cmp r3, #0x25
00060 0a000000 beq |$L37224|
00064 ea000082 b |$L37299|
00068 |$L37224|
; 104 : {
; 105 : case (unsigned char)'%':
; 106 : c = *sz++;
00068 e59d301c ldr r3, [sp, #0x1C]
0006c e5d33000 ldrb r3, [r3]
00070 e5cd3004 strb r3, [sp, #4]
00074 e59d301c ldr r3, [sp, #0x1C]
00078 e2833001 add r3, r3, #1
0007c e58d301c str r3, [sp, #0x1C]
; 107 : switch (c)
00080 e5dd3004 ldrb r3, [sp, #4]
00084 e58d3010 str r3, [sp, #0x10]
00088 e59d3010 ldr r3, [sp, #0x10]
0008c e3530063 cmp r3, #0x63
00090 ca000012 bgt |$L37617|
00094 e59d3010 ldr r3, [sp, #0x10]
00098 e3530063 cmp r3, #0x63
0009c 0a000065 beq |$L37289|
000a0 e59d3010 ldr r3, [sp, #0x10]
000a4 e3530025 cmp r3, #0x25
000a8 0a00005f beq |$L37288|
000ac e59d3010 ldr r3, [sp, #0x10]
000b0 e3530042 cmp r3, #0x42
000b4 0a00001f beq |$L37237|
000b8 e59d3010 ldr r3, [sp, #0x10]
000bc e3530048 cmp r3, #0x48
000c0 0a000025 beq |$L37245|
000c4 e59d3010 ldr r3, [sp, #0x10]
000c8 e3530058 cmp r3, #0x58
000cc 0a00002b beq |$L37253|
000d0 e59d3010 ldr r3, [sp, #0x10]
000d4 e3530061 cmp r3, #0x61
000d8 0a00004b beq |$L37280|
000dc ea00005f b |$L37297|
000e0 |$L37617|
000e0 e59d3010 ldr r3, [sp, #0x10]
000e4 e3530064 cmp r3, #0x64
000e8 0a00002d beq |$L37261|
000ec e59d3010 ldr r3, [sp, #0x10]
000f0 e3530073 cmp r3, #0x73
000f4 0a000044 beq |$L37280|
000f8 e59d3010 ldr r3, [sp, #0x10]
000fc e3530075 cmp r3, #0x75
00100 0a000039 beq |$L37272|
00104 e59d3010 ldr r3, [sp, #0x10]
00108 e3530078 cmp r3, #0x78
0010c 0a000000 beq |$L37229|
00110 ea000052 b |$L37297|
00114 |$L37229|
; 108 : {
; 109 : case 'x':
; 110 : pOutputNumHex(va_arg(vl, unsigned long), 0);
00114 e59d3000 ldr r3, [sp]
00118 e2833004 add r3, r3, #4
0011c e58d3000 str r3, [sp]
00120 e3a01000 mov r1, #0
00124 e59d3000 ldr r3, [sp]
00128 e2433004 sub r3, r3, #4
0012c e5930000 ldr r0, [r3]
00130 eb000000 bl pOutputNumHex
; 111 : break;
00134 ea00004b b |$L37226|
00138 |$L37237|
; 112 :
; 113 : case 'B':
; 114 : pOutputNumHex(va_arg(vl, unsigned long), 2);
00138 e59d3000 ldr r3, [sp]
0013c e2833004 add r3, r3, #4
00140 e58d3000 str r3, [sp]
00144 e3a01002 mov r1, #2
00148 e59d3000 ldr r3, [sp]
0014c e2433004 sub r3, r3, #4
00150 e5930000 ldr r0, [r3]
00154 eb000000 bl pOutputNumHex
; 115 : break;
00158 ea000042 b |$L37226|
0015c |$L37245|
; 116 :
; 117 : case 'H':
; 118 : pOutputNumHex(va_arg(vl, unsigned long), 4);
0015c e59d3000 ldr r3, [sp]
00160 e2833004 add r3, r3, #4
00164 e58d3000 str r3, [sp]
00168 e3a01004 mov r1, #4
0016c e59d3000 ldr r3, [sp]
00170 e2433004 sub r3, r3, #4
00174 e5930000 ldr r0, [r3]
00178 eb000000 bl pOutputNumHex
; 119 : break;
0017c ea000039 b |$L37226|
00180 |$L37253|
; 120 :
; 121 : case 'X':
; 122 : pOutputNumHex(va_arg(vl, unsigned long), 8);
00180 e59d3000 ldr r3, [sp]
00184 e2833004 add r3, r3, #4
00188 e58d3000 str r3, [sp]
0018c e3a01008 mov r1, #8
00190 e59d3000 ldr r3, [sp]
00194 e2433004 sub r3, r3, #4
00198 e5930000 ldr r0, [r3]
0019c eb000000 bl pOutputNumHex
; 123 : break;
001a0 ea000030 b |$L37226|
001a4 |$L37261|
; 124 :
; 125 : case 'd':
; 126 : {
; 127 : long l;
; 128 :
; 129 : l = va_arg(vl, long);
001a4 e59d3000 ldr r3, [sp]
001a8 e2833004 add r3, r3, #4
001ac e58d3000 str r3, [sp]
001b0 e59d3000 ldr r3, [sp]
001b4 e2433004 sub r3, r3, #4
001b8 e5933000 ldr r3, [r3]
001bc e58d3008 str r3, [sp, #8]
; 130 :
; 131 : if (l < 0)
001c0 e59d3008 ldr r3, [sp, #8]
001c4 e3530000 cmp r3, #0
001c8 aa000004 bge |$L37270|
; 132 : {
; 133 : pOutputByte('-');
001cc e3a0002d mov r0, #0x2D
001d0 eb000000 bl pOutputByte
; 134 : l = -l;
001d4 e59d3008 ldr r3, [sp, #8]
001d8 e2633000 rsb r3, r3, #0
001dc e58d3008 str r3, [sp, #8]
001e0 |$L37270|
; 135 : }
; 136 : pOutputNumDecimal((unsigned long)l);
001e0 e59d0008 ldr r0, [sp, #8]
001e4 eb000000 bl pOutputNumDecimal
; 137 : }
; 138 : break;
001e8 ea00001e b |$L37226|
001ec |$L37272|
; 139 :
; 140 : case 'u':
; 141 : pOutputNumDecimal(va_arg(vl, unsigned long));
001ec e59d3000 ldr r3, [sp]
001f0 e2833004 add r3, r3, #4
001f4 e58d3000 str r3, [sp]
001f8 e59d3000 ldr r3, [sp]
001fc e2433004 sub r3, r3, #4
00200 e5930000 ldr r0, [r3]
00204 eb000000 bl pOutputNumDecimal
; 142 : break;
00208 ea000016 b |$L37226|
0020c |$L37280|
; 143 :
; 144 : case 'a':
; 145 : case 's':
; 146 : OutputString(va_arg(vl, char *));
0020c e59d3000 ldr r3, [sp]
00210 e2833004 add r3, r3, #4
00214 e58d3000 str r3, [sp]
00218 e59d3000 ldr r3, [sp]
0021c e2433004 sub r3, r3, #4
00220 e5930000 ldr r0, [r3]
00224 eb000000 bl OutputString
; 147 : break;
00228 ea00000e b |$L37226|
0022c |$L37288|
; 148 :
; 149 : case '%':
; 150 : pOutputByte('%');
0022c e3a00025 mov r0, #0x25
00230 eb000000 bl pOutputByte
; 151 : break;
00234 ea00000b b |$L37226|
00238 |$L37289|
; 152 :
; 153 : case 'c':
; 154 : c = va_arg(vl, unsigned char);
00238 e59d3000 ldr r3, [sp]
0023c e2833004 add r3, r3, #4
00240 e58d3000 str r3, [sp]
00244 e59d3000 ldr r3, [sp]
00248 e2433004 sub r3, r3, #4
0024c e5d33000 ldrb r3, [r3]
00250 e5cd3004 strb r3, [sp, #4]
; 155 : pOutputByte(c);
00254 e5dd0004 ldrb r0, [sp, #4]
00258 eb000000 bl pOutputByte
; 156 : break;
0025c ea000001 b |$L37226|
00260 |$L37297|
; 157 :
; 158 : default:
; 159 : pOutputByte(' ');
00260 e3a00020 mov r0, #0x20
00264 eb000000 bl pOutputByte
00268 |$L37226|
; 160 : break;
; 161 : }
; 162 : break;
00268 ea000003 b |$L37220|
0026c |$L37298|
; 163 :
; 164 : case '\n':
; 165 : pOutputByte('\r');
0026c e3a0000d mov r0, #0xD
00270 eb000000 bl pOutputByte
00274 |$L37299|
; 166 : // fall through
; 167 :
; 168 : default:
; 169 : pOutputByte(c);
00274 e5dd0004 ldrb r0, [sp, #4]
00278 eb000000 bl pOutputByte
0027c |$L37220|
; 170 : }
; 171 : }
0027c eaffff66 b |$L37217|
00280 |$L37218|
; 172 :
; 173 : va_end(vl);
00280 e3a03000 mov r3, #0
00284 e58d3000 str r3, [sp]
; 174 : }
00288 e28dd014 add sp, sp, #0x14
0028c e89d6000 ldmia sp, {sp, lr}
00290 e12fff1e bx lr
00294 |$M37619|
ENDP ; |EdbgOutputDebugString|
EXPORT |NKDbgPrintfW|
00000 AREA |.text| { |NKDbgPrintfW| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$NKDbgPrintfW|, PDATA, SELECTION=5, ASSOC=|.text| { |NKDbgPrintfW| } ; comdat associative
|$T37629| DCD |$L37628|
DCD 0x4000a904
; Function compile flags: /Ods
00000 AREA |.text| { |NKDbgPrintfW| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |NKDbgPrintfW| PROC
; 206 : {
00000 |$L37628|
00000 e1a0c00d mov r12, sp
00004 e92d000f stmdb sp!, {r0 - r3}
00008 e92d5000 stmdb sp!, {r12, lr}
0000c e24dd014 sub sp, sp, #0x14
00010 |$M37626|
; 207 : unsigned char c;
; 208 : va_list vl;
; 209 :
; 210 : va_start(vl, sz);
00010 e28d301c add r3, sp, #0x1C
00014 e2833004 add r3, r3, #4
00018 e58d3000 str r3, [sp]
0001c |$L37310|
; 211 :
; 212 : while (*sz)
0001c e59d301c ldr r3, [sp, #0x1C]
00020 e1d330b0 ldrh r3, [r3]
00024 e3530000 cmp r3, #0
00028 0a000098 beq |$L37311|
; 213 : {
; 214 : c = (*sz++) & 0xff;
0002c e59d301c ldr r3, [sp, #0x1C]
00030 e1d330b0 ldrh r3, [r3]
00034 e20330ff and r3, r3, #0xFF
00038 e20330ff and r3, r3, #0xFF
0003c e5cd3004 strb r3, [sp, #4]
00040 e59d301c ldr r3, [sp, #0x1C]
00044 e2833002 add r3, r3, #2
00048 e58d301c str r3, [sp, #0x1C]
; 215 : switch (c)
0004c e5dd3004 ldrb r3, [sp, #4]
00050 e58d300c str r3, [sp, #0xC]
00054 e59d300c ldr r3, [sp, #0xC]
00058 e353000a cmp r3, #0xA
0005c 0a000086 beq |$L37390|
00060 e59d300c ldr r3, [sp, #0xC]
00064 e3530025 cmp r3, #0x25
00068 0a000000 beq |$L37316|
0006c ea000084 b |$L37391|
00070 |$L37316|
; 216 : {
; 217 : case '%':
; 218 : c = (*sz++) & 0xff;
00070 e59d301c ldr r3, [sp, #0x1C]
00074 e1d330b0 ldrh r3, [r3]
00078 e20330ff and r3, r3, #0xFF
0007c e20330ff and r3, r3, #0xFF
00080 e5cd3004 strb r3, [sp, #4]
00084 e59d301c ldr r3, [sp, #0x1C]
00088 e2833002 add r3, r3, #2
0008c e58d301c str r3, [sp, #0x1C]
; 219 :
; 220 : switch (c)
00090 e5dd3004 ldrb r3, [sp, #4]
00094 e58d3010 str r3, [sp, #0x10]
00098 e59d3010 ldr r3, [sp, #0x10]
0009c e3530063 cmp r3, #0x63
000a0 ca000012 bgt |$L37625|
000a4 e59d3010 ldr r3, [sp, #0x10]
000a8 e3530063 cmp r3, #0x63
000ac 0a000065 beq |$L37381|
000b0 e59d3010 ldr r3, [sp, #0x10]
000b4 e3530025 cmp r3, #0x25
000b8 0a00005f beq |$L37380|
000bc e59d3010 ldr r3, [sp, #0x10]
000c0 e3530042 cmp r3, #0x42
000c4 0a00001f beq |$L37329|
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -