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

📄 gui_gettextextend.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\gui_gettextextend.o --depend=.\Obj\gui_gettextextend.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\Core\GUI_GetTextExtend.c]
                          THUMB

                          AREA ||i.GUI_GetTextExtend||, CODE, READONLY, ALIGN=2

                  GUI_GetTextExtend PROC
;;;31     */
;;;32     void GUI_GetTextExtend(GUI_RECT* pRect, const char GUI_UNI_PTR * s, int MaxNumChars) {
000000  e92d43f7          PUSH     {r0-r2,r4-r9,lr}
000004  4607              MOV      r7,r0
;;;33       int xMax      = 0;
;;;34       int NumLines  = 0;
;;;35       int LineSizeX = 0;
;;;36       U16 Char;
;;;37       pRect->x0 = GUI_Context.DispPosX;
000006  4818              LDR      r0,|L1.104|
000008  2500              MOVS     r5,#0                 ;33
00000a  8c41              LDRH     r1,[r0,#0x22]  ; GUI_Context
00000c  8039              STRH     r1,[r7,#0]
;;;38       pRect->y0 = GUI_Context.DispPosY;
00000e  8c80              LDRH     r0,[r0,#0x24]  ; GUI_Context
000010  4690              MOV      r8,r2                 ;32
000012  462e              MOV      r6,r5                 ;34
000014  462c              MOV      r4,r5                 ;35
000016  8078              STRH     r0,[r7,#2]
;;;39       while (MaxNumChars--) {
000018  e00f              B        |L1.58|
                  |L1.26|
;;;40         Char = GUI_UC__GetCharCodeInc(&s);
00001a  a801              ADD      r0,sp,#4
00001c  f7fffffe          BL       GUI_UC__GetCharCodeInc
;;;41         if ((Char == '\n') || (Char == 0)) {
000020  280a              CMP      r0,#0xa
000022  d000              BEQ      |L1.38|
000024  b930              CBNZ     r0,|L1.52|
                  |L1.38|
;;;42           if (LineSizeX > xMax) {
000026  42ac              CMP      r4,r5
000028  dd00              BLE      |L1.44|
;;;43             xMax = LineSizeX;
00002a  4625              MOV      r5,r4
                  |L1.44|
;;;44           }
;;;45           LineSizeX = 0;
00002c  2400              MOVS     r4,#0
;;;46           NumLines++;
00002e  1c76              ADDS     r6,r6,#1
;;;47           if (!Char) {
000030  b138              CBZ      r0,|L1.66|
000032  e002              B        |L1.58|
                  |L1.52|
;;;48             break;
;;;49           }
;;;50         } else {
;;;51           LineSizeX += GUI_GetCharDistX(Char);
000034  f7fffffe          BL       GUI_GetCharDistX
000038  4404              ADD      r4,r4,r0
                  |L1.58|
00003a  f1b80001          SUBS     r0,r8,#1              ;39
00003e  4680              MOV      r8,r0                 ;39
000040  d2eb              BCS      |L1.26|
                  |L1.66|
;;;52         }
;;;53       }
;;;54       if (LineSizeX > xMax) {
000042  42ac              CMP      r4,r5
000044  dd00              BLE      |L1.72|
;;;55         xMax = LineSizeX;
000046  4625              MOV      r5,r4
                  |L1.72|
;;;56       }
;;;57       if (!NumLines) {
000048  b906              CBNZ     r6,|L1.76|
;;;58         NumLines = 1;
00004a  2601              MOVS     r6,#1
                  |L1.76|
;;;59       }
;;;60       pRect->x1 = pRect->x0 + xMax - 1;
00004c  8838              LDRH     r0,[r7,#0]
00004e  1e6d              SUBS     r5,r5,#1
000050  4428              ADD      r0,r0,r5
000052  80b8              STRH     r0,[r7,#4]
;;;61       pRect->y1 = pRect->y0 + GUI__GetFontSizeY() * NumLines - 1;
000054  f7fffffe          BL       GUI__GetFontSizeY
000058  f9b71002          LDRSH    r1,[r7,#2]
00005c  fb001006          MLA      r0,r0,r6,r1
000060  1e40              SUBS     r0,r0,#1
000062  80f8              STRH     r0,[r7,#6]
;;;62     }
000064  e8bd83fe          POP      {r1-r9,pc}
;;;63     
                          ENDP

                  |L1.104|
                          DCD      GUI_Context

⌨️ 快捷键说明

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