📄 format.cod
字号:
; Listing generated by Microsoft (R) Optimizing Compiler Version 12.20.9615
TTL d:\wince420\platform\ep931x\eboot\.\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 d:\wince420\platform\ep931x\eboot\format.c
00000 AREA |.text| { |EdbgOutputDebugString| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$EdbgOutputDebugString|, PDATA, SELECTION=5, ASSOC=|.text| { |EdbgOutputDebugString| } ; comdat associative
|$T36216| DCD |EdbgOutputDebugString|
DCD 0x40005003
; Function compile flags: /Ogsy
00000 AREA |.text| { |EdbgOutputDebugString| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |EdbgOutputDebugString| PROC
; 72 : {
00000 e1a0c00d mov r12, sp
00004 e92d000f stmdb sp!, {r0 - r3}
00008 e92d5070 stmdb sp!, {r4 - r6, r12, lr}
0000c |$M36214|
0000c e1a06000 mov r6, r0
; 73 : unsigned char c;
; 74 : va_list vl;
; 75 :
; 76 : va_start(vl, sz);
00010 e28d5018 add r5, sp, #0x18
; 77 :
; 78 : while (*sz)
00014 ea000044 b |$L35803|
00018 |$L35800|
; 79 : {
; 80 : c = *sz++;
; 81 : switch (c)
; 82 : {
00018 e20400ff and r0, r4, #0xFF
0001c e2866001 add r6, r6, #1
00020 e350000a cmp r0, #0xA
00024 0a00003c beq |$L35881|
00028 e3500025 cmp r0, #0x25
0002c 1a00003c bne |$L35882|
; 83 : case (unsigned char)'%':
; 84 : c = *sz++;
00030 e4d60001 ldrb r0, [r6], #1
00034 e58d6014 str r6, [sp, #0x14]
; 85 : switch (c)
; 86 : {
00038 e3500063 cmp r0, #0x63
0003c ca000019 bgt |$L36200|
00040 0a000015 beq |$L35872|
00044 e3500025 cmp r0, #0x25
00048 0a000011 beq |$L35871|
0004c e3500042 cmp r0, #0x42
00050 0a00000d beq |$L35820|
00054 e3500048 cmp r0, #0x48
00058 0a000009 beq |$L35828|
0005c e3500058 cmp r0, #0x58
00060 0a000005 beq |$L35836|
00064 e3500061 cmp r0, #0x61
00068 1a000016 bne |$L35880|
0006c |$L35863|
; 121 :
; 122 : case 'a':
; 123 : case 's':
; 124 : OutputString(va_arg(vl, char *));
0006c e2855004 add r5, r5, #4
00070 e5150004 ldr r0, [r5, #-4]
00074 eb000000 bl OutputString
; 125 : break;
00078 ea00002b b |$L35803|
0007c |$L35836|
; 98 :
; 99 : case 'X':
; 100 : pOutputNumHex(va_arg(vl, unsigned long), 8);
0007c e3a01008 mov r1, #8
; 101 : break;
00080 ea000013 b |$L36213|
00084 |$L35828|
; 94 :
; 95 : case 'H':
; 96 : pOutputNumHex(va_arg(vl, unsigned long), 4);
00084 e3a01004 mov r1, #4
; 97 : break;
00088 ea000011 b |$L36213|
0008c |$L35820|
; 90 :
; 91 : case 'B':
; 92 : pOutputNumHex(va_arg(vl, unsigned long), 2);
0008c e3a01002 mov r1, #2
; 93 : break;
00090 ea00000f b |$L36213|
00094 |$L35871|
; 126 :
; 127 : case '%':
; 128 : pOutputByte('%');
00094 e3a00025 mov r0, #0x25
; 129 : break;
00098 ea000022 b |$L36210|
0009c |$L35872|
; 130 :
; 131 : case 'c':
; 132 : c = va_arg(vl, unsigned char);
0009c e2855004 add r5, r5, #4
; 133 : pOutputByte(c);
000a0 e5550004 ldrb r0, [r5, #-4]
; 134 : break;
000a4 ea00001f b |$L36210|
000a8 |$L36200|
; 85 : switch (c)
; 86 : {
000a8 e3500064 cmp r0, #0x64
000ac 0a000010 beq |$L35844|
000b0 e3500073 cmp r0, #0x73
000b4 0affffec beq |$L35863|
000b8 e3500075 cmp r0, #0x75
000bc 0a000008 beq |$L35855|
000c0 e3500078 cmp r0, #0x78
000c4 0a000001 beq |$L35812|
000c8 |$L35880|
; 135 :
; 136 : default:
; 137 : pOutputByte(' ');
000c8 e3a00020 mov r0, #0x20
; 138 : break;
000cc ea000015 b |$L36210|
000d0 |$L35812|
; 87 : case 'x':
; 88 : pOutputNumHex(va_arg(vl, unsigned long), 0);
000d0 e3a01000 mov r1, #0
000d4 |$L36213|
000d4 e2855004 add r5, r5, #4
000d8 e5150004 ldr r0, [r5, #-4]
000dc eb000000 bl pOutputNumHex
; 89 : break;
000e0 ea000011 b |$L35803|
000e4 |$L35855|
; 115 : }
; 116 : break;
; 117 :
; 118 : case 'u':
; 119 : pOutputNumDecimal(va_arg(vl, unsigned long));
000e4 e2855004 add r5, r5, #4
000e8 e5150004 ldr r0, [r5, #-4]
000ec eb000000 bl pOutputNumDecimal
; 120 : break;
000f0 ea00000d b |$L35803|
000f4 |$L35844|
; 102 :
; 103 : case 'd':
; 104 : {
; 105 : long l;
; 106 :
; 107 : l = va_arg(vl, long);
000f4 e2855004 add r5, r5, #4
000f8 e5150004 ldr r0, [r5, #-4]
000fc e1b04000 movs r4, r0
; 108 :
; 109 : if (l < 0)
00100 5a000002 bpl |$L35853|
; 110 : {
; 111 : pOutputByte('-');
00104 e3a0002d mov r0, #0x2D
00108 eb000000 bl pOutputByte
; 112 : l = -l;
0010c e2644000 rsb r4, r4, #0
00110 |$L35853|
; 113 : }
; 114 : pOutputNumDecimal((unsigned long)l);
00110 e1a00004 mov r0, r4
; 115 : }
; 116 : break;
; 117 :
; 118 : case 'u':
; 119 : pOutputNumDecimal(va_arg(vl, unsigned long));
00114 eb000000 bl pOutputNumDecimal
; 120 : break;
00118 ea000003 b |$L35803|
0011c |$L35881|
; 139 : }
; 140 : break;
; 141 :
; 142 : case '\n':
; 143 : pOutputByte('\r');
0011c e3a0000d mov r0, #0xD
00120 eb000000 bl pOutputByte
00124 |$L35882|
; 144 : // fall through
; 145 :
; 146 : default:
; 147 : pOutputByte(c);
00124 e1a00004 mov r0, r4
00128 |$L36210|
00128 eb000000 bl pOutputByte
0012c |$L35803|
; 77 :
; 78 : while (*sz)
0012c e5d64000 ldrb r4, [r6]
00130 e31400ff tst r4, #0xFF
00134 1affffb7 bne |$L35800|
; 148 : }
; 149 : }
; 150 :
; 151 : va_end(vl);
; 152 : }
00138 e89d6070 ldmia sp, {r4 - r6, sp, lr}
0013c e12fff1e bx lr
00140 |$M36215|
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
|$T36234| DCD |NKDbgPrintfW|
DCD 0x40005203
; Function compile flags: /Ogsy
00000 AREA |.text| { |NKDbgPrintfW| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |NKDbgPrintfW| PROC
; 184 : {
00000 e1a0c00d mov r12, sp
00004 e92d000f stmdb sp!, {r0 - r3}
00008 e92d5070 stmdb sp!, {r4 - r6, r12, lr}
0000c |$M36232|
0000c e1a06000 mov r6, r0
; 185 : unsigned char c;
; 186 : va_list vl;
; 187 :
; 188 : va_start(vl, sz);
00010 e28d5018 add r5, sp, #0x18
; 189 :
; 190 : while (*sz)
00014 ea000045 b |$L35896|
00018 |$L35893|
; 191 : {
; 192 : c = (*sz++) & 0xff;
00018 e20240ff and r4, r2, #0xFF
; 193 : switch (c)
; 194 : {
0001c e1a00004 mov r0, r4
00020 e2866002 add r6, r6, #2
00024 e350000a cmp r0, #0xA
00028 0a00003c beq |$L35973|
0002c e3500025 cmp r0, #0x25
00030 1a00003c bne |$L35974|
; 195 : case '%':
; 196 : c = (*sz++) & 0xff;
00034 e4d60002 ldrb r0, [r6], #2
00038 e58d6014 str r6, [sp, #0x14]
; 197 :
; 198 : switch (c)
; 199 : {
0003c e3500063 cmp r0, #0x63
00040 ca000019 bgt |$L36220|
00044 0a000015 beq |$L35964|
00048 e3500025 cmp r0, #0x25
0004c 0a000011 beq |$L35963|
00050 e3500042 cmp r0, #0x42
00054 0a00000d beq |$L35912|
00058 e3500048 cmp r0, #0x48
0005c 0a000009 beq |$L35920|
00060 e3500058 cmp r0, #0x58
00064 0a000005 beq |$L35928|
00068 e3500061 cmp r0, #0x61
0006c 1a000016 bne |$L35972|
00070 |$L35955|
; 233 :
; 234 : case 'a':
; 235 : case 's':
; 236 : OutputString(va_arg(vl, char *));
00070 e2855004 add r5, r5, #4
00074 e5150004 ldr r0, [r5, #-4]
00078 eb000000 bl OutputString
; 237 : break;
0007c ea00002b b |$L35896|
00080 |$L35928|
; 210 :
; 211 : case 'X':
; 212 : pOutputNumHex(va_arg(vl, unsigned long), 8);
00080 e3a01008 mov r1, #8
; 213 : break;
00084 ea000013 b |$L36231|
00088 |$L35920|
; 206 :
; 207 : case 'H':
; 208 : pOutputNumHex(va_arg(vl, unsigned long), 4);
00088 e3a01004 mov r1, #4
; 209 : break;
0008c ea000011 b |$L36231|
00090 |$L35912|
; 203 : case 'B':
; 204 : pOutputNumHex(va_arg(vl, unsigned long), 2);
00090 e3a01002 mov r1, #2
; 205 : break;
00094 ea00000f b |$L36231|
00098 |$L35963|
; 238 :
; 239 : case '%':
; 240 : pOutputByte('%');
00098 e3a00025 mov r0, #0x25
; 241 : break;
0009c ea000022 b |$L36228|
000a0 |$L35964|
; 242 :
; 243 : case 'c':
; 244 : c = va_arg(vl, unsigned char);
000a0 e2855004 add r5, r5, #4
; 245 : pOutputByte(c);
000a4 e5550004 ldrb r0, [r5, #-4]
; 246 : break;
000a8 ea00001f b |$L36228|
000ac |$L36220|
; 197 :
; 198 : switch (c)
; 199 : {
000ac e3500064 cmp r0, #0x64
000b0 0a000010 beq |$L35936|
000b4 e3500073 cmp r0, #0x73
000b8 0affffec beq |$L35955|
000bc e3500075 cmp r0, #0x75
000c0 0a000008 beq |$L35947|
000c4 e3500078 cmp r0, #0x78
000c8 0a000001 beq |$L35904|
000cc |$L35972|
; 247 :
; 248 : default:
; 249 : pOutputByte(' ');
000cc e3a00020 mov r0, #0x20
; 250 : break;
000d0 ea000015 b |$L36228|
000d4 |$L35904|
; 200 : case 'x':
; 201 : pOutputNumHex(va_arg(vl, unsigned long), 0);
000d4 e3a01000 mov r1, #0
000d8 |$L36231|
000d8 e2855004 add r5, r5, #4
000dc e5150004 ldr r0, [r5, #-4]
000e0 eb000000 bl pOutputNumHex
; 202 : break;
000e4 ea000011 b |$L35896|
000e8 |$L35947|
; 227 : }
; 228 : break;
; 229 :
; 230 : case 'u':
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -