📄 device.cod
字号:
; Listing generated by Microsoft (R) Optimizing Compiler Version 13.10.4091
TTL E:\WINCE500\PLATFORM\BERRYDALE\SRC\DRIVERS\dm9000\.\device.cpp
CODE32
00000 AREA |.drectve|, DRECTVE
DCB "-defaultlib:coredll.lib "
DCB "-defaultlib:corelibc.lib "
EXPORT |?Constructor@C_Exception@@QAAXPAEK@Z| ; C_Exception::Constructor
IMPORT |NdisInitializeString|
; File e:\wince500\platform\berrydale\src\drivers\dm9000\common.h
00000 AREA |.text| { |?Constructor@C_Exception@@QAAXPAEK@Z| }, CODE, ARM, SELECTION=2 ; comdat any
00000 AREA |.pdata$$?Constructor@C_Exception@@QAAXPAEK@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?Constructor@C_Exception@@QAAXPAEK@Z| } ; comdat associative
|$T35600| DCD |$L35599|
DCD 0x40000501
; Function compile flags: /Ogsy
00000 AREA |.text| { |?Constructor@C_Exception@@QAAXPAEK@Z| }, CODE, ARM, SELECTION=2 ; comdat any
00000 |?Constructor@C_Exception@@QAAXPAEK@Z| PROC ; C_Exception::Constructor
; 122 : {
00000 |$L35599|
00000 e52de004 str lr, [sp, #-4]!
00004 |$M35597|
; 123 : m_uErrorCode = uError;
00004 e4802004 str r2, [r0], #4
; 124 : NdisInitializeString(&m_ndisErrorMessage,ptrErr);
00008 eb000000 bl NdisInitializeString
; 125 : };
0000c e49de004 ldr lr, [sp], #4
00010 e12fff1e bx lr
00014 |$M35598|
ENDP ; |?Constructor@C_Exception@@QAAXPAEK@Z|, C_Exception::Constructor
EXPORT |?TryLock@CMutex@@QAAHXZ| ; CMutex::TryLock
IMPORT |TryEnterCriticalSection|
00000 AREA |.text| { |?TryLock@CMutex@@QAAHXZ| }, CODE, ARM, SELECTION=2 ; comdat any
00000 AREA |.pdata$$?TryLock@CMutex@@QAAHXZ|, PDATA, SELECTION=5, ASSOC=|.text| { |?TryLock@CMutex@@QAAHXZ| } ; comdat associative
|$T35610| DCD |$L35609|
DCD 0x40000401
; Function compile flags: /Ogsy
00000 AREA |.text| { |?TryLock@CMutex@@QAAHXZ| }, CODE, ARM, SELECTION=2 ; comdat any
00000 |?TryLock@CMutex@@QAAHXZ| PROC ; CMutex::TryLock
; 281 : {
00000 |$L35609|
00000 e52de004 str lr, [sp, #-4]!
00004 |$M35607|
; 282 : return TryEnterCriticalSection(&m_Critical);
00004 eb000000 bl TryEnterCriticalSection
; 283 : };
00008 e49de004 ldr lr, [sp], #4
0000c e12fff1e bx lr
00010 |$M35608|
ENDP ; |?TryLock@CMutex@@QAAHXZ|, CMutex::TryLock
EXPORT |?Release@CMutex@@QAAXXZ| ; CMutex::Release
IMPORT |LeaveCriticalSection|
00000 AREA |.text| { |?Release@CMutex@@QAAXXZ| }, CODE, ARM, SELECTION=2 ; comdat any
00000 AREA |.pdata$$?Release@CMutex@@QAAXXZ|, PDATA, SELECTION=5, ASSOC=|.text| { |?Release@CMutex@@QAAXXZ| } ; comdat associative
|$T35618| DCD |$L35617|
DCD 0x40000401
; Function compile flags: /Ogsy
00000 AREA |.text| { |?Release@CMutex@@QAAXXZ| }, CODE, ARM, SELECTION=2 ; comdat any
00000 |?Release@CMutex@@QAAXXZ| PROC ; CMutex::Release
; 292 : {
00000 |$L35617|
00000 e52de004 str lr, [sp, #-4]!
00004 |$M35615|
; 293 : LeaveCriticalSection(&m_Critical);
00004 eb000000 bl LeaveCriticalSection
; 294 : };
00008 e49de004 ldr lr, [sp], #4
0000c e12fff1e bx lr
00010 |$M35616|
ENDP ; |?Release@CMutex@@QAAXXZ|, CMutex::Release
EXPORT |?GetNdisHandle@NIC_DRIVER_OBJECT@@QAAPAXXZ| ; NIC_DRIVER_OBJECT::GetNdisHandle
; File e:\wince500\platform\berrydale\src\drivers\dm9000\driver.h
00000 AREA |.text| { |?GetNdisHandle@NIC_DRIVER_OBJECT@@QAAPAXXZ| }, CODE, ARM, SELECTION=2 ; comdat any
00000 AREA |.pdata$$?GetNdisHandle@NIC_DRIVER_OBJECT@@QAAPAXXZ|, PDATA, SELECTION=5, ASSOC=|.text| { |?GetNdisHandle@NIC_DRIVER_OBJECT@@QAAPAXXZ| } ; comdat associative
|$T35628| DCD |$L35627|
DCD 0x40000200
; Function compile flags: /Ogsy
00000 AREA |.text| { |?GetNdisHandle@NIC_DRIVER_OBJECT@@QAAPAXXZ| }, CODE, ARM, SELECTION=2 ; comdat any
00000 |?GetNdisHandle@NIC_DRIVER_OBJECT@@QAAPAXXZ| PROC ; NIC_DRIVER_OBJECT::GetNdisHandle
; 284 : NDIS_HANDLE GetNdisHandle() { return m_NdisHandle; };
00000 |$L35627|
00000 |$M35625|
00000 e5900014 ldr r0, [r0, #0x14]
00004 e12fff1e bx lr
00008 |$M35626|
ENDP ; |?GetNdisHandle@NIC_DRIVER_OBJECT@@QAAPAXXZ|, NIC_DRIVER_OBJECT::GetNdisHandle
EXPORT |?DeviceCalculateCRC32@NIC_DEVICE_OBJECT@@QAAKPAEHH@Z| ; NIC_DEVICE_OBJECT::DeviceCalculateCRC32
; File e:\wince500\platform\berrydale\src\drivers\dm9000\device.cpp
00000 AREA |.text| { |?DeviceCalculateCRC32@NIC_DEVICE_OBJECT@@QAAKPAEHH@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$?DeviceCalculateCRC32@NIC_DEVICE_OBJECT@@QAAKPAEHH@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?DeviceCalculateCRC32@NIC_DEVICE_OBJECT@@QAAKPAEHH@Z| } ; comdat associative
|$T35655| DCD |$L35654|
DCD 0x40002701
; Function compile flags: /Ogsy
00000 AREA |.text| { |?DeviceCalculateCRC32@NIC_DEVICE_OBJECT@@QAAKPAEHH@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |?DeviceCalculateCRC32@NIC_DEVICE_OBJECT@@QAAKPAEHH@Z| PROC ; NIC_DEVICE_OBJECT::DeviceCalculateCRC32
; 115 : {
00000 |$L35654|
00000 e92d43f0 stmdb sp!, {r4 - r9, lr}
00004 |$M35652|
00004 e1a08003 mov r8, r3
00008 e1a06002 mov r6, r2
0000c e1a09001 mov r9, r1
; 116 : U32 Crc, Carry;
; 117 : int i, j;
; 118 : U8 CurByte;
; 119 :
; 120 : Crc = 0xffffffff;
00010 e3e0e000 mvn lr, #0
; 121 :
; 122 : for (i = 0; i < nLength; i++) {
00014 e3a00000 mov r0, #0
00018 e3560000 cmp r6, #0
0001c da000011 ble |$L35316|
00020 e59f7070 ldr r7, [pc, #0x70]
00024 |$L35314|
; 123 :
; 124 : CurByte = ptrBuffer[i];
00024 e7d02009 ldrb r2, [r0, +r9]
00028 e3a05008 mov r5, #8
0002c |$L35317|
; 125 :
; 126 : for (j = 0; j < 8; j++) {
; 127 :
; 128 : Carry = ((Crc & 0x80000000) ? 1 : 0) ^ (CurByte & 0x01);
0002c e31e0102 tst lr, #2, 2
00030 13a04001 movne r4, #1
00034 03a04000 moveq r4, #0
00038 e2023001 and r3, r2, #1
; 129 :
; 130 : Crc <<= 1;
; 131 :
; 132 : CurByte >>= 1;
0003c e0331004 eors r1, r3, r4
00040 e1a0e08e mov lr, lr, lsl #1
; 133 :
; 134 : if (Carry) {
; 135 :
; 136 : Crc = (Crc ^ 0x04c11db6) | Carry;
00044 102e3007 eorne r3, lr, r7
00048 e1a020a2 mov r2, r2, lsr #1
0004c 1183e001 orrne lr, r3, r1
00050 e2555001 subs r5, r5, #1
00054 e20220ff and r2, r2, #0xFF
00058 1afffff3 bne |$L35317|
0005c e2800001 add r0, r0, #1
00060 e1500006 cmp r0, r6
00064 baffffee blt |$L35314|
00068 |$L35316|
; 137 :
; 138 : }
; 139 :
; 140 : }
; 141 :
; 142 : }
; 143 :
; 144 : for (i=0, Carry=0x0L; i < 32 ; i++) {
00068 e3a00000 mov r0, #0
0006c e3a03020 mov r3, #0x20
00070 |$L35321|
; 145 : Carry <<= 1;
00070 e1a00080 mov r0, r0, lsl #1
; 146 : if (Crc & 0x1) {
00074 e31e0001 tst lr, #1
; 147 : Carry |= 0x1L;
00078 13800001 orrne r0, r0, #1
; 148 : }
; 149 : Crc >>= 1;
0007c e2533001 subs r3, r3, #1
00080 e1a0e0ae mov lr, lr, lsr #1
00084 1afffff9 bne |$L35321|
; 150 : }
; 151 :
; 152 : return bReverse?~Carry:Carry;
00088 e3580000 cmp r8, #0
0008c 11e00000 mvnne r0, r0
; 153 :
; 154 : }
00090 e8bd43f0 ldmia sp!, {r4 - r9, lr}
00094 e12fff1e bx lr
00098 |$L35657|
00098 04c11db6 DCD 0x4c11db6
0009c |$M35653|
ENDP ; |?DeviceCalculateCRC32@NIC_DEVICE_OBJECT@@QAAKPAEHH@Z|, NIC_DEVICE_OBJECT::DeviceCalculateCRC32
EXPORT |?DeviceMacAddress@NIC_DEVICE_OBJECT@@UAAPAEPAE@Z| ; NIC_DEVICE_OBJECT::DeviceMacAddress
00000 AREA |.text| { |?DeviceMacAddress@NIC_DEVICE_OBJECT@@UAAPAEPAE@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$?DeviceMacAddress@NIC_DEVICE_OBJECT@@UAAPAEPAE@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?DeviceMacAddress@NIC_DEVICE_OBJECT@@UAAPAEPAE@Z| } ; comdat associative
|$T35668| DCD |$L35667|
DCD 0x40000f00
; Function compile flags: /Ogsy
00000 AREA |.text| { |?DeviceMacAddress@NIC_DEVICE_OBJECT@@UAAPAEPAE@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |?DeviceMacAddress@NIC_DEVICE_OBJECT@@UAAPAEPAE@Z| PROC ; NIC_DEVICE_OBJECT::DeviceMacAddress
; 163 : {
00000 |$L35667|
00000 |$M35665|
00000 e3510000 cmp r1, #0
; 164 : if(!ptrBuffer) return ptrBuffer;
00004 03a01000 moveq r1, #0
00008 01a00001 moveq r0, r1
; 172 : }
0000c 012fff1e bxeq lr
; 165 :
; 166 : PU16 pcurr=(PU16)&m_szEeprom[
; 167 : m_szEepromFormat[EID_MAC_ADDRESS]];
00010 e59030bc ldr r3, [r0, #0xBC]
; 168 : *(PU16)ptrBuffer = *pcurr++;
; 169 : *(PU16)(ptrBuffer+2) = *pcurr++;
; 170 : *(PU16)(ptrBuffer+4) = *pcurr++;
; 171 : return ptrBuffer;
00014 e0833000 add r3, r3, r0
00018 e2832b01 add r2, r3, #1, 22
0001c e1f233b8 ldrh r3, [r2, #0x38]!
00020 e1c130b0 strh r3, [r1]
00024 e1f230b2 ldrh r3, [r2, #2]!
00028 e1c130b2 strh r3, [r1, #2]
0002c e1d230b2 ldrh r3, [r2, #2]
00030 e1c130b4 strh r3, [r1, #4]
; 164 : if(!ptrBuffer) return ptrBuffer;
00034 e1a00001 mov r0, r1
; 172 : }
00038 e12fff1e bx lr
0003c |$M35666|
ENDP ; |?DeviceMacAddress@NIC_DEVICE_OBJECT@@UAAPAEPAE@Z|, NIC_DEVICE_OBJECT::DeviceMacAddress
EXPORT |?DeviceVendorID@NIC_DEVICE_OBJECT@@UAAGXZ| ; NIC_DEVICE_OBJECT::DeviceVendorID
00000 AREA |.text| { |?DeviceVendorID@NIC_DEVICE_OBJECT@@UAAGXZ| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$?DeviceVendorID@NIC_DEVICE_OBJECT@@UAAGXZ|, PDATA, SELECTION=5, ASSOC=|.text| { |?DeviceVendorID@NIC_DEVICE_OBJECT@@UAAGXZ| } ; comdat associative
|$T35678| DCD |$L35677|
DCD 0x40000500
; Function compile flags: /Ogsy
00000 AREA |.text| { |?DeviceVendorID@NIC_DEVICE_OBJECT@@UAAGXZ| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |?DeviceVendorID@NIC_DEVICE_OBJECT@@UAAGXZ| PROC ; NIC_DEVICE_OBJECT::DeviceVendorID
; 175 : {
00000 |$L35677|
00000 |$M35675|
; 176 : return *(PU16)(&m_szEeprom[m_szEepromFormat[EID_VENDOR_ID]]);
00000 e59030c0 ldr r3, [r0, #0xC0]
00004 e0833000 add r3, r3, r0
00008 e2833b01 add r3, r3, #1, 22
0000c e1d303b8 ldrh r0, [r3, #0x38]
; 177 : }
00010 e12fff1e bx lr
00014 |$M35676|
ENDP ; |?DeviceVendorID@NIC_DEVICE_OBJECT@@UAAGXZ|, NIC_DEVICE_OBJECT::DeviceVendorID
EXPORT |?DeviceProductID@NIC_DEVICE_OBJECT@@UAAGXZ| ; NIC_DEVICE_OBJECT::DeviceProductID
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -