⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 format.cod

📁 EP9315的BSP包(WINCE下的BSP,内有各种驱动的详细的代码)
💻 COD
📖 第 1 页 / 共 3 页
字号:
; 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 + -