📄 ioconst.cod
字号:
; Listing generated by Microsoft (R) Optimizing Compiler Version 12.20.9615
TTL c:\wince420\platform\sdklh7a404\drivers\sdmmc\driver\.\ioconst.c
CODE32
00000 AREA |.drectve|, DRECTVE
DCB "-defaultlib:coredll.lib "
DCB "-defaultlib:corelibc.lib "
EXPORT |io_mapped_addresses| [ DATA ]
EXPORT |drvs_per_controller| [ DATA ]
EXPORT |drive_ptr| [ DATA ]
00000 AREA |.data|, DATA
COMMON |multipleRdWr|, 0x2
COMMON |controller_s|, 0x3c
COMMON |ddrive1|, 0x20
00000 AREA |.rdata|, DATA, READONLY
|io_mapped_addresses| DCW 0x278
% 2
|drvs_per_controller| DCW 0x1
00000 AREA |.data|, DATA
|drive_ptr| DCD |ddrive1|
EXPORT |clear_controller_structure|
; File c:\wince420\platform\sdklh7a404\drivers\sdmmc\driver\ioconst.c
00000 AREA |.text| { |clear_controller_structure| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$clear_controller_structure|, PDATA, SELECTION=5, ASSOC=|.text| { |clear_controller_structure| } ; comdat associative
|$T35933| DCD |clear_controller_structure|
DCD 0x40003601
; Function compile flags: /Ogsy
00000 AREA |.text| { |clear_controller_structure| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |clear_controller_structure| PROC
; 192 : {
00000 e92d47f0 stmdb sp!, {r4 - r10, lr}
00004 |$M35931|
; 193 : PDEVICE_CONTROLLER pc;
; 194 : INT16 i, j;
; 195 :
; 196 :
; 197 : for (i = 0; i < N_INTERFACES; i++)
00004 e59f60c8 ldr r6, [pc, #0xC8]
00008 e3a0a000 mov r10, #0
0000c e59f50bc ldr r5, [pc, #0xBC]
00010 e59f40b4 ldr r4, [pc, #0xB4]
00014 e1a0900a mov r9, r10
00018 e59f30a8 ldr r3, [pc, #0xA8]
0001c |$L35909|
; 198 : {
; 199 :
; 200 : pc = &controller_s[i];
0001c e0690209 rsb r0, r9, r9, lsl #4
00020 e0838100 add r8, r3, r0, lsl #2
; 201 : pc->mode = NO;
; 202 : pc->controller_number = -1;
00024 e3e00000 mvn r0, #0
00028 e1c8a2b0 strh r10, [r8, #0x20]
0002c e1c801b4 strh r0, [r8, #0x14]
; 203 : pc->interrupt_number = -1;
00030 e3e01000 mvn r1, #0
; 204 : pc->opencount = NO;
; 205 : #if (USE_MEMMODE)
; 206 : pc->register_file_address = (FPTR08)mem_mapped_addresses_pointer[i];
; 207 : #else
; 208 : pc->register_file_address = io_mapped_addresses[i];
00034 e0840089 add r0, r4, r9, lsl #1
00038 e1c811b2 strh r1, [r8, #0x12]
0003c e1d010b0 ldrh r1, [r0]
; 209 : #endif
; 210 :
; 211 : pc->drive = (DRIVE_DESC *)drive_ptr[i];
; 212 :
; 213 : for (j = 0; j < drvs_per_controller[i]; j++)
00040 e0867089 add r7, r6, r9, lsl #1
00044 e7950109 ldr r0, [r5, +r9, lsl #2]
00048 e1c8a1b0 strh r10, [r8, #0x10]
0004c e5880000 str r0, [r8]
00050 e1d700f0 ldrsh r0, [r7]
00054 e1c810b8 strh r1, [r8, #8]
00058 e3500000 cmp r0, #0
0005c da000010 ble |$L35910|
00060 e1a0200a mov r2, r10
00064 |$L35913|
; 214 : {
; 215 : pc->drive[j].features = NO;
00064 e5980000 ldr r0, [r8]
00068 e0801282 add r1, r0, r2, lsl #5
0006c e1c1a0bc strh r10, [r1, #0xC]
; 216 : pc->drive[j].drv_type = NO;
00070 e5980000 ldr r0, [r8]
00074 e0801282 add r1, r0, r2, lsl #5
00078 e581a010 str r10, [r1, #0x10]
0007c e2821001 add r1, r2, #1
; 217 : pc->drive[j].total_lba = 0L;
00080 e5980000 ldr r0, [r8]
00084 e780a282 str r10, [r0, +r2, lsl #5]
00088 e1a00801 mov r0, r1, lsl #16
0008c e1a02840 mov r2, r0, asr #16
00090 e1d700f0 ldrsh r0, [r7]
00094 e1a01802 mov r1, r2, lsl #16
00098 e1a02841 mov r2, r1, asr #16
0009c e1520000 cmp r2, r0
000a0 baffffef blt |$L35913|
000a4 |$L35910|
; 193 : PDEVICE_CONTROLLER pc;
; 194 : INT16 i, j;
; 195 :
; 196 :
; 197 : for (i = 0; i < N_INTERFACES; i++)
000a4 e2890001 add r0, r9, #1
000a8 e1a01800 mov r1, r0, lsl #16
000ac e1a02841 mov r2, r1, asr #16
000b0 e1a00802 mov r0, r2, lsl #16
000b4 e1a09840 mov r9, r0, asr #16
000b8 e3590001 cmp r9, #1
000bc baffffd6 blt |$L35909|
; 218 : }
; 219 : }
; 220 : }
000c0 e8bd47f0 ldmia sp!, {r4 - r10, lr}
000c4 e12fff1e bx lr
000c8 |$L35935|
000c8 00000000 DCD |controller_s|
000cc 00000000 DCD |io_mapped_addresses|
000d0 00000000 DCD |drive_ptr|
000d4 00000000 DCD |drvs_per_controller|
000d8 |$M35932|
ENDP ; |clear_controller_structure|
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -