📄 maxkey.cod
字号:
; Listing generated by Microsoft (R) Optimizing Compiler Version 13.10.4237
TTL D:\WINCE500\PLATFORM\zylonite_mhl\SRC\DRIVERS\KeyPad\MAXKEY\.\maxkey.cpp
CODE32
00000 AREA |.drectve|, DRECTVE
DCB "-defaultlib:coredll.lib "
DCB "-defaultlib:corelibc.lib "
EXPORT |?v_psk@@3PAVMaxSimKeybd@@A| [ DATA ] ; v_psk
EXPORT |?keypad_sys_intr@@3KA| [ DATA ] ; keypad_sys_intr
EXPORT |?g_hMfpRMDHandle@@3PAXA| [ DATA ] ; g_hMfpRMDHandle
EXPORT |?g_pMfpRMDb@@3RADA| [ DATA ] ; g_pMfpRMDb
EXPORT |?mfp_reg@@3PCKC| [ DATA ] ; mfp_reg
EXPORT |?gs_pGpioRegs@@3PAUXLLP_GPIO_T@@A| [ DATA ] ; gs_pGpioRegs
EXPORT |?gs_pClockRegs@@3PAUXLLP_CLKMGR_T@@A| [ DATA ] ; gs_pClockRegs
EXPORT |?gs_pi2cregs@@3PAUXLLP_I2C_T@@A| [ DATA ] ; gs_pi2cregs
EXPORT |?gs_pOstRegs@@3PAUXLLP_OST_T@@A| [ DATA ] ; gs_pOstRegs
00000 AREA |.bss|, NOINIT
|i2c_error_status| % 0x4
|?v_psk@@3PAVMaxSimKeybd@@A| % 0x4 ; v_psk
|g_hI2CMutex| % 0x4
|?keypad_sys_intr@@3KA| % 0x4 ; keypad_sys_intr
|?g_hMfpRMDHandle@@3PAXA| % 0x4 ; g_hMfpRMDHandle
|?g_pMfpRMDb@@3RADA| % 0x4 ; g_pMfpRMDb
|?mfp_reg@@3PCKC| % 0x4 ; mfp_reg
|?gs_pGpioRegs@@3PAUXLLP_GPIO_T@@A| % 0x4 ; gs_pGpioRegs
|?gs_pClockRegs@@3PAUXLLP_CLKMGR_T@@A| % 0x4 ; gs_pClockRegs
|?gs_pi2cregs@@3PAUXLLP_I2C_T@@A| % 0x4 ; gs_pi2cregs
|?gs_pOstRegs@@3PAUXLLP_OST_T@@A| % 0x4 ; gs_pOstRegs
EXPORT |SetEvent|
IMPORT |EventModify|
; File d:\wince500\public\common\sdk\inc\kfuncs.h
00000 AREA |.text| { |SetEvent| }, CODE, ARM, SELECTION=2 ; comdat any
00000 AREA |.pdata$$SetEvent|, PDATA, SELECTION=5, ASSOC=|.text| { |SetEvent| } ; comdat associative
|$T31113| DCD |$L31112|
DCD 0x40000501
; Function compile flags: /Ogsy
00000 AREA |.text| { |SetEvent| }, CODE, ARM, SELECTION=2 ; comdat any
00000 |SetEvent| PROC
; 184 : _inline BOOL SetEvent(HANDLE h) {
00000 |$L31112|
00000 e52de004 str lr, [sp, #-4]!
00004 |$M31110|
; 185 : return EventModify(h,EVENT_SET);
00004 e3a01003 mov r1, #3
00008 eb000000 bl EventModify
; 186 : }
0000c e49de004 ldr lr, [sp], #4
00010 e12fff1e bx lr
00014 |$M31111|
ENDP ; |SetEvent|
EXPORT |GetCurrentThread|
00000 AREA |.text| { |GetCurrentThread| }, CODE, ARM, SELECTION=2 ; comdat any
00000 AREA |.pdata$$GetCurrentThread|, PDATA, SELECTION=5, ASSOC=|.text| { |GetCurrentThread| } ; comdat associative
|$T31122| DCD |$L31121|
DCD 0x40000200
; Function compile flags: /Ogsy
00000 AREA |.text| { |GetCurrentThread| }, CODE, ARM, SELECTION=2 ; comdat any
00000 |GetCurrentThread| PROC
; 300 : _inline HANDLE GetCurrentThread(void) {
00000 |$L31121|
00000 |$M31119|
; 301 : return ((HANDLE)(SH_CURTHREAD+SYS_HANDLE_BASE));
00000 e3a00041 mov r0, #0x41
; 302 : }
00004 e12fff1e bx lr
00008 |$M31120|
ENDP ; |GetCurrentThread|
EXPORT |??_C@_1CI@IMLAPOCL@?$AAM?$AAF?$AAP?$AAR?$AAM?$AAD?$AAB?$AA_?$AAS?$AAH?$AAA?$AAR?$AAE?$AAD?$AA_?$AAF?$AAI?$AAL?$AAE?$AA?$AA@| [ DATA ] ; `string'
EXPORT |??_C@_1HM@GKEEHCKA@?$AA?$FL?$AAB?$AAA?$AAT?$AAT?$AA?$FN?$AA?5?$AAF?$AAa?$AAi?$AAl?$AA?5?$AAt?$AAo?$AA?5?$AAC?$AAr?$AAe?$AAa?$AAt@| [ DATA ] ; `string'
EXPORT |??_C@_1EE@CPOPAIGK@?$AA?$FL?$AAB?$AAA?$AAT?$AAT?$AA?$FN?$AA?5?$AAF?$AAa?$AAi?$AAl?$AA?5?$AAt?$AAo?$AA?5?$AAM?$AAa?$AAp?$AAV?$AAi@| [ DATA ] ; `string'
EXPORT |??_C@_1FO@JACOBGGK@?$AA?$FL?$AAB?$AAA?$AAT?$AAT?$AA?$FN?$AA?5?$AAF?$AAa?$AAi?$AAl?$AA?5?$AAt?$AAo?$AA?5?$AAX?$AAl?$AAl?$AAp?$AAM@| [ DATA ] ; `string'
IMPORT |NKDbgPrintfW|
IMPORT |MapViewOfFile|
IMPORT |CreateFileMappingW|
IMPORT |GetLastError|
IMPORT |XllpMfpResourceManagerInit|
; File d:\wince500\platform\zylonite_mhl\src\drivers\keypad\maxkey\maxkey.cpp
00000 AREA |.bss| { |?bFirstInit@?1??InitMFPRM@@YAHXZ@4HA| }, NOINIT, SELECTION=2 ; comdat any
|?bFirstInit@?1??InitMFPRM@@YAHXZ@4HA| % 0x4 ; `InitMFPRM'::`2'::bFirstInit
00000 AREA |.text| { |?InitMFPRM@@YAHXZ| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$?InitMFPRM@@YAHXZ|, PDATA, SELECTION=5, ASSOC=|.text| { |?InitMFPRM@@YAHXZ| } ; comdat associative
|$T31133| DCD |$L31132|
DCD 0x40003802
00000 AREA |.rdata| { |??_C@_1FO@JACOBGGK@?$AA?$FL?$AAB?$AAA?$AAT?$AAT?$AA?$FN?$AA?5?$AAF?$AAa?$AAi?$AAl?$AA?5?$AAt?$AAo?$AA?5?$AAX?$AAl?$AAl?$AAp?$AAM@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1FO@JACOBGGK@?$AA?$FL?$AAB?$AAA?$AAT?$AAT?$AA?$FN?$AA?5?$AAF?$AAa?$AAi?$AAl?$AA?5?$AAt?$AAo?$AA?5?$AAX?$AAl?$AAl?$AAp?$AAM@| DCB "["
DCB 0x0, "B", 0x0, "A", 0x0, "T", 0x0, "T", 0x0, "]", 0x0, " "
DCB 0x0, "F", 0x0, "a", 0x0, "i", 0x0, "l", 0x0, " ", 0x0, "t"
DCB 0x0, "o", 0x0, " ", 0x0, "X", 0x0, "l", 0x0, "l", 0x0, "p"
DCB 0x0, "M", 0x0, "f", 0x0, "p", 0x0, "R", 0x0, "e", 0x0, "s"
DCB 0x0, "o", 0x0, "u", 0x0, "r", 0x0, "c", 0x0, "e", 0x0, "M"
DCB 0x0, "a", 0x0, "n", 0x0, "a", 0x0, "g", 0x0, "e", 0x0, "r"
DCB 0x0, "I", 0x0, "n", 0x0, "i", 0x0, "t", 0x0, "(", 0x0, ")"
DCB 0x0, "!", 0x0, 0xd, 0x0, 0xa, 0x0, 0x0, 0x0 ; `string'
00000 AREA |.rdata| { |??_C@_1EE@CPOPAIGK@?$AA?$FL?$AAB?$AAA?$AAT?$AAT?$AA?$FN?$AA?5?$AAF?$AAa?$AAi?$AAl?$AA?5?$AAt?$AAo?$AA?5?$AAM?$AAa?$AAp?$AAV?$AAi@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1EE@CPOPAIGK@?$AA?$FL?$AAB?$AAA?$AAT?$AAT?$AA?$FN?$AA?5?$AAF?$AAa?$AAi?$AAl?$AA?5?$AAt?$AAo?$AA?5?$AAM?$AAa?$AAp?$AAV?$AAi@| DCB "["
DCB 0x0, "B", 0x0, "A", 0x0, "T", 0x0, "T", 0x0, "]", 0x0, " "
DCB 0x0, "F", 0x0, "a", 0x0, "i", 0x0, "l", 0x0, " ", 0x0, "t"
DCB 0x0, "o", 0x0, " ", 0x0, "M", 0x0, "a", 0x0, "p", 0x0, "V"
DCB 0x0, "i", 0x0, "e", 0x0, "w", 0x0, "O", 0x0, "f", 0x0, "F"
DCB 0x0, "i", 0x0, "l", 0x0, "e", 0x0, "(", 0x0, ")", 0x0, "!"
DCB 0x0, 0xd, 0x0, 0xa, 0x0, 0x0, 0x0 ; `string'
00000 AREA |.rdata| { |??_C@_1HM@GKEEHCKA@?$AA?$FL?$AAB?$AAA?$AAT?$AAT?$AA?$FN?$AA?5?$AAF?$AAa?$AAi?$AAl?$AA?5?$AAt?$AAo?$AA?5?$AAC?$AAr?$AAe?$AAa?$AAt@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1HM@GKEEHCKA@?$AA?$FL?$AAB?$AAA?$AAT?$AAT?$AA?$FN?$AA?5?$AAF?$AAa?$AAi?$AAl?$AA?5?$AAt?$AAo?$AA?5?$AAC?$AAr?$AAe?$AAa?$AAt@| DCB "["
DCB 0x0, "B", 0x0, "A", 0x0, "T", 0x0, "T", 0x0, "]", 0x0, " "
DCB 0x0, "F", 0x0, "a", 0x0, "i", 0x0, "l", 0x0, " ", 0x0, "t"
DCB 0x0, "o", 0x0, " ", 0x0, "C", 0x0, "r", 0x0, "e", 0x0, "a"
DCB 0x0, "t", 0x0, "e", 0x0, "F", 0x0, "i", 0x0, "l", 0x0, "e"
DCB 0x0, "M", 0x0, "a", 0x0, "p", 0x0, "p", 0x0, "i", 0x0, "n"
DCB 0x0, "g", 0x0, "(", 0x0, "M", 0x0, "F", 0x0, "P", 0x0, "R"
DCB 0x0, "M", 0x0, "D", 0x0, "B", 0x0, "_", 0x0, "S", 0x0, "H"
DCB 0x0, "A", 0x0, "R", 0x0, "E", 0x0, "D", 0x0, "_", 0x0, "F"
DCB 0x0, "I", 0x0, "L", 0x0, "E", 0x0, "N", 0x0, "A", 0x0, "M"
DCB 0x0, "E", 0x0, ")", 0x0, "!", 0x0, " ", 0x0, 0xd, 0x0, 0xa
DCB 0x0, 0x0, 0x0 ; `string'
00000 AREA |.rdata| { |??_C@_1CI@IMLAPOCL@?$AAM?$AAF?$AAP?$AAR?$AAM?$AAD?$AAB?$AA_?$AAS?$AAH?$AAA?$AAR?$AAE?$AAD?$AA_?$AAF?$AAI?$AAL?$AAE?$AA?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1CI@IMLAPOCL@?$AAM?$AAF?$AAP?$AAR?$AAM?$AAD?$AAB?$AA_?$AAS?$AAH?$AAA?$AAR?$AAE?$AAD?$AA_?$AAF?$AAI?$AAL?$AAE?$AA?$AA@| DCB "M"
DCB 0x0, "F", 0x0, "P", 0x0, "R", 0x0, "M", 0x0, "D", 0x0, "B"
DCB 0x0, "_", 0x0, "S", 0x0, "H", 0x0, "A", 0x0, "R", 0x0, "E"
DCB 0x0, "D", 0x0, "_", 0x0, "F", 0x0, "I", 0x0, "L", 0x0, "E"
DCB 0x0, 0x0, 0x0 ; `string'
; Function compile flags: /Ogsy
00000 AREA |.text| { |?InitMFPRM@@YAHXZ| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |?InitMFPRM@@YAHXZ| PROC ; InitMFPRM
; 109 : {
00000 |$L31132|
00000 e92d4030 stmdb sp!, {r4, r5, lr}
00004 e24dd008 sub sp, sp, #8
00008 |$M31130|
; 110 : static BOOL bFirstInit=FALSE;
; 111 :
; 112 : g_hMfpRMDHandle = CreateFileMapping(INVALID_HANDLE_VALUE, NULL, PAGE_READWRITE,
; 113 : 0, XLLP_MFP_RM_DB_SIZE, MFPRMDB_SHARED_FILENAME );
00008 e59f20cc ldr r2, [pc, #0xCC]
0000c e3a0ee42 mov lr, #0x42, 28
00010 e3a03000 mov r3, #0
00014 e58d2004 str r2, [sp, #4]
00018 e3a02004 mov r2, #4
0001c e3a01000 mov r1, #0
00020 e3e00000 mvn r0, #0
00024 e58de000 str lr, [sp]
00028 eb000000 bl CreateFileMappingW
0002c e59f50a4 ldr r5, [pc, #0xA4]
00030 e3500000 cmp r0, #0
00034 e5850004 str r0, [r5, #4]
; 114 :
; 115 : if(g_hMfpRMDHandle == NULL )
; 116 : {
; 117 : NKDbgPrintfW(TEXT("[BATT] Fail to CreateFileMapping(MFPRMDB_SHARED_FILENAME)! \r\n"));;
00038 059f0094 ldreq r0, [pc, #0x94]
0003c 0a00001a beq |$L31129|
; 118 : return FALSE;
; 119 : }
; 120 :
; 121 : if (ERROR_ALREADY_EXISTS != GetLastError())
00040 eb000000 bl GetLastError
; 122 : {
; 123 : // The first initialization of this memory-mapped file.
; 124 : DEBUGMSG(ZONE_INIT, (TEXT("[BATT] First call of CreateFileMapping(MFPRMDB_SHARED_FILENAME)! \r\n")));
; 125 : bFirstInit = TRUE;
00044 e59f4084 ldr r4, [pc, #0x84]
00048 e35000b7 cmp r0, #0xB7
0004c 13a03001 movne r3, #1
; 126 : }
; 127 : else
; 128 : {
; 129 : // Memory-mapped file already existed.
; 130 : DEBUGMSG(ZONE_INIT, (TEXT("PIC Sequent call of CreateFileMapping(MFPRMDB_SHARED_FILENAME)! \r\n")));
; 131 : bFirstInit = FALSE;
; 132 : }
; 133 :
; 134 : g_pMfpRMDb = (P_XLLP_MFP_RM_DB_ID_T) MapViewOfFile(g_hMfpRMDHandle, FILE_MAP_ALL_ACCESS, 0, 0, 0 );
00050 e5950004 ldr r0, [r5, #4]
00054 03a03000 moveq r3, #0
00058 e3a0180f mov r1, #0xF, 16
0005c e5843000 str r3, [r4]
00060 e3a0e000 mov lr, #0
00064 e3a03000 mov r3, #0
00068 e381101f orr r1, r1, #0x1F
0006c e3a02000 mov r2, #0
00070 e58de000 str lr, [sp]
00074 eb000000 bl MapViewOfFile
00078 e5850000 str r0, [r5]
; 135 :
; 136 : if (NULL == g_pMfpRMDb )
0007c e5953000 ldr r3, [r5]
00080 e3530000 cmp r3, #0
; 137 : {
; 138 : NKDbgPrintfW(TEXT("[BATT] Fail to MapViewOfFile()!\r\n"));
00084 059f0040 ldreq r0, [pc, #0x40]
00088 0a000007 beq |$L31129|
; 139 : return FALSE;
; 140 : }
; 141 :
; 142 : if (TRUE == bFirstInit)
0008c e5943000 ldr r3, [r4]
00090 e3530001 cmp r3, #1
00094 1a000007 bne |$L30716|
; 143 : {
; 144 : // Need to Initialize RM
; 145 : if (XLLP_STATUS_SUCCESS != XllpMfpResourceManagerInit(g_pMfpRMDb))
00098 e5950000 ldr r0, [r5]
0009c eb000000 bl XllpMfpResourceManagerInit
000a0 e3500000 cmp r0, #0
000a4 0a000003 beq |$L30716|
; 146 : {
; 147 : NKDbgPrintfW(TEXT("[BATT] Fail to XllpMfpResourceManagerInit()!\r\n"));
000a8 e59f0018 ldr r0, [pc, #0x18]
000ac |$L31129|
000ac eb000000 bl NKDbgPrintfW
; 148 : return FALSE;
000b0 e3a00000 mov r0, #0
000b4 ea000000 b |$L30699|
000b8 |$L30716|
; 149 : }
; 150 : }
; 151 :
; 152 : return TRUE;
000b8 e3a00001 mov r0, #1
000bc |$L30699|
; 153 : }
000bc e28dd008 add sp, sp, #8
000c0 e8bd4030 ldmia sp!, {r4, r5, lr}
000c4 e12fff1e bx lr
000c8 |$L31136|
000c8 00000000 DCD |??_C@_1FO@JACOBGGK@?$AA?$FL?$AAB?$AAA?$AAT?$AAT?$AA?$FN?$AA?5?$AAF?$AAa?$AAi?$AAl?$AA?5?$AAt?$AAo?$AA?5?$AAX?$AAl?$AAl?$AAp?$AAM@|
000cc 00000000 DCD |??_C@_1EE@CPOPAIGK@?$AA?$FL?$AAB?$AAA?$AAT?$AAT?$AA?$FN?$AA?5?$AAF?$AAa?$AAi?$AAl?$AA?5?$AAt?$AAo?$AA?5?$AAM?$AAa?$AAp?$AAV?$AAi@|
000d0 00000000 DCD |?bFirstInit@?1??InitMFPRM@@YAHXZ@4HA|
000d4 00000000 DCD |??_C@_1HM@GKEEHCKA@?$AA?$FL?$AAB?$AAA?$AAT?$AAT?$AA?$FN?$AA?5?$AAF?$AAa?$AAi?$AAl?$AA?5?$AAt?$AAo?$AA?5?$AAC?$AAr?$AAe?$AAa?$AAt@|
000d8 00000000 DCD |?g_pMfpRMDb@@3RADA|
000dc 00000000 DCD |??_C@_1CI@IMLAPOCL@?$AAM?$AAF?$AAP?$AAR?$AAM?$AAD?$AAB?$AA_?$AAS?$AAH?$AAA?$AAR?$AAE?$AAD?$AA_?$AAF?$AAI?$AAL?$AAE?$AA?$AA@|
000e0 |$M31131|
ENDP ; |?InitMFPRM@@YAHXZ|, InitMFPRM
IMPORT |WaitForSingleObject|
00000 AREA |.text| { |?I2CLock@@YAXXZ| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$?I2CLock@@YAXXZ|, PDATA, SELECTION=5, ASSOC=|.text| { |?I2CLock@@YAXXZ| } ; comdat associative
|$T31142| DCD |$L31141|
DCD 0x40000801
; Function compile flags: /Ogsy
00000 AREA |.text| { |?I2CLock@@YAXXZ| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |?I2CLock@@YAXXZ| PROC ; I2CLock
; 156 : {
00000 |$L31141|
00000 e52de004 str lr, [sp, #-4]!
00004 |$M31139|
; 157 : WaitForSingleObject(g_hI2CMutex, INFINITE);
00004 e59f3010 ldr r3, [pc, #0x10]
00008 e3e01000 mvn r1, #0
0000c e5930000 ldr r0, [r3]
00010 eb000000 bl WaitForSingleObject
; 158 : }
00014 e49de004 ldr lr, [sp], #4
00018 e12fff1e bx lr
0001c |$L31144|
0001c 00000000 DCD |g_hI2CMutex|
00020 |$M31140|
ENDP ; |?I2CLock@@YAXXZ|, I2CLock
IMPORT |ReleaseMutex|
00000 AREA |.text| { |?I2CUnlock@@YAXXZ| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$?I2CUnlock@@YAXXZ|, PDATA, SELECTION=5, ASSOC=|.text| { |?I2CUnlock@@YAXXZ| } ; comdat associative
|$T31150| DCD |$L31149|
DCD 0x40000701
; Function compile flags: /Ogsy
00000 AREA |.text| { |?I2CUnlock@@YAXXZ| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |?I2CUnlock@@YAXXZ| PROC ; I2CUnlock
; 160 : {
00000 |$L31149|
00000 e52de004 str lr, [sp, #-4]!
00004 |$M31147|
; 161 : ReleaseMutex(g_hI2CMutex);
00004 e59f300c ldr r3, [pc, #0xC]
00008 e5930000 ldr r0, [r3]
0000c eb000000 bl ReleaseMutex
; 162 : }
00010 e49de004 ldr lr, [sp], #4
00014 e12fff1e bx lr
00018 |$L31152|
00018 00000000 DCD |g_hI2CMutex|
0001c |$M31148|
ENDP ; |?I2CUnlock@@YAXXZ|, I2CUnlock
IMPORT |XllpClockEnable|
IMPORT |XllpI2cInit|
00000 AREA |.text| { |?I2CInit@@YAHXZ| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$?I2CInit@@YAHXZ|, PDATA, SELECTION=5, ASSOC=|.text| { |?I2CInit@@YAHXZ| } ; comdat associative
|$T31160| DCD |$L31159|
DCD 0x40001501
; Function compile flags: /Ogsy
00000 AREA |.text| { |?I2CInit@@YAHXZ| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |?I2CInit@@YAHXZ| PROC ; I2CInit
; 166 : {
00000 |$L31159|
00000 e92d4010 stmdb sp!, {r4, lr}
00004 |$M31157|
; 167 : XllpClockEnable((XLLP_CLKMGR_T*)gs_pClockRegs, XLLP_CLK_I2C, XLLP_TRUE);
00004 e59f4044 ldr r4, [pc, #0x44]
00008 e3a02001 mov r2, #1
0000c e3a01024 mov r1, #0x24
00010 e5940004 ldr r0, [r4, #4]
00014 eb000000 bl XllpClockEnable
; 168 : gs_pi2cregs->XLLP_ICR = XLLP_ICR_UR;
00018 e5943000 ldr r3, [r4]
0001c e3a02901 mov r2, #1, 18
; 169 :
; 170 : if(XLLP_STATUS_SUCCESS!=XllpI2cInit((P_XLLP_I2C_T)gs_pi2cregs, (P_XLLP_VUINT32_T) mfp_reg, (P_XLLP_MFP_RM_DB_ID_T )g_pMfpRMDb, 0))
00020 e5832010 str r2, [r3, #0x10]
00024 e5942010 ldr r2, [r4, #0x10]
00028 e594100c ldr r1, [r4, #0xC]
0002c e5940000 ldr r0, [r4]
00030 e3a03000 mov r3, #0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -