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

📄 util.cod

📁 ARM读写SD卡程序
💻 COD
📖 第 1 页 / 共 2 页
字号:
; Listing generated by Microsoft (R) Optimizing Compiler Version 12.20.9615 

	TTL	c:\wince420\platform\sdklh7a404\drivers\sdmmc\driver\.\util.c
	CODE32

  00000			 AREA	 |.drectve|, DRECTVE
	DCB	"-defaultlib:coredll.lib "
	DCB	"-defaultlib:corelibc.lib "

	EXPORT	|copybuff|
; File c:\wince420\platform\sdklh7a404\drivers\sdmmc\driver\util.c

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

  00000			 AREA	 |.pdata$$copybuff|, PDATA, SELECTION=5, ASSOC=|.text| { |copybuff| } ; comdat associative
|$T36264| DCD	|copybuff|
	DCD	0x40002c01
; Function compile flags: /Ogsy

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

  00000		 |copybuff| PROC

; 47   : {

  00000	e92d4070	 stmdb     sp!, {r4 - r6, lr}
  00004		 |$M36262|
  00004	e1a06000	 mov       r6, r0
  00008	e1a05001	 mov       r5, r1
  0000c	e1a04002	 mov       r4, r2

; 48   :         UINT16 *to;
; 49   :         UINT16 *from;
; 50   :         UINT16 dsize;
; 51   : 
; 52   :         to = (UINT16 *) vto;
; 53   : 
; 54   :         if ((ULONG)to & 0x01)

  00010	e3160001	 tst       r6, #1
  00014	0a00000f	 beq       |$L36134|

; 55   :         {
; 56   :                 for (dsize = 0; dsize < (UINT16)size; dsize++)

  00018	e1a00804	 mov       r0, r4, lsl #16
  0001c	e1a03820	 mov       r3, r0, lsr #16
  00020	e3530000	 cmp       r3, #0
  00024	9a00001f	 bls       |$L36146|
  00028	e3a01000	 mov       r1, #0
  0002c		 |$L36136|

; 57   :                         ((UCHAR *)vto)[dsize] = ((UCHAR *)vfrom)[dsize];

  0002c	e7d10005	 ldrb      r0, [r1, +r5]
  00030	e7c10006	 strb      r0, [r1, +r6]
  00034	e2811001	 add       r1, r1, #1
  00038	e1a00801	 mov       r0, r1, lsl #16
  0003c	e1a02820	 mov       r2, r0, lsr #16
  00040	e1a01802	 mov       r1, r2, lsl #16
  00044	e1a01821	 mov       r1, r1, lsr #16
  00048	e1510003	 cmp       r1, r3
  0004c	3afffff6	 bcc       |$L36136|

; 85   : #endif
; 86   :         }
; 87   : }

  00050	e8bd4070	 ldmia     sp!, {r4 - r6, lr}
  00054	e12fff1e	 bx        lr
  00058		 |$L36134|

; 58   :         }
; 59   :         else
; 60   :         {
; 61   :                 from = (UINT16 *) vfrom;

  00058	e1a00804	 mov       r0, r4, lsl #16
  0005c	e1a01840	 mov       r1, r0, asr #16

; 62   : 
; 63   :                 dsize = size >> 1;

  00060	e1a020c1	 mov       r2, r1, asr #1

; 64   : 
; 65   :                 while ( dsize-- )

  00064	e1a00802	 mov       r0, r2, lsl #16
  00068	e1b01820	 movs      r1, r0, lsr #16
  0006c	0a000008	 beq       |$L36252|
  00070		 |$L36144|
  00070	e2810cff	 add       r0, r1, #0xFF, 24
  00074	e28010ff	 add       r1, r0, #0xFF

; 66   :                         *to++ = *from++;

  00078	e0d500b2	 ldrh      r0, [r5], #2
  0007c	e1a02801	 mov       r2, r1, lsl #16
  00080	e1a03822	 mov       r3, r2, lsr #16
  00084	e1a01803	 mov       r1, r3, lsl #16
  00088	e0c600b2	 strh      r0, [r6], #2
  0008c	e1b01821	 movs      r1, r1, lsr #16
  00090	1afffff6	 bne       |$L36144|
  00094		 |$L36252|

; 67   : 
; 68   : #if (UTEXT_SIZE)
; 69   :                 if (size & 1)
; 70   :                 {
; 71   :                         dsize = *to;
; 72   :                         *to = *from;
; 73   : #if (LITTLE_ENDIAN)
; 74   :                         *to &= 0x00FF;  
; 75   :                         dsize &= 0xFF00;
; 76   : #else
; 77   :                         *to &= 0xFF00;  
; 78   :                         dsize &= 0x00FF;
; 79   : #endif
; 80   :                         *to |= dsize;
; 81   :                 }
; 82   : #else
; 83   :                 if (size & 1)

  00094	e1a00804	 mov       r0, r4, lsl #16
  00098	e1a01820	 mov       r1, r0, lsr #16
  0009c	e3110001	 tst       r1, #1

; 84   :                         *((UCHAR *)to) = *((UCHAR *)from);

  000a0	15d50000	 ldrneb    r0, [r5]
  000a4	15c60000	 strneb    r0, [r6]
  000a8		 |$L36146|

; 85   : #endif
; 86   :         }
; 87   : }

  000a8	e8bd4070	 ldmia     sp!, {r4 - r6, lr}
  000ac	e12fff1e	 bx        lr
  000b0		 |$M36263|

			 ENDP  ; |copybuff|

	EXPORT	|compbuff|

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

  00000			 AREA	 |.pdata$$compbuff|, PDATA, SELECTION=5, ASSOC=|.text| { |compbuff| } ; comdat associative
|$T36280| DCD	|compbuff|
	DCD	0x40001e01
; Function compile flags: /Ogsy

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

  00000		 |compbuff| PROC

; 110  : {

  00000	e92d4010	 stmdb     sp!, {r4, lr}
  00004		 |$M36278|
  00004	e1a04000	 mov       r4, r0
  00008	e1a03001	 mov       r3, r1

; 111  :         UCHAR *str1 = (UCHAR *) vfrom;
; 112  :         UCHAR *str2 = (UCHAR *) vto;
; 113  : 
; 114  :         while ( size-- )

  0000c	e1a00802	 mov       r0, r2, lsl #16
  00010	e1b01820	 movs      r1, r0, lsr #16
  00014	0a00000e	 beq       |$L36271|
  00018	e0433004	 sub       r3, r3, r4
  0001c		 |$L36161|
  0001c	e1a00802	 mov       r0, r2, lsl #16
  00020	e1a01840	 mov       r1, r0, asr #16
  00024	e2412001	 sub       r2, r1, #1

; 115  :         {
; 116  :                 if ( *str1 < *str2 )

  00028	e7d31004	 ldrb      r1, [r3, +r4]
  0002c	e1a00802	 mov       r0, r2, lsl #16
  00030	e1a02840	 mov       r2, r0, asr #16
  00034	e5d40000	 ldrb      r0, [r4]
  00038	e1500001	 cmp       r0, r1
  0003c	3a000007	 bcc       |$L36269|

; 118  :                 if ( *str1 > *str2 )

  00040	8a000009	 bhi       |$L36270|
  00044	e1a00802	 mov       r0, r2, lsl #16

; 120  :                 str1++;

  00048	e2844001	 add       r4, r4, #1
  0004c	e1b01820	 movs      r1, r0, lsr #16
  00050	1afffff1	 bne       |$L36161|
  00054		 |$L36271|

; 121  :                 str2++;
; 122  :         }
; 123  : 
; 124  :         return 0;

  00054	e3a00000	 mov       r0, #0

; 125  : }

  00058	e8bd4010	 ldmia     sp!, {r4, lr}
  0005c	e12fff1e	 bx        lr
  00060		 |$L36269|

; 117  :                         return -1;

  00060	e3e00000	 mvn       r0, #0

; 125  : }

  00064	e8bd4010	 ldmia     sp!, {r4, lr}
  00068	e12fff1e	 bx        lr
  0006c		 |$L36270|

; 119  :                         return  1;

  0006c	e3a00001	 mov       r0, #1

; 125  : }

  00070	e8bd4010	 ldmia     sp!, {r4, lr}
  00074	e12fff1e	 bx        lr
  00078		 |$M36279|

			 ENDP  ; |compbuff|

	EXPORT	|pc_memfill|

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

  00000			 AREA	 |.pdata$$pc_memfill|, PDATA, SELECTION=5, ASSOC=|.text| { |pc_memfill| } ; comdat associative
|$T36295| DCD	|pc_memfill|
	DCD	0x40000f01
; Function compile flags: /Ogsy

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

  00000		 |pc_memfill| PROC

; 147  : {

  00000	e92d4010	 stmdb     sp!, {r4, lr}
  00004		 |$M36293|
  00004	e1a04000	 mov       r4, r0
  00008	e1a03002	 mov       r3, r2

; 148  :         UINT16 dsize;
; 149  : 
; 150  : #if (UTEXT_SIZE)
; 151  :         UINT16 *to = (UINT16 *) vto;
; 152  : 
; 153  :         dsize = size >> 1;
; 154  : #else
; 155  :         UCHAR *to = (UCHAR *) vto;
; 156  : 
; 157  :         dsize = size;
; 158  : #endif
; 159  : 
; 160  :         while ( dsize-- )

  0000c	e1a00801	 mov       r0, r1, lsl #16
  00010	ea000005	 b         |$L36292|
  00014		 |$L36176|
  00014	e2820cff	 add       r0, r2, #0xFF, 24

; 161  :                 *to++ = c;

  00018	e4c43001	 strb      r3, [r4], #1
  0001c	e28010ff	 add       r1, r0, #0xFF
  00020	e1a02801	 mov       r2, r1, lsl #16
  00024	e1a00822	 mov       r0, r2, lsr #16
  00028	e1a00800	 mov       r0, r0, lsl #16
  0002c		 |$L36292|

; 148  :         UINT16 dsize;
; 149  : 
; 150  : #if (UTEXT_SIZE)
; 151  :         UINT16 *to = (UINT16 *) vto;
; 152  : 
; 153  :         dsize = size >> 1;
; 154  : #else
; 155  :         UCHAR *to = (UCHAR *) vto;
; 156  : 
; 157  :         dsize = size;
; 158  : #endif
; 159  : 

⌨️ 快捷键说明

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