⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wm_checkscrollpos.txt

📁 STM32F103ZET6+UCOSII+UCGUI源码
💻 TXT
字号:
; generated by ARM C/C++ Compiler with , RVCT4.0 [Build 524] for uVision
; commandline ArmCC [--split_sections --debug -c --asm --interleave -o.\Obj\wm_checkscrollpos.o --depend=.\Obj\wm_checkscrollpos.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\WM\WM_CheckScrollPos.c]
                          THUMB

                          AREA ||i.WM_CheckScrollBounds||, CODE, READONLY, ALIGN=1

                  WM_CheckScrollBounds PROC
;;;37     */
;;;38     void WM_CheckScrollBounds(WM_SCROLL_STATE* pScrollState) {
000000  6882              LDR      r2,[r0,#8]
;;;39       int Max;
;;;40       Max = pScrollState->NumItems - pScrollState->PageSize;
000002  6801              LDR      r1,[r0,#0]
000004  1a89              SUBS     r1,r1,r2
;;;41       if (Max < 0) {
000006  d500              BPL      |L1.10|
;;;42         Max = 0;
000008  2100              MOVS     r1,#0
                  |L1.10|
;;;43       }
;;;44       /* Make sure scroll pos is in bounds */
;;;45       if (pScrollState->v < 0) {
00000a  6842              LDR      r2,[r0,#4]
00000c  2a00              CMP      r2,#0
00000e  da01              BGE      |L1.20|
;;;46         pScrollState->v = 0;
000010  2200              MOVS     r2,#0
000012  6042              STR      r2,[r0,#4]
                  |L1.20|
;;;47       }
;;;48       if (pScrollState->v > Max) {
000014  428a              CMP      r2,r1
000016  dd00              BLE      |L1.26|
;;;49         pScrollState->v = Max;
000018  6041              STR      r1,[r0,#4]
                  |L1.26|
;;;50       }
;;;51     }
00001a  4770              BX       lr
;;;52     
                          ENDP


                          AREA ||i.WM_CheckScrollPos||, CODE, READONLY, ALIGN=1

                  WM_CheckScrollPos PROC
;;;60     */
;;;61     int  WM_CheckScrollPos(WM_SCROLL_STATE* pScrollState, int Pos, int LowerDist, int UpperDist) {
000000  b570              PUSH     {r4-r6,lr}
000002  4604              MOV      r4,r0
;;;62       int vOld;
;;;63       vOld = pScrollState->v;
;;;64       /* Check upper limit */
;;;65       if (Pos > pScrollState->v + pScrollState->PageSize - 1) {
000004  e9d05001          LDRD     r5,r0,[r0,#4]
000008  182e              ADDS     r6,r5,r0
00000a  1e76              SUBS     r6,r6,#1
00000c  428e              CMP      r6,r1
00000e  db01              BLT      |L2.20|
;;;66         pScrollState->v = Pos - (pScrollState->PageSize - 1) + UpperDist;
;;;67       }
;;;68       /* Check lower limit */
;;;69       if (Pos < pScrollState->v) {
000010  4628              MOV      r0,r5
000012  e003              B        |L2.28|
                  |L2.20|
000014  1a08              SUBS     r0,r1,r0              ;66
000016  4418              ADD      r0,r0,r3              ;66
000018  1c40              ADDS     r0,r0,#1              ;66
00001a  6060              STR      r0,[r4,#4]            ;66
                  |L2.28|
00001c  4288              CMP      r0,r1
00001e  dd01              BLE      |L2.36|
;;;70         pScrollState->v = Pos - LowerDist;
000020  1a88              SUBS     r0,r1,r2
000022  6060              STR      r0,[r4,#4]
                  |L2.36|
;;;71       }
;;;72       WM_CheckScrollBounds(pScrollState);
000024  4620              MOV      r0,r4
000026  f7fffffe          BL       WM_CheckScrollBounds
;;;73       return pScrollState->v - vOld;
00002a  6860              LDR      r0,[r4,#4]
00002c  1b40              SUBS     r0,r0,r5
;;;74     }
00002e  bd70              POP      {r4-r6,pc}
;;;75     
                          ENDP


                          AREA ||i.WM_SetScrollValue||, CODE, READONLY, ALIGN=1

                  WM_SetScrollValue PROC
;;;82     */
;;;83     int  WM_SetScrollValue(WM_SCROLL_STATE* pScrollState, int v) {
000000  b510              PUSH     {r4,lr}
;;;84       int vOld;
;;;85       vOld = pScrollState->v;
;;;86       pScrollState->v = v;
000002  6844              LDR      r4,[r0,#4]
000004  4603              MOV      r3,r0                 ;83
;;;87       WM_CheckScrollBounds(pScrollState);
000006  6041              STR      r1,[r0,#4]
000008  f7fffffe          BL       WM_CheckScrollBounds
;;;88       return pScrollState->v - vOld;
00000c  6858              LDR      r0,[r3,#4]
00000e  1b00              SUBS     r0,r0,r4
;;;89     }
000010  bd10              POP      {r4,pc}
;;;90     
                          ENDP

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -