📄 diskmain.cod
字号:
00000 AREA |.text| { |?IsDMASupported@CDisk@@QAAHXZ| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$?IsDMASupported@CDisk@@QAAHXZ|, PDATA, SELECTION=5, ASSOC=|.text| { |?IsDMASupported@CDisk@@QAAHXZ| } ; comdat associative
|$T33197| DCD |$L33196|
DCD 0x40000900
; Function compile flags: /Ogsy
00000 AREA |.text| { |?IsDMASupported@CDisk@@QAAHXZ| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |?IsDMASupported@CDisk@@QAAHXZ| PROC ; CDisk::IsDMASupported
; 142 : BOOL CDisk::IsDMASupported() { return ((m_Id.Capabilities & IDENTIFY_CAPABILITIES_DMA_SUPPORTED) && m_fDMAActive); }
00000 |$L33196|
00000 |$M33194|
00000 e5d024f2 ldrb r2, [r0, #0x4F2]
00004 e5d034f3 ldrb r3, [r0, #0x4F3]
00008 e1823403 orr r3, r2, r3, lsl #8
0000c e3130c01 tst r3, #1, 24
00010 15903044 ldrne r3, [r0, #0x44]
00014 13530000 cmpne r3, #0
00018 13a00001 movne r0, #1
0001c 03a00000 moveq r0, #0
00020 e12fff1e bx lr
00024 |$M33195|
ENDP ; |?IsDMASupported@CDisk@@QAAHXZ|, CDisk::IsDMASupported
EXPORT |?IsDRQTypeIRQ@CDisk@@QAAHXZ| ; CDisk::IsDRQTypeIRQ
00000 AREA |.text| { |?IsDRQTypeIRQ@CDisk@@QAAHXZ| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$?IsDRQTypeIRQ@CDisk@@QAAHXZ|, PDATA, SELECTION=5, ASSOC=|.text| { |?IsDRQTypeIRQ@CDisk@@QAAHXZ| } ; comdat associative
|$T33209| DCD |$L33208|
DCD 0x40000800
; Function compile flags: /Ogsy
00000 AREA |.text| { |?IsDRQTypeIRQ@CDisk@@QAAHXZ| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |?IsDRQTypeIRQ@CDisk@@QAAHXZ| PROC ; CDisk::IsDRQTypeIRQ
; 143 : BOOL CDisk::IsDRQTypeIRQ() { return ((m_Id.GeneralConfiguration >> 5) & 0x0003) == ATA_DRQTYPE_INTRQ; }
00000 |$L33208|
00000 |$M33206|
00000 e5d02490 ldrb r2, [r0, #0x490]
00004 e5d03491 ldrb r3, [r0, #0x491]
00008 e1823403 orr r3, r2, r3, lsl #8
0000c e2033060 and r3, r3, #0x60
00010 e3530020 cmp r3, #0x20
00014 03a00001 moveq r0, #1
00018 13a00000 movne r0, #0
0001c e12fff1e bx lr
00020 |$M33207|
ENDP ; |?IsDRQTypeIRQ@CDisk@@QAAHXZ|, CDisk::IsDRQTypeIRQ
EXPORT |?GetPacketSize@CDisk@@QAAGXZ| ; CDisk::GetPacketSize
00000 AREA |.text| { |?GetPacketSize@CDisk@@QAAGXZ| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$?GetPacketSize@CDisk@@QAAGXZ|, PDATA, SELECTION=5, ASSOC=|.text| { |?GetPacketSize@CDisk@@QAAGXZ| } ; comdat associative
|$T33221| DCD |$L33220|
DCD 0x40000900
; Function compile flags: /Ogsy
00000 AREA |.text| { |?GetPacketSize@CDisk@@QAAGXZ| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |?GetPacketSize@CDisk@@QAAGXZ| PROC ; CDisk::GetPacketSize
; 144 : WORD CDisk::GetPacketSize() { return m_Id.GeneralConfiguration & 0x0003 ? 16 : 12; }
00000 |$L33220|
00000 |$M33218|
00000 e5d02490 ldrb r2, [r0, #0x490]
00004 e5d03491 ldrb r3, [r0, #0x491]
00008 e1823403 orr r3, r2, r3, lsl #8
0000c e3130003 tst r3, #3
00010 13a03010 movne r3, #0x10
00014 03a0300c moveq r3, #0xC
00018 e1a00803 mov r0, r3, lsl #16
0001c e1a00820 mov r0, r0, lsr #16
00020 e12fff1e bx lr
00024 |$M33219|
ENDP ; |?GetPacketSize@CDisk@@QAAGXZ|, CDisk::GetPacketSize
EXPORT |?IsValidCommandSupportInfo@CDisk@@QAAHXZ| ; CDisk::IsValidCommandSupportInfo
00000 AREA |.text| { |?IsValidCommandSupportInfo@CDisk@@QAAHXZ| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$?IsValidCommandSupportInfo@CDisk@@QAAHXZ|, PDATA, SELECTION=5, ASSOC=|.text| { |?IsValidCommandSupportInfo@CDisk@@QAAHXZ| } ; comdat associative
|$T33233| DCD |$L33232|
DCD 0x40000a00
; Function compile flags: /Ogsy
00000 AREA |.text| { |?IsValidCommandSupportInfo@CDisk@@QAAHXZ| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |?IsValidCommandSupportInfo@CDisk@@QAAHXZ| PROC ; CDisk::IsValidCommandSupportInfo
; 145 : BOOL CDisk::IsValidCommandSupportInfo() { return ((m_Id.CommandSetSupported2 & (1 << 14)) && !(m_Id.CommandSetSupported2 & (1 << 15))); }
00000 |$L33232|
00000 |$M33230|
00000 e5d02536 ldrb r2, [r0, #0x536]
00004 e5d03537 ldrb r3, [r0, #0x537]
00008 e1823403 orr r3, r2, r3, lsl #8
0000c e3130901 tst r3, #1, 18
00010 0a000002 beq |$L33225|
00014 e3130902 tst r3, #2, 18
00018 03a00001 moveq r0, #1
0001c 012fff1e bxeq lr
00020 |$L33225|
00020 e3a00000 mov r0, #0
00024 e12fff1e bx lr
00028 |$M33231|
ENDP ; |?IsValidCommandSupportInfo@CDisk@@QAAHXZ|, CDisk::IsValidCommandSupportInfo
EXPORT |?IsWriteCacheSupported@CDisk@@QAAHXZ| ; CDisk::IsWriteCacheSupported
00000 AREA |.text| { |?IsWriteCacheSupported@CDisk@@QAAHXZ| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$?IsWriteCacheSupported@CDisk@@QAAHXZ|, PDATA, SELECTION=5, ASSOC=|.text| { |?IsWriteCacheSupported@CDisk@@QAAHXZ| } ; comdat associative
|$T33253| DCD |$L33252|
DCD 0x40000f00
; Function compile flags: /Ogsy
00000 AREA |.text| { |?IsWriteCacheSupported@CDisk@@QAAHXZ| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |?IsWriteCacheSupported@CDisk@@QAAHXZ| PROC ; CDisk::IsWriteCacheSupported
; 146 : BOOL CDisk::IsWriteCacheSupported() { return ((m_Id.CommandSetSupported1 & COMMAND_SET_WRITE_CACHE_SUPPORTED) && IsValidCommandSupportInfo()); }
00000 |$L33252|
00000 |$M33250|
00000 e5d02534 ldrb r2, [r0, #0x534]
00004 e5d03535 ldrb r3, [r0, #0x535]
00008 e1823403 orr r3, r2, r3, lsl #8
0000c e3130020 tst r3, #0x20
00010 0a000007 beq |$L33237|
00014 e5d02536 ldrb r2, [r0, #0x536]
00018 e5d03537 ldrb r3, [r0, #0x537]
0001c e1823403 orr r3, r2, r3, lsl #8
00020 e3130901 tst r3, #1, 18
00024 0a000002 beq |$L33237|
00028 e3130902 tst r3, #2, 18
0002c 03a00001 moveq r0, #1
00030 012fff1e bxeq lr
00034 |$L33237|
00034 e3a00000 mov r0, #0
00038 e12fff1e bx lr
0003c |$M33251|
ENDP ; |?IsWriteCacheSupported@CDisk@@QAAHXZ|, CDisk::IsWriteCacheSupported
EXPORT |?IsPMSupported@CDisk@@QAAHXZ| ; CDisk::IsPMSupported
00000 AREA |.text| { |?IsPMSupported@CDisk@@QAAHXZ| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$?IsPMSupported@CDisk@@QAAHXZ|, PDATA, SELECTION=5, ASSOC=|.text| { |?IsPMSupported@CDisk@@QAAHXZ| } ; comdat associative
|$T33273| DCD |$L33272|
DCD 0x40000f00
; Function compile flags: /Ogsy
00000 AREA |.text| { |?IsPMSupported@CDisk@@QAAHXZ| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |?IsPMSupported@CDisk@@QAAHXZ| PROC ; CDisk::IsPMSupported
; 147 : BOOL CDisk::IsPMSupported() { return (m_Id.CommandSetSupported1 & COMMAND_SET_POWER_MANAGEMENT_SUPPORTED && IsValidCommandSupportInfo()); }
00000 |$L33272|
00000 |$M33270|
00000 e5d02534 ldrb r2, [r0, #0x534]
00004 e5d03535 ldrb r3, [r0, #0x535]
00008 e1823403 orr r3, r2, r3, lsl #8
0000c e3130008 tst r3, #8
00010 0a000007 beq |$L33257|
00014 e5d02536 ldrb r2, [r0, #0x536]
00018 e5d03537 ldrb r3, [r0, #0x537]
0001c e1823403 orr r3, r2, r3, lsl #8
00020 e3130901 tst r3, #1, 18
00024 0a000002 beq |$L33257|
00028 e3130902 tst r3, #2, 18
0002c 03a00001 moveq r0, #1
00030 012fff1e bxeq lr
00034 |$L33257|
00034 e3a00000 mov r0, #0
00038 e12fff1e bx lr
0003c |$M33271|
ENDP ; |?IsPMSupported@CDisk@@QAAHXZ|, CDisk::IsPMSupported
EXPORT |?IsPMEnabled@CDisk@@QAAHXZ| ; CDisk::IsPMEnabled
00000 AREA |.text| { |?IsPMEnabled@CDisk@@QAAHXZ| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$?IsPMEnabled@CDisk@@QAAHXZ|, PDATA, SELECTION=5, ASSOC=|.text| { |?IsPMEnabled@CDisk@@QAAHXZ| } ; comdat associative
|$T33285| DCD |$L33284|
DCD 0x40000d01
; Function compile flags: /Ogsy
00000 AREA |.text| { |?IsPMEnabled@CDisk@@QAAHXZ| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |?IsPMEnabled@CDisk@@QAAHXZ| PROC ; CDisk::IsPMEnabled
; 148 : BOOL CDisk::IsPMEnabled() { return (IsPMSupported() && (m_Id.CommandSetFeatureEnabled1 & COMMAND_SET_POWER_MANAGEMENT_ENABLED)); }
00000 |$L33284|
00000 e92d4010 stmdb sp!, {r4, lr}
00004 |$M33282|
00004 e1a04000 mov r4, r0
00008 eb000000 bl |?IsPMSupported@CDisk@@QAAHXZ|
0000c e3500000 cmp r0, #0
00010 15d4253a ldrneb r2, [r4, #0x53A]
00014 15d4353b ldrneb r3, [r4, #0x53B]
00018 11823403 orrne r3, r2, r3, lsl #8
0001c 13130008 tstne r3, #8
00020 13a00001 movne r0, #1
00024 18bd4010 ldmneia sp!, {r4, lr}
00028 03a00000 moveq r0, #0
0002c 08bd4010 ldmeqia sp!, {r4, lr}
00030 e12fff1e bx lr
00034 |$M33283|
ENDP ; |?IsPMEnabled@CDisk@@QAAHXZ|, CDisk::IsPMEnabled
EXPORT |?SetActiveKey@CDisk@@QAAXPAG@Z| ; CDisk::SetActiveKey
IMPORT |wcsncpy|
00000 AREA |.text| { |?SetActiveKey@CDisk@@QAAXPAG@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$?SetActiveKey@CDisk@@QAAXPAG@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?SetActiveKey@CDisk@@QAAXPAG@Z| } ; comdat associative
|$T33295| DCD |$L33294|
DCD 0x40000b01
; Function compile flags: /Ogsy
00000 AREA |.text| { |?SetActiveKey@CDisk@@QAAXPAG@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |?SetActiveKey@CDisk@@QAAXPAG@Z| PROC ; CDisk::SetActiveKey
; 152 : {
00000 |$L33294|
00000 e92d4010 stmdb sp!, {r4, lr}
00004 |$M33292|
00004 e1a04000 mov r4, r0
; 153 : wcsncpy(m_szActiveKey, szActiveKey, MAX_PATH - 1);
00008 e3a02c01 mov r2, #1, 24
0000c e3822003 orr r2, r2, #3
00010 e2840070 add r0, r4, #0x70
00014 eb000000 bl wcsncpy
; 154 : m_szActiveKey[MAX_PATH - 1] = 0;
00018 e2843c02 add r3, r4, #2, 24
0001c e3a02000 mov r2, #0
00020 e1c327b6 strh r2, [r3, #0x76]
; 155 : }
00024 e8bd4010 ldmia sp!, {r4, lr}
00028 e12fff1e bx lr
0002c |$M33293|
ENDP ; |?SetActiveKey@CDisk@@QAAXPAG@Z|, CDisk::SetActiveKey
EXPORT |?SetDeviceKey@CDisk@@QAAXPAG@Z| ; CDisk::SetDeviceKey
00000 AREA |.text| { |?SetDeviceKey@CDisk@@QAAXPAG@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$?SetDeviceKey@CDisk@@QAAXPAG@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?SetDeviceKey@CDisk@@QAAXPAG@Z| } ; comdat associative
|$T33304| DCD |$L33303|
DCD 0x40000b01
; Function compile flags: /Ogsy
00000 AREA |.text| { |?SetDeviceKey@CDisk@@QAAXPAG@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |?SetDeviceKey@CDisk@@QAAXPAG@Z| PROC ; CDisk::SetDeviceKey
; 158 : {
00000 |$L33303|
00000 e92d4010 stmdb sp!, {r4, lr}
00004 |$M33301|
00004 e1a04000 mov r4, r0
; 159 : wcsncpy(m_szDeviceKey, szDeviceKey, MAX_PATH - 1);
00008 e3a02c01 mov r2, #1, 24
0000c e3822003 orr r2, r2, #3
00010 e2840f9e add r0, r4, #0x9E, 30
00014 eb000000 bl wcsncpy
; 160 : m_szDeviceKey[MAX_PATH - 1] = 0;
00018 e2843b01 add r3, r4, #1, 22
0001c e3a02000 mov r2, #0
00020 e1c327be strh r2, [r3, #0x7E]
; 161 : }
00024 e8bd4010 ldmia sp!, {r4, lr}
00028 e12fff1e bx lr
0002c |$M33302|
ENDP ; |?SetDeviceKey@CDisk@@QAAXPAG@Z|, CDisk::SetDeviceKey
00000 AREA |.text| { |?ConfigureRegisterBlock@CDisk@@UAAXK@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$?ConfigureRegisterBlock@CDisk@@UAAXK@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?ConfigureRegisterBlock@CDisk@@UAAXK@Z| } ; comdat associative
|$T33313| DCD |$L33312|
DCD 0x40001501
; Function compile flags: /Ogsy
00000 AREA |.text| { |?ConfigureRegisterBlock@CDisk@@UAAXK@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |?ConfigureRegisterBlock@CDisk@@UAAXK@Z| PROC ; CDisk::ConfigureRegisterBlock
; 237 : {
00000 |$L33312|
00000 e92d40f0 stmdb sp!, {r4 - r7, lr}
00004 |$M33310|
; 238 :
; 239 : m_dwStride = dwStride;
; 240 : m_dwDataDrvCtrlOffset = ATA_REG_DATA * dwStride;
; 241 : m_dwFeatureErrorOffset = ATA_REG_FEATURE * dwStride;
; 242 : m_dwSectCntReasonOffset = ATA_REG_SECT_CNT * dwStride;
; 243 : m_dwSectNumOffset = ATA_REG_SECT_NUM * dwStride;
; 244 : m_dwDrvHeadOffset = ATA_REG_DRV_HEAD * dwStride;
00004 e0813081 add r3, r1, r1, lsl #1
00008 e1a03083 mov r3, r3, lsl #1
0000c e3a07000 mov r7, #0
00010 e1a02081 mov r2, r1, lsl #1
00014 e081e081 add lr, r1, r1, lsl #1
; 245 : m_dwCommandStatusOffset = ATA_REG_COMMAND * dwStride;
00018 e0614181 rsb r4, r1, r1, lsl #3
; 246 : m_dwByteCountLowOffset = ATA_REG_BYTECOUNTLOW * dwStride;
0001c e1a05101 mov r5, r1, lsl #2
; 247 : m_dwByteCountHighOffset = ATA_REG_BYTECOUNTHIGH * dwStride;
00020 e0816101 add r6, r1, r1, lsl #2
00024 e280c020 add r12, r0, #0x20
00028 e88c0018 stmia r12, {r3, r4}
; 248 : m_dwAltStatusOffset = ATA_REG_ALT_STATUS_CS1 * dwStride;
0002c e5803028 str r3, [r0, #0x28]
; 249 : m_dwAltDrvCtrl = ATA_REG_DRV_CTRL_CS1 * dwStride;
00030 e580302c str r3, [r0, #0x2C]
00034 e280c004 add r12, r0, #4
00038 e88c0082 stmia r12, {r1, r7}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -