📄 ggt_msg.lst
字号:
0000000C E5810000 STR R0,[R1,#0x0] ; pOSBoxMsg
57: BoxInit(pOSBoxMsg, sizeof(_BoxHead) + OSGetSumMsg() * sizeof(_OSMsg), sizeof(_OSMsg));
00000010 EBFFFFFA BL OSGetSumMsg?A ; Targ=0x0
00000014 E3A01014 MOV R1,#0x14
00000018 E0010190 MUL R1,R0,R1 ; OSGetSumMsg?A
0000001C E2811004 ADD R1,R1,#0x0004
00000020 E5100000 LDR R0,=pOSBoxMsg ; pOSBoxMsg
00000024 E5900000 LDR R0,[R0,#0x0] ; pOSBoxMsg
00000028 E3A02014 MOV R2,#0x14
0000002C EBFFFFF3 BL BoxInit?A ; Targ=0x0
58: }
00000030 E8BD0008 LDMIA R13!,{R3}
00000034 E12FFF13 BX R3
00000038 ENDP ; 'OSMsgInit?A'
*** CODE SEGMENT '?PR?OSMsgPost?A?GGT_Msg':
78: BOOL OSMsgPost(const UINT32 TaskID, const UINT32 Msg, const UINT32 wParam, const UINT32 lParam)
00000000 E92D40F0 STMDB R13!,{R4-R7,LR}
00000004 E1A05003 MOV R5,R3 ; lParam
00000008 ---- Variable 'lParam' assigned to Register 'R5' ----
00000008 E1A06002 MOV R6,R2 ; wParam
0000000C ---- Variable 'wParam' assigned to Register 'R6' ----
0000000C E1A07001 MOV R7,R1 ; Msg
00000010 ---- Variable 'Msg' assigned to Register 'R7' ----
00000010 E1A04000 MOV R4,R0 ; TaskID
00000014 ---- Variable 'TaskID' assigned to Register 'R4' ----
00000014 E24DD004 SUB R13,R13,#0x0004
79: {
00000018 ; SCOPE-START
84: OSIRQLock();
00000018 E3A00001 MOV R0,#0x1
0000001C EF000000 SWI 0x0 ; SWI_Handler?A
86: pMsg = (_pOSMsg)BoxAlloc(pOSBoxMsg);
ARM COMPILER V2.32a, GGT_Msg 07/01/08 21:34:46 PAGE 6
00000020 E5100000 LDR R0,=pOSBoxMsg ; pOSBoxMsg
00000024 E5900000 LDR R0,[R0,#0x0] ; pOSBoxMsg
00000028 EBFFFFF4 BL BoxAlloc?A ; Targ=0x0
0000002C E1A01000 MOV R1,R0 ; pMsg
00000030 ---- Variable 'pMsg' assigned to Register 'R1' ----
87: R = pMsg != NULL;
00000030 E1A00001 MOV R0,R1 ; pMsg
00000034 E3500000 CMP R0,#0x0000 ; pMsg
00000038 0A000001 BEQ L_1 ; Targ=0x44
0000003C E3A00001 MOV R0,#0x1
00000040 EA000000 B L_2 ; Targ=0x48
00000044 L_1:
00000044 E3A00000 MOV R0,#0x0
00000048 L_2:
00000048 E58D0000 STR R0,[R13,#0x0] ; R
88: if(R)
0000004C E59D0000 LDR R0,[R13,#0x0] ; R
00000050 E3500000 CMP R0,#0x0000
00000054 0A000012 BEQ L_3 ; Targ=0xA4
90: pMsg->Sender = pOSTskNow->ID;
00000058 E5100000 LDR R0,=pOSTskNow ; pOSTskNow
0000005C E5900000 LDR R0,[R0,#0x0] ; pOSTskNow
00000060 E590000C LDR R0,[R0,#0xC]
00000064 E5810004 STR R0,[R1,#0x4]
91: pMsg->Msg = Msg;
00000068 E5817008 STR R7,[R1,#0x8] ; Msg
92: pMsg->wParam = wParam;
0000006C E581600C STR R6,[R1,#0xC] ; wParam
93: pMsg->lParam = lParam;
00000070 E5815010 STR R5,[R1,#0x10] ; lParam
95: pTask = &pOSTask[TaskID - 1];
00000074 E2440001 SUB R0,R4,#0x0001 ; TaskID
00000078 E1A00280 MOV R0,R0,LSL #5 ; TaskID
0000007C E5102000 LDR R2,=pOSTask ; pOSTask
00000080 E5924000 LDR R4,[R2,#0x0] ; pOSTask
00000084 E0844000 ADD R4,R4,R0
00000088 ---- Variable 'pTask' assigned to Register 'R4' ----
96: ListAppend((void *)(&(pTask->pMsg)), pMsg);
00000088 E284001C ADD R0,R4,#0x001C ; pTask
0000008C EBFFFFDB BL ListAppend?A ; Targ=0x0
99: if(OS_TSK_STATE_WAIT_MSG == pTask->State)
00000090 E5940014 LDR R0,[R4,#0x14]
00000094 E3500004 CMP R0,#0x0004
00000098 1A000001 BNE L_3 ; Targ=0xA4
100: OSTaskPushReady(pTask);
0000009C E1A00004 MOV R0,R4
000000A0 EBFFFFD6 BL OSTaskPushReady?A ; Targ=0x0
101: }
000000A4 L_3:
103: OSIRQUnlock();
000000A4 E3A00002 MOV R0,#0x2
000000A8 EF000000 SWI 0x0 ; SWI_Handler?A
104: return(R);
000000AC E59D0000 LDR R0,[R13,#0x0] ; R
000000B0 ; SCOPE-END
105: }
000000B0 E28DD004 ADD R13,R13,#0x0004
000000B4 E8BD00F0 LDMIA R13!,{R4-R7}
000000B8 E8BD0008 LDMIA R13!,{R3}
000000BC E12FFF13 BX R3
000000C0 ENDP ; 'OSMsgPost?A'
*** CODE SEGMENT '?PR?OSMsgPeek?A?GGT_Msg':
122: BOOL OSMsgPeek(_pMsg pMsg)
00000000 E92D4070 STMDB R13!,{R4-R6,LR}
00000004 E1A06000 MOV R6,R0 ; pMsg
00000008 ---- Variable 'pMsg' assigned to Register 'R6' ----
ARM COMPILER V2.32a, GGT_Msg 07/01/08 21:34:46 PAGE 7
123: {
00000008 ; SCOPE-START
127: OSIRQLock();
00000008 E3A00001 MOV R0,#0x1
0000000C EF000000 SWI 0x0 ; SWI_Handler?A
129: R = (NULL != pOSTskNow->pMsg);
00000010 E5100000 LDR R0,=pOSTskNow ; pOSTskNow
00000014 E5901000 LDR R1,[R0,#0x0] ; pOSTskNow
00000018 E591501C LDR R5,[R1,#0x1C]
0000001C E1A00005 MOV R0,R5
00000020 E3500000 CMP R0,#0x0000
00000024 0A000001 BEQ L_6 ; Targ=0x30
00000028 E3A04001 MOV R4,#0x1
0000002C EA000000 B L_7 ; Targ=0x34
00000030 L_6:
00000030 E3A04000 MOV R4,#0x0
00000034 L_7:
00000034 ---- Variable 'R' assigned to Register 'R4' ----
130: if(R)
00000034 E1A00004 MOV R0,R4 ; R
00000038 E3500000 CMP R0,#0x0000 ; R
0000003C 0A000010 BEQ L_8 ; Targ=0x84
132: pOSMsg = pOSTskNow->pMsg;
00000040 ---- Variable 'pOSMsg' assigned to Register 'R5' ----
133: *pMsg = *((_pMsg)(&(pOSMsg->Sender)));
00000040 E1A01005 MOV R1,R5 ; pOSMsg
00000044 E2811004 ADD R1,R1,#0x0004 ; pOSMsg
00000048 E1A00006 MOV R0,R6 ; pMsg
0000004C E3A02004 MOV R2,#0x4
00000050 L_21:
00000050 E8B10008 LDMIA R1!,{R3}
00000054 E8A00008 STMIA R0!,{R3}
00000058 E2522001 SUBS R2,R2,#0x0001
0000005C 1AFFFFFB BNE L_21 ; Targ=0x50
134: pOSTskNow->pMsg = (pOSTskNow->pMsg)->pNext;
00000060 E5100000 LDR R0,=pOSTskNow ; pOSTskNow
00000064 E5901000 LDR R1,[R0,#0x0] ; pOSTskNow
00000068 E591001C LDR R0,[R1,#0x1C]
0000006C E5900000 LDR R0,[R0,#0x0]
00000070 E581001C STR R0,[R1,#0x1C]
135: BoxFree(pOSBoxMsg, pOSMsg);
00000074 E5100000 LDR R0,=pOSBoxMsg ; pOSBoxMsg
00000078 E5900000 LDR R0,[R0,#0x0] ; pOSBoxMsg
0000007C E1A01005 MOV R1,R5 ; pOSMsg
00000080 EBFFFFDE BL BoxFree?A ; Targ=0x0
136: }
00000084 L_8:
138: OSIRQUnlock();
00000084 E3A00002 MOV R0,#0x2
00000088 EF000000 SWI 0x0 ; SWI_Handler?A
140: return(R);
0000008C E1A00004 MOV R0,R4 ; R
00000090 ; SCOPE-END
141: }
00000090 E8BD0070 LDMIA R13!,{R4-R6}
00000094 E8BD0008 LDMIA R13!,{R3}
00000098 E12FFF13 BX R3
0000009C ENDP ; 'OSMsgPeek?A'
*** CODE SEGMENT '?PR?OSMsgWait?A?GGT_Msg':
158: BOOL OSMsgWait(_pMsg pMsg)
00000000 E92D4030 STMDB R13!,{R4-R5,LR}
00000004 E1A05000 MOV R5,R0 ; pMsg
00000008 ---- Variable 'pMsg' assigned to Register 'R5' ----
160: DoWait:
00000008 DoWait:
161: if(OSMsgPeek(pMsg))
ARM COMPILER V2.32a, GGT_Msg 07/01/08 21:34:46 PAGE 8
00000008 E1A00005 MOV R0,R5 ; pMsg
0000000C EBFFFFFB BL OSMsgPeek?A ; Targ=0x0
00000010 E3500000 CMP R0,#0x0000 ; OSMsgPeek?A
00000014 0A000002 BEQ L_11 ; Targ=0x24
163: return(TRUE);
00000018 E3A04001 MOV R4,#0x1
0000001C E1A00004 MOV R0,R4
00000020 EA000007 B L_12 ; Targ=0x44
164: }else
00000024 L_11:
166: pOSTskNow->State = OS_TSK_STATE_WAIT_MSG;
00000024 E3A00004 MOV R0,#0x4
00000028 E5101000 LDR R1,=pOSTskNow ; pOSTskNow
0000002C E5911000 LDR R1,[R1,#0x0] ; pOSTskNow
00000030 E5810014 STR R0,[R1,#0x14]
167: OSTaskIsNULLLoadDef();
00000034 EBFFFFF1 BL OSTaskIsNULLLoadDef?A ; Targ=0x0
168: OSTaskSW();
00000038 E3A00000 MOV R0,#0x0
0000003C EF000000 SWI 0x0 ; SWI_Handler?A
169: goto DoWait;
00000040 EAFFFFED B DoWait ; Targ=0xFFFFFFFC
171: }
00000044 L_12:
00000044 E8BD0030 LDMIA R13!,{R4-R5}
00000048 E8BD0008 LDMIA R13!,{R3}
0000004C E12FFF13 BX R3
00000050 ENDP ; 'OSMsgWait?A'
*** CODE SEGMENT '?PR?OSMsgWaitFor?A?GGT_Msg':
188: BOOL OSMsgWaitFor(const UINT32 Msg, _pMsg pMsg)
00000000 E92D4070 STMDB R13!,{R4-R6,LR}
00000004 E1A06001 MOV R6,R1 ; pMsg
00000008 ---- Variable 'pMsg' assigned to Register 'R6' ----
00000008 E1A05000 MOV R5,R0 ; Msg
0000000C ---- Variable 'Msg' assigned to Register 'R5' ----
190: DoWait:
0000000C DoWait:
191: if(OSMsgPeek(pMsg))
0000000C E1A00006 MOV R0,R6 ; pMsg
00000010 EBFFFFFA BL OSMsgPeek?A ; Targ=0x0
00000014 E3500000 CMP R0,#0x0000 ; OSMsgPeek?A
00000018 0A000007 BEQ L_15 ; Targ=0x3C
193: if(Msg == pMsg->Msg)
0000001C E1A00006 MOV R0,R6 ; pMsg
00000020 E5901004 LDR R1,[R0,#0x4]
00000024 E1A00005 MOV R0,R5 ; Msg
00000028 E1500001 CMP R0,R1 ; Msg
0000002C 1AFFFFF2 BNE DoWait ; Targ=0xFFFFFFFC
194: return(TRUE);
00000030 E3A04001 MOV R4,#0x1
00000034 E1A00004 MOV R0,R4
00000038 EA000007 B L_17 ; Targ=0x5C
197: }else
0000003C L_15:
199: pOSTskNow->State = OS_TSK_STATE_WAIT_MSG;
0000003C E3A00004 MOV R0,#0x4
00000040 E5101000 LDR R1,=pOSTskNow ; pOSTskNow
00000044 E5911000 LDR R1,[R1,#0x0] ; pOSTskNow
00000048 E5810014 STR R0,[R1,#0x14]
200: OSTaskIsNULLLoadDef();
0000004C EBFFFFEB BL OSTaskIsNULLLoadDef?A ; Targ=0x0
201: OSTaskSW();
00000050 E3A00000 MOV R0,#0x0
00000054 EF000000 SWI 0x0 ; SWI_Handler?A
202: goto DoWait;
00000058 EAFFFFE7 B DoWait ; Targ=0xFFFFFFFC
ARM COMPILER V2.32a, GGT_Msg 07/01/08 21:34:46 PAGE 9
204: }
0000005C L_17:
0000005C E8BD0070 LDMIA R13!,{R4-R6}
00000060 E8BD0008 LDMIA R13!,{R3}
00000064 E12FFF13 BX R3
00000068 ENDP ; 'OSMsgWaitFor?A'
Module Information Static
----------------------------------
code size = ------
data size = 4
const size = ------
End of Module Information.
ARM COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -