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

📄 format.cod

📁 Ep93XX TionProV2 BSP
💻 COD
📖 第 1 页 / 共 4 页
字号:

  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]

; 356  : 
; 357  :                     if (l < 0)

  001c0	e59d3008	 ldr         r3, [sp, #8]
  001c4	e3530000	 cmp         r3, #0
  001c8	aa000004	 bge         |$L37458|

; 358  :                     {
; 359  :                         pOutputByte('-');

  001cc	e3a0002d	 mov         r0, #0x2D
  001d0	eb000000	 bl          pOutputByte

; 360  :                         l = -l;

  001d4	e59d3008	 ldr         r3, [sp, #8]
  001d8	e2633000	 rsb         r3, r3, #0
  001dc	e58d3008	 str         r3, [sp, #8]
  001e0		 |$L37458|

; 361  :                     }
; 362  :                     pOutputNumDecimal((unsigned long)l);

  001e0	e59d0008	 ldr         r0, [sp, #8]
  001e4	eb000000	 bl          pOutputNumDecimal

; 363  :                 }
; 364  :                 break;

  001e8	ea00001e	 b           |$L37414|
  001ec		 |$L37460|

; 365  : 
; 366  :                 case 'u':
; 367  :                     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

; 368  :                     break;

  00208	ea000016	 b           |$L37414|
  0020c		 |$L37468|

; 369  : 
; 370  :                 case 's':
; 371  :                     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

; 372  :                     break;

  00228	ea00000e	 b           |$L37414|
  0022c		 |$L37476|

; 373  : 
; 374  :                 case '%':
; 375  :                     pOutputByte('%');

  0022c	e3a00025	 mov         r0, #0x25
  00230	eb000000	 bl          pOutputByte

; 376  :                     break;

  00234	ea00000b	 b           |$L37414|
  00238		 |$L37477|

; 377  : 
; 378  :                 case 'c':
; 379  :                     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]

; 380  :                     pOutputByte(c);

  00254	e5dd0004	 ldrb        r0, [sp, #4]
  00258	eb000000	 bl          pOutputByte

; 381  :                     break;

  0025c	ea000001	 b           |$L37414|
  00260		 |$L37485|

; 382  : 
; 383  :                 default:
; 384  :                     pOutputByte(' ');

  00260	e3a00020	 mov         r0, #0x20
  00264	eb000000	 bl          pOutputByte
  00268		 |$L37414|

; 385  :                     break;
; 386  :               }
; 387  :               break;

  00268	ea000003	 b           |$L37408|
  0026c		 |$L37486|

; 388  : 
; 389  :           case '\n':
; 390  :               pOutputByte('\r');

  0026c	e3a0000d	 mov         r0, #0xD
  00270	eb000000	 bl          pOutputByte
  00274		 |$L37487|

; 391  :               // fall through
; 392  : 
; 393  :           default:
; 394  :               pOutputByte(c);

  00274	e5dd0004	 ldrb        r0, [sp, #4]
  00278	eb000000	 bl          pOutputByte
  0027c		 |$L37408|

; 395  :         }
; 396  :     }

  0027c	eaffff69	 b           |$L37405|
  00280		 |$L37406|

; 397  : 
; 398  :     pOutputByte(0);

  00280	e3a00000	 mov         r0, #0
  00284	eb000000	 bl          pOutputByte

; 399  :     c = szSprintf - pBuf;

  00288	e59f303c	 ldr         r3, [pc, #0x3C]
  0028c	e5932000	 ldr         r2, [r3]
  00290	e59d3020	 ldr         r3, [sp, #0x20]
  00294	e0423003	 sub         r3, r2, r3
  00298	e20330ff	 and         r3, r3, #0xFF
  0029c	e5cd3004	 strb        r3, [sp, #4]

; 400  :     szSprintf = 0;

  002a0	e59f2024	 ldr         r2, [pc, #0x24]
  002a4	e3a03000	 mov         r3, #0
  002a8	e5823000	 str         r3, [r2]

; 401  : 
; 402  :     va_end(vl);

  002ac	e3a03000	 mov         r3, #0
  002b0	e58d3000	 str         r3, [sp]

; 403  : 
; 404  :     return (c);

  002b4	e5dd3004	 ldrb        r3, [sp, #4]
  002b8	e58d300c	 str         r3, [sp, #0xC]
  002bc	e59d000c	 ldr         r0, [sp, #0xC]

; 405  : }

  002c0	e28dd018	 add         sp, sp, #0x18
  002c4	e89d6000	 ldmia       sp, {sp, lr}
  002c8	e12fff1e	 bx          lr
  002cc		 |$L37640|
  002cc	00000000	 DCD         |szSprintf|
  002d0		 |$M37636|

			 ENDP  ; |FormatString|

	IMPORT	|OEMWriteDebugByte|

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

  00000			 AREA	 |.pdata$$pOutputByte|, PDATA, SELECTION=5, ASSOC=|.text| { |pOutputByte| } ; comdat associative
|$T37646| DCD	|$L37645|
	DCD	0x40001603
; Function compile flags: /Ods

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

  00000		 |pOutputByte| PROC

; 417  : {

  00000		 |$L37645|
  00000	e1a0c00d	 mov         r12, sp
  00004	e92d0001	 stmdb       sp!, {r0}
  00008	e92d5000	 stmdb       sp!, {r12, lr}
  0000c		 |$M37643|

; 418  :     if (szSprintf)

  0000c	e59f3040	 ldr         r3, [pc, #0x40]
  00010	e5933000	 ldr         r3, [r3]
  00014	e3530000	 cmp         r3, #0
  00018	0a000009	 beq         |$L37492|

; 419  :         *szSprintf++ = c;

  0001c	e1dd20d8	 ldrsb       r2, [sp, #8]
  00020	e59f302c	 ldr         r3, [pc, #0x2C]
  00024	e5933000	 ldr         r3, [r3]
  00028	e5c32000	 strb        r2, [r3]
  0002c	e59f3020	 ldr         r3, [pc, #0x20]
  00030	e5933000	 ldr         r3, [r3]
  00034	e2832001	 add         r2, r3, #1
  00038	e59f3014	 ldr         r3, [pc, #0x14]
  0003c	e5832000	 str         r2, [r3]

; 420  :     else

  00040	ea000001	 b           |$L37493|
  00044		 |$L37492|

; 421  :         OEMWriteDebugByte(c);

  00044	e5dd0008	 ldrb        r0, [sp, #8]
  00048	eb000000	 bl          OEMWriteDebugByte
  0004c		 |$L37493|

; 422  : }

  0004c	e89d6000	 ldmia       sp, {sp, lr}
  00050	e12fff1e	 bx          lr
  00054		 |$L37648|
  00054	00000000	 DCD         |szSprintf|
  00058		 |$M37644|

			 ENDP  ; |pOutputByte|


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

  00000			 AREA	 |.pdata$$pOutputNumHex|, PDATA, SELECTION=5, ASSOC=|.text| { |pOutputNumHex| } ; comdat associative
|$T37654| DCD	|$L37653|
	DCD	0x40002603
; Function compile flags: /Ods

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

  00000		 |pOutputNumHex| PROC

; 435  : {

  00000		 |$L37653|
  00000	e1a0c00d	 mov         r12, sp
  00004	e92d0003	 stmdb       sp!, {r0, r1}
  00008	e92d5000	 stmdb       sp!, {r12, lr}
  0000c		 |$M37651|

; 436  :     if (depth)

  0000c	e59d300c	 ldr         r3, [sp, #0xC]
  00010	e3530000	 cmp         r3, #0
  00014	0a000002	 beq         |$L37499|

; 437  :         depth--;

  00018	e59d300c	 ldr         r3, [sp, #0xC]
  0001c	e2433001	 sub         r3, r3, #1
  00020	e58d300c	 str         r3, [sp, #0xC]
  00024		 |$L37499|

; 438  : 
; 439  :     if ((n & ~0xf) || depth)

  00024	e59d2008	 ldr         r2, [sp, #8]
  00028	e3e0300f	 mvn         r3, #0xF
  0002c	e1120003	 tst         r2, r3
  00030	1a000002	 bne         |$L37501|
  00034	e59d300c	 ldr         r3, [sp, #0xC]
  00038	e3530000	 cmp         r3, #0
  0003c	0a000006	 beq         |$L37500|
  00040		 |$L37501|

; 440  :     {
; 441  :         pOutputNumHex(n >> 4, depth);

  00040	e59d100c	 ldr         r1, [sp, #0xC]
  00044	e59d3008	 ldr         r3, [sp, #8]
  00048	e1a00223	 mov         r0, r3, lsr #4
  0004c	eb000000	 bl          pOutputNumHex

; 442  :         n &= 0xf;

  00050	e59d3008	 ldr         r3, [sp, #8]
  00054	e203300f	 and         r3, r3, #0xF
  00058	e58d3008	 str         r3, [sp, #8]
  0005c		 |$L37500|

; 443  :     }
; 444  : 
; 445  :     if (n < 10)

  0005c	e59d3008	 ldr         r3, [sp, #8]
  00060	e353000a	 cmp         r3, #0xA
  00064	2a000004	 bcs         |$L37502|

; 446  :         pOutputByte((unsigned char)(n + '0'));

  00068	e59d3008	 ldr         r3, [sp, #8]
  0006c	e2833030	 add         r3, r3, #0x30
  00070	e20300ff	 and         r0, r3, #0xFF
  00074	eb000000	 bl          pOutputByte

; 447  :     else

  00078	ea000004	 b           |$L37504|
  0007c		 |$L37502|

; 448  :         pOutputByte((unsigned char)(n - 10 + 'A'));

  0007c	e59d3008	 ldr         r3, [sp, #8]
  00080	e243300a	 sub         r3, r3, #0xA
  00084	e2833041	 add         r3, r3, #0x41
  00088	e20300ff	 and         r0, r3, #0xFF
  0008c	eb000000	 bl          pOutputByte
  00090		 |$L37504|

; 449  : }

  00090	e89d6000	 ldmia       sp, {sp, lr}
  00094	e12fff1e	 bx          lr
  00098		 |$M37652|

			 ENDP  ; |pOutputNumHex|

	IMPORT	|__rt_udiv|

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

  00000			 AREA	 |.pdata$$pOutputNumDecimal|, PDATA, SELECTION=5, ASSOC=|.text| { |pOutputNumDecimal| } ; comdat associative
|$T37662| DCD	|$L37661|
	DCD	0x40001403
; Function compile flags: /Ods

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

  00000		 |pOutputNumDecimal| PROC

; 461  : {

  00000		 |$L37661|
  00000	e1a0c00d	 mov         r12, sp
  00004	e92d0001	 stmdb       sp!, {r0}
  00008	e92d5000	 stmdb       sp!, {r12, lr}
  0000c		 |$M37659|

; 462  :     if (n >= 10)

  0000c	e59d3008	 ldr         r3, [sp, #8]
  00010	e353000a	 cmp         r3, #0xA
  00014	3a000007	 bcc         |$L37509|

; 463  :     {
; 464  :         pOutputNumDecimal(n / 10);

  00018	e59d1008	 ldr         r1, [sp, #8]
  0001c	e3a0000a	 mov         r0, #0xA
  00020	eb000000	 bl          __rt_udiv
  00024	eb000000	 bl          pOutputNumDecimal

; 465  :         n %= 10;

  00028	e59d1008	 ldr         r1, [sp, #8]
  0002c	e3a0000a	 mov         r0, #0xA
  00030	eb000000	 bl          __rt_udiv
  00034	e58d1008	 str         r1, [sp, #8]
  00038		 |$L37509|

; 466  :     }
; 467  : 
; 468  :     pOutputByte((unsigned char)(n + '0'));

  00038	e59d3008	 ldr         r3, [sp, #8]
  0003c	e2833030	 add         r3, r3, #0x30
  00040	e20300ff	 and         r0, r3, #0xFF
  00044	eb000000	 bl          pOutputByte

; 469  : }

  00048	e89d6000	 ldmia       sp, {sp, lr}
  0004c	e12fff1e	 bx          lr
  00050		 |$M37660|

			 ENDP  ; |pOutputNumDecimal|


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

  00000			 AREA	 |.pdata$$OutputString|, PDATA, SELECTION=5, ASSOC=|.text| { |OutputString| } ; comdat associative
|$T37669| DCD	|$L37668|
	DCD	0x40001a04
; Function compile flags: /Ods

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

  00000		 |OutputString| PROC

; 482  : {

  00000		 |$L37668|
  00000	e1a0c00d	 mov         r12, sp
  00004	e92d0001	 stmdb       sp!, {r0}
  00008	e92d5000	 stmdb       sp!, {r12, lr}
  0000c	e24dd004	 sub         sp, sp, #4
  00010		 |$M37666|
  00010		 |$L37515|

; 483  :     while (*s)

  00010	e59d300c	 ldr         r3, [sp, #0xC]
  00014	e5d33000	 ldrb        r3, [r3]
  00018	e3530000	 cmp         r3, #0
  0001c	0a00000e	 beq         |$L37516|

; 484  :     {
; 485  :         if (*s == '\n')

  00020	e59d300c	 ldr         r3, [sp, #0xC]
  00024	e5d33000	 ldrb        r3, [r3]
  00028	e353000a	 cmp         r3, #0xA
  0002c	1a000001	 bne         |$L37517|

; 486  :             OEMWriteDebugByte('\r');

  00030	e3a0000d	 mov         r0, #0xD
  00034	eb000000	 bl          OEMWriteDebugByte
  00038		 |$L37517|

; 487  : 
; 488  :         OEMWriteDebugByte(*s++);

  00038	e59d300c	 ldr         r3, [sp, #0xC]
  0003c	e5d33000	 ldrb        r3, [r3]
  00040	e5cd3000	 strb        r3, [sp]
  00044	e5dd0000	 ldrb        r0, [sp]
  00048	eb000000	 bl          OEMWriteDebugByte
  0004c	e59d300c	 ldr         r3, [sp, #0xC]
  00050	e2833001	 add         r3, r3, #1
  00054	e58d300c	 str         r3, [sp, #0xC]

; 489  :     }

⌨️ 快捷键说明

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