📄 menu__finditem.txt
字号:
; generated by ARM C/C++ Compiler with , RVCT4.0 [Build 524] for uVision
; commandline ArmCC [--split_sections --debug -c --asm --interleave -o.\Obj\menu__finditem.o --depend=.\Obj\menu__finditem.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\MENU__FindItem.c]
THUMB
AREA ||i.MENU__FindItem||, CODE, READONLY, ALIGN=1
MENU__FindItem PROC
;;;34 */
;;;35 int MENU__FindItem(MENU_Handle hObj, U16 ItemId, MENU_Handle* phMenu) {
000000 e92d47f0 PUSH {r4-r10,lr}
000004 4680 MOV r8,r0
000006 4689 MOV r9,r1
000008 4692 MOV r10,r2
;;;36 int ItemIndex = -1;
00000a f04f35ff MOV r5,#0xffffffff
;;;37 MENU_Obj* pObj;
;;;38 pObj = MENU_H2P(hObj);
00000e f7fffffe BL GUI_ALLOC_h2p
000012 0007 MOVS r7,r0
;;;39 if (pObj) {
000014 d01e BEQ |L1.84|
;;;40 MENU_ITEM* pItem;
;;;41 unsigned NumItems, i;
;;;42 NumItems = MENU__GetNumItems(pObj);
000016 4638 MOV r0,r7
000018 f7fffffe BL MENU__GetNumItems
;;;43 for (i = 0; (i < NumItems) && (ItemIndex < 0); i++) {
00001c 2400 MOVS r4,#0
00001e 4606 MOV r6,r0 ;42
;;;44 pItem = (MENU_ITEM*)GUI_ARRAY_GetpItem(&pObj->ItemArray, i);
000020 3758 ADDS r7,r7,#0x58
000022 e013 B |L1.76|
|L1.36|
000024 4621 MOV r1,r4
000026 4638 MOV r0,r7
000028 f7fffffe BL GUI_ARRAY_GetpItem
;;;45 if (pItem->Id == ItemId) {
00002c 8841 LDRH r1,[r0,#2]
00002e 4549 CMP r1,r9
000030 d103 BNE |L1.58|
;;;46 *phMenu = hObj;
000032 f8aa8000 STRH r8,[r10,#0]
;;;47 ItemIndex = i;
000036 4625 MOV r5,r4
000038 e007 B |L1.74|
|L1.58|
;;;48 } else if (pItem->hSubmenu) {
00003a f9b00000 LDRSH r0,[r0,#0]
00003e b120 CBZ r0,|L1.74|
;;;49 ItemIndex = MENU__FindItem(pItem->hSubmenu, ItemId, phMenu);
000040 4652 MOV r2,r10
000042 4649 MOV r1,r9
000044 f7fffffe BL MENU__FindItem
000048 4605 MOV r5,r0
|L1.74|
00004a 1c64 ADDS r4,r4,#1 ;43
|L1.76|
00004c 42b4 CMP r4,r6 ;43
00004e d201 BCS |L1.84|
000050 2d00 CMP r5,#0 ;43
000052 dbe7 BLT |L1.36|
|L1.84|
;;;50 }
;;;51 }
;;;52 }
;;;53 return ItemIndex;
000054 4628 MOV r0,r5
;;;54 }
000056 e8bd87f0 POP {r4-r10,pc}
;;;55
ENDP
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -