📄 gui_array_deleteitem.txt
字号:
; generated by ARM C/C++ Compiler with , RVCT4.0 [Build 524] for uVision
; commandline ArmCC [--split_sections --debug -c --asm --interleave -o.\Obj\gui_array_deleteitem.o --depend=.\Obj\gui_array_deleteitem.d --device=DARMSTM --apcs=interwork -O3 -I..\..\include -I..\..\..\FWLib\library\inc -I..\..\..\USBLib\library\inc -I..\..\Config -I..\..\GUI\Core -I..\..\GUI\Font -I..\..\GUI\ConvertColor -I..\..\GUI\AntiAlias -I..\..\GUI\ConvertMono -I..\..\GUI\JPEG -I..\..\GUI\MemDev -I..\..\GUI\MultiLayer -I..\..\GUI\Widget -I..\..\GUI\WM -IC:\Keil\ARM\INC\ST\STM32F10x ..\..\GUI\Widget\GUI_ARRAY_DeleteItem.c]
THUMB
AREA ||i.GUI_ARRAY_DeleteItem||, CODE, READONLY, ALIGN=2
GUI_ARRAY_DeleteItem PROC
;;;42 */
;;;43 void GUI_ARRAY_DeleteItem(GUI_ARRAY* pThis, unsigned int Index) {
000000 b570 PUSH {r4-r6,lr}
000002 4606 MOV r6,r0
;;;44 WM_HMEM ha;
;;;45 WM_HMEM* pa;
;;;46 int i;
;;;47 if (Index < (unsigned)pThis->NumItems) {
000004 8800 LDRH r0,[r0,#0]
000006 460c MOV r4,r1 ;43
000008 4288 CMP r0,r1
00000a d91a BLS |L1.66|
;;;48 ha = pThis->haHandle;
00000c f9b60002 LDRSH r0,[r6,#2]
;;;49 if (ha) {
000010 2800 CMP r0,#0
000012 d016 BEQ |L1.66|
;;;50 int NumItems;
;;;51 WM_LOCK();
;;;52 pa = (WM_HMEM*) GUI_ALLOC_h2p(ha);
000014 f7fffffe BL GUI_ALLOC_h2p
000018 4605 MOV r5,r0
;;;53 /* Free the attached item */
;;;54 GUI_ALLOC_FreePtr(pa + Index);
00001a eb000044 ADD r0,r0,r4,LSL #1
00001e f7fffffe BL GUI_ALLOC_FreePtr
;;;55 /* Move the last items to the position of the deleted item */
;;;56 NumItems = --pThis->NumItems;
000022 8830 LDRH r0,[r6,#0]
000024 1e40 SUBS r0,r0,#1
000026 b281 UXTH r1,r0
000028 8031 STRH r1,[r6,#0]
;;;57 for (i = Index; i <= NumItems - 1; i++) {
00002a 1e49 SUBS r1,r1,#1
00002c e007 B |L1.62|
;;;58 *(pa + i) = *(pa + i + 1);
00002e bf00 NOP
|L1.48|
000030 eb050044 ADD r0,r5,r4,LSL #1
000034 8842 LDRH r2,[r0,#2]
000036 1c60 ADDS r0,r4,#1 ;57
000038 f8252014 STRH r2,[r5,r4,LSL #1]
00003c 4604 MOV r4,r0 ;57
|L1.62|
00003e 428c CMP r4,r1 ;57
000040 ddf6 BLE |L1.48|
|L1.66|
;;;59 }
;;;60 WM_UNLOCK();
;;;61 }
;;;62 }
;;;63 }
000042 bd70 POP {r4-r6,pc}
;;;64
ENDP
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -