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

📄 format.cod

📁 Ep93XX TionProV2 BSP
💻 COD
📖 第 1 页 / 共 4 页
字号:
  000c8	e59d3010	 ldr         r3, [sp, #0x10]
  000cc	e3530048	 cmp         r3, #0x48
  000d0	0a000025	 beq         |$L37337|
  000d4	e59d3010	 ldr         r3, [sp, #0x10]
  000d8	e3530058	 cmp         r3, #0x58
  000dc	0a00002b	 beq         |$L37345|
  000e0	e59d3010	 ldr         r3, [sp, #0x10]
  000e4	e3530061	 cmp         r3, #0x61
  000e8	0a00004b	 beq         |$L37372|
  000ec	ea00005f	 b           |$L37389|
  000f0		 |$L37625|
  000f0	e59d3010	 ldr         r3, [sp, #0x10]
  000f4	e3530064	 cmp         r3, #0x64
  000f8	0a00002d	 beq         |$L37353|
  000fc	e59d3010	 ldr         r3, [sp, #0x10]
  00100	e3530073	 cmp         r3, #0x73
  00104	0a000044	 beq         |$L37372|
  00108	e59d3010	 ldr         r3, [sp, #0x10]
  0010c	e3530075	 cmp         r3, #0x75
  00110	0a000039	 beq         |$L37364|
  00114	e59d3010	 ldr         r3, [sp, #0x10]
  00118	e3530078	 cmp         r3, #0x78
  0011c	0a000000	 beq         |$L37321|
  00120	ea000052	 b           |$L37389|
  00124		 |$L37321|

; 221  :               {
; 222  :                 case 'x':
; 223  :                     pOutputNumHex(va_arg(vl, unsigned long), 0);

  00124	e59d3000	 ldr         r3, [sp]
  00128	e2833004	 add         r3, r3, #4
  0012c	e58d3000	 str         r3, [sp]
  00130	e3a01000	 mov         r1, #0
  00134	e59d3000	 ldr         r3, [sp]
  00138	e2433004	 sub         r3, r3, #4
  0013c	e5930000	 ldr         r0, [r3]
  00140	eb000000	 bl          pOutputNumHex

; 224  :                     break;

  00144	ea00004b	 b           |$L37318|
  00148		 |$L37329|

; 225  :                 case 'B':
; 226  :                     pOutputNumHex(va_arg(vl, unsigned long), 2);

  00148	e59d3000	 ldr         r3, [sp]
  0014c	e2833004	 add         r3, r3, #4
  00150	e58d3000	 str         r3, [sp]
  00154	e3a01002	 mov         r1, #2
  00158	e59d3000	 ldr         r3, [sp]
  0015c	e2433004	 sub         r3, r3, #4
  00160	e5930000	 ldr         r0, [r3]
  00164	eb000000	 bl          pOutputNumHex

; 227  :                     break;

  00168	ea000042	 b           |$L37318|
  0016c		 |$L37337|

; 228  : 
; 229  :                 case 'H':
; 230  :                     pOutputNumHex(va_arg(vl, unsigned long), 4);

  0016c	e59d3000	 ldr         r3, [sp]
  00170	e2833004	 add         r3, r3, #4
  00174	e58d3000	 str         r3, [sp]
  00178	e3a01004	 mov         r1, #4
  0017c	e59d3000	 ldr         r3, [sp]
  00180	e2433004	 sub         r3, r3, #4
  00184	e5930000	 ldr         r0, [r3]
  00188	eb000000	 bl          pOutputNumHex

; 231  :                     break;

  0018c	ea000039	 b           |$L37318|
  00190		 |$L37345|

; 232  : 
; 233  :                 case 'X':
; 234  :                     pOutputNumHex(va_arg(vl, unsigned long), 8);

  00190	e59d3000	 ldr         r3, [sp]
  00194	e2833004	 add         r3, r3, #4
  00198	e58d3000	 str         r3, [sp]
  0019c	e3a01008	 mov         r1, #8
  001a0	e59d3000	 ldr         r3, [sp]
  001a4	e2433004	 sub         r3, r3, #4
  001a8	e5930000	 ldr         r0, [r3]
  001ac	eb000000	 bl          pOutputNumHex

; 235  :                     break;

  001b0	ea000030	 b           |$L37318|
  001b4		 |$L37353|

; 236  : 
; 237  :                 case 'd':
; 238  :                 {
; 239  :                     long l;
; 240  : 
; 241  :                     l = va_arg(vl, long);

  001b4	e59d3000	 ldr         r3, [sp]
  001b8	e2833004	 add         r3, r3, #4
  001bc	e58d3000	 str         r3, [sp]
  001c0	e59d3000	 ldr         r3, [sp]
  001c4	e2433004	 sub         r3, r3, #4
  001c8	e5933000	 ldr         r3, [r3]
  001cc	e58d3008	 str         r3, [sp, #8]

; 242  : 
; 243  :                     if (l < 0)

  001d0	e59d3008	 ldr         r3, [sp, #8]
  001d4	e3530000	 cmp         r3, #0
  001d8	aa000004	 bge         |$L37362|

; 244  :                     {
; 245  :                         pOutputByte('-');

  001dc	e3a0002d	 mov         r0, #0x2D
  001e0	eb000000	 bl          pOutputByte

; 246  :                         l = -l;

  001e4	e59d3008	 ldr         r3, [sp, #8]
  001e8	e2633000	 rsb         r3, r3, #0
  001ec	e58d3008	 str         r3, [sp, #8]
  001f0		 |$L37362|

; 247  :                     }
; 248  :                     pOutputNumDecimal((unsigned long)l);

  001f0	e59d0008	 ldr         r0, [sp, #8]
  001f4	eb000000	 bl          pOutputNumDecimal

; 249  :                 }
; 250  :                 break;

  001f8	ea00001e	 b           |$L37318|
  001fc		 |$L37364|

; 251  : 
; 252  :                 case 'u':
; 253  :                 pOutputNumDecimal(va_arg(vl, unsigned long));

  001fc	e59d3000	 ldr         r3, [sp]
  00200	e2833004	 add         r3, r3, #4
  00204	e58d3000	 str         r3, [sp]
  00208	e59d3000	 ldr         r3, [sp]
  0020c	e2433004	 sub         r3, r3, #4
  00210	e5930000	 ldr         r0, [r3]
  00214	eb000000	 bl          pOutputNumDecimal

; 254  :                 break;

  00218	ea000016	 b           |$L37318|
  0021c		 |$L37372|

; 255  : 
; 256  :                 case 'a':
; 257  :                 case 's':
; 258  :                     OutputString(va_arg(vl, char *));

  0021c	e59d3000	 ldr         r3, [sp]
  00220	e2833004	 add         r3, r3, #4
  00224	e58d3000	 str         r3, [sp]
  00228	e59d3000	 ldr         r3, [sp]
  0022c	e2433004	 sub         r3, r3, #4
  00230	e5930000	 ldr         r0, [r3]
  00234	eb000000	 bl          OutputString

; 259  :                     break;

  00238	ea00000e	 b           |$L37318|
  0023c		 |$L37380|

; 260  : 
; 261  :                 case '%':
; 262  :                     pOutputByte('%');

  0023c	e3a00025	 mov         r0, #0x25
  00240	eb000000	 bl          pOutputByte

; 263  :                     break;

  00244	ea00000b	 b           |$L37318|
  00248		 |$L37381|

; 264  : 
; 265  :                 case 'c':
; 266  :                     c = va_arg(vl, unsigned char);

  00248	e59d3000	 ldr         r3, [sp]
  0024c	e2833004	 add         r3, r3, #4
  00250	e58d3000	 str         r3, [sp]
  00254	e59d3000	 ldr         r3, [sp]
  00258	e2433004	 sub         r3, r3, #4
  0025c	e5d33000	 ldrb        r3, [r3]
  00260	e5cd3004	 strb        r3, [sp, #4]

; 267  :                     pOutputByte(c);

  00264	e5dd0004	 ldrb        r0, [sp, #4]
  00268	eb000000	 bl          pOutputByte

; 268  :                     break;

  0026c	ea000001	 b           |$L37318|
  00270		 |$L37389|

; 269  : 
; 270  :                 default:
; 271  :                     pOutputByte(' ');

  00270	e3a00020	 mov         r0, #0x20
  00274	eb000000	 bl          pOutputByte
  00278		 |$L37318|

; 272  :                     break;
; 273  :               }
; 274  :               break;

  00278	ea000003	 b           |$L37313|
  0027c		 |$L37390|

; 275  : 
; 276  :           case '\n':
; 277  :               pOutputByte('\r');

  0027c	e3a0000d	 mov         r0, #0xD
  00280	eb000000	 bl          pOutputByte
  00284		 |$L37391|

; 278  :               // fall through
; 279  : 
; 280  :           default:
; 281  :               pOutputByte(c);

  00284	e5dd0004	 ldrb        r0, [sp, #4]
  00288	eb000000	 bl          pOutputByte
  0028c		 |$L37313|

; 282  :         }
; 283  :     }

  0028c	eaffff62	 b           |$L37310|
  00290		 |$L37311|

; 284  : 
; 285  :     va_end(vl);

  00290	e3a03000	 mov         r3, #0
  00294	e58d3000	 str         r3, [sp]

; 286  : }

  00298	e28dd014	 add         sp, sp, #0x14
  0029c	e89d6000	 ldmia       sp, {sp, lr}
  002a0	e12fff1e	 bx          lr
  002a4		 |$M37627|

			 ENDP  ; |NKDbgPrintfW|

	EXPORT	|FormatString|

  00000			 AREA	 |.text| { |FormatString| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$FormatString|, PDATA, SELECTION=5, ASSOC=|.text| { |FormatString| } ; comdat associative
|$T37638| DCD	|$L37637|
	DCD	0x4000b404
; Function compile flags: /Ods

  00000			 AREA	 |.text| { |FormatString| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |FormatString| PROC

; 316  : {

  00000		 |$L37637|
  00000	e1a0c00d	 mov         r12, sp
  00004	e92d000f	 stmdb       sp!, {r0 - r3}
  00008	e92d5000	 stmdb       sp!, {r12, lr}
  0000c	e24dd018	 sub         sp, sp, #0x18
  00010		 |$M37635|

; 317  :     unsigned char c;
; 318  :     va_list vl;
; 319  : 
; 320  :     va_start(vl, sz);

  00010	e28d3024	 add         r3, sp, #0x24
  00014	e2833004	 add         r3, r3, #4
  00018	e58d3000	 str         r3, [sp]

; 321  : 
; 322  :     szSprintf = pBuf;

  0001c	e59d2020	 ldr         r2, [sp, #0x20]
  00020	e59f32a4	 ldr         r3, [pc, #0x2A4]
  00024	e5832000	 str         r2, [r3]
  00028		 |$L37405|

; 323  : 
; 324  :     while (*sz)

  00028	e59d3024	 ldr         r3, [sp, #0x24]
  0002c	e5d33000	 ldrb        r3, [r3]
  00030	e3530000	 cmp         r3, #0
  00034	0a000091	 beq         |$L37406|

; 325  :     {
; 326  :         c = *sz++;

  00038	e59d3024	 ldr         r3, [sp, #0x24]
  0003c	e5d33000	 ldrb        r3, [r3]
  00040	e5cd3004	 strb        r3, [sp, #4]
  00044	e59d3024	 ldr         r3, [sp, #0x24]
  00048	e2833001	 add         r3, r3, #1
  0004c	e58d3024	 str         r3, [sp, #0x24]

; 327  : 
; 328  :         switch (c)

  00050	e5dd3004	 ldrb        r3, [sp, #4]
  00054	e58d3010	 str         r3, [sp, #0x10]
  00058	e59d3010	 ldr         r3, [sp, #0x10]
  0005c	e353000a	 cmp         r3, #0xA
  00060	0a000081	 beq         |$L37486|
  00064	e59d3010	 ldr         r3, [sp, #0x10]
  00068	e3530025	 cmp         r3, #0x25
  0006c	0a000000	 beq         |$L37412|
  00070	ea00007f	 b           |$L37487|
  00074		 |$L37412|

; 329  :         {
; 330  :           case (unsigned char)'%':
; 331  :               c = *sz++;

  00074	e59d3024	 ldr         r3, [sp, #0x24]
  00078	e5d33000	 ldrb        r3, [r3]
  0007c	e5cd3004	 strb        r3, [sp, #4]
  00080	e59d3024	 ldr         r3, [sp, #0x24]
  00084	e2833001	 add         r3, r3, #1
  00088	e58d3024	 str         r3, [sp, #0x24]

; 332  : 
; 333  :               switch (c)

  0008c	e5dd3004	 ldrb        r3, [sp, #4]
  00090	e58d3014	 str         r3, [sp, #0x14]
  00094	e59d3014	 ldr         r3, [sp, #0x14]
  00098	e3530063	 cmp         r3, #0x63
  0009c	ca00000f	 bgt         |$L37633|
  000a0	e59d3014	 ldr         r3, [sp, #0x14]
  000a4	e3530063	 cmp         r3, #0x63
  000a8	0a000062	 beq         |$L37477|
  000ac	e59d3014	 ldr         r3, [sp, #0x14]
  000b0	e3530025	 cmp         r3, #0x25
  000b4	0a00005c	 beq         |$L37476|
  000b8	e59d3014	 ldr         r3, [sp, #0x14]
  000bc	e3530042	 cmp         r3, #0x42
  000c0	0a00001c	 beq         |$L37425|
  000c4	e59d3014	 ldr         r3, [sp, #0x14]
  000c8	e3530048	 cmp         r3, #0x48
  000cc	0a000022	 beq         |$L37433|
  000d0	e59d3014	 ldr         r3, [sp, #0x14]
  000d4	e3530058	 cmp         r3, #0x58
  000d8	0a000028	 beq         |$L37441|
  000dc	ea00005f	 b           |$L37485|
  000e0		 |$L37633|
  000e0	e59d3014	 ldr         r3, [sp, #0x14]
  000e4	e3530064	 cmp         r3, #0x64
  000e8	0a00002d	 beq         |$L37449|
  000ec	e59d3014	 ldr         r3, [sp, #0x14]
  000f0	e3530073	 cmp         r3, #0x73
  000f4	0a000044	 beq         |$L37468|
  000f8	e59d3014	 ldr         r3, [sp, #0x14]
  000fc	e3530075	 cmp         r3, #0x75
  00100	0a000039	 beq         |$L37460|
  00104	e59d3014	 ldr         r3, [sp, #0x14]
  00108	e3530078	 cmp         r3, #0x78
  0010c	0a000000	 beq         |$L37417|
  00110	ea000052	 b           |$L37485|
  00114		 |$L37417|

; 334  :               {
; 335  :                 case 'x':
; 336  :                     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

; 337  :                     break;

  00134	ea00004b	 b           |$L37414|
  00138		 |$L37425|

; 338  : 
; 339  :                 case 'B':
; 340  :                     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

; 341  :                     break;

  00158	ea000042	 b           |$L37414|
  0015c		 |$L37433|

; 342  : 
; 343  :                 case 'H':
; 344  :                     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

; 345  :                     break;

  0017c	ea000039	 b           |$L37414|
  00180		 |$L37441|

; 346  : 
; 347  :                 case 'X':
; 348  :                     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

; 349  :                     break;

  001a0	ea000030	 b           |$L37414|
  001a4		 |$L37449|

; 350  : 
; 351  :                 case 'd':
; 352  :                 {
; 353  :                     long l;
; 354  : 
; 355  :                     l = va_arg(vl, long);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -