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

📄 gui_settextstyle.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_settextstyle.o --depend=.\Obj\gui_settextstyle.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_SetTextStyle.c]
                          THUMB

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

                  GUI_SetTextStyle PROC
;;;70     */
;;;71     char GUI_SetTextStyle(char Style) {
000000  b510              PUSH     {r4,lr}
;;;72       char OldStyle;
;;;73       GUI_LOCK();
;;;74       OldStyle = GUI_Context.TextStyle;
000002  4904              LDR      r1,|L1.20|
000004  4602              MOV      r2,r0                 ;71
;;;75       GUI_pfDispCharStyle = GUI__cbDrawTextStyle;    /* Init function pointer (function in this module) */
000006  4c05              LDR      r4,|L1.28|
000008  7b88              LDRB     r0,[r1,#0xe]          ;74  ; GUI_Context
00000a  4b03              LDR      r3,|L1.24|
;;;76       GUI_Context.TextStyle = Style;
00000c  6023              STR      r3,[r4,#0]  ; GUI_pfDispCharStyle
00000e  738a              STRB     r2,[r1,#0xe]
;;;77       GUI_UNLOCK();
;;;78       return OldStyle;
;;;79     }
000010  bd10              POP      {r4,pc}
;;;80     
                          ENDP

000012  0000              DCW      0x0000
                  |L1.20|
                          DCD      GUI_Context
                  |L1.24|
                          DCD      GUI__cbDrawTextStyle
                  |L1.28|
                          DCD      GUI_pfDispCharStyle

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

                  GUI__cbDrawTextStyle PROC
;;;33     */
;;;34     static void GUI__cbDrawTextStyle(U16 Char) {
000000  b570              PUSH     {r4-r6,lr}
;;;35       int x0, x1;
;;;36       x1 = GUI_Context.DispPosX - 1;
000002  4c1e              LDR      r4,|L2.124|
;;;37       x0 = x1 - GUI_Context.pAFont->pfGetCharDistX(Char) + 1;
000004  69a1              LDR      r1,[r4,#0x18]  ; GUI_Context
000006  f9b45022          LDRSH    r5,[r4,#0x22]         ;36  ; GUI_Context
00000a  6849              LDR      r1,[r1,#4]
00000c  1e6d              SUBS     r5,r5,#1              ;36
00000e  4788              BLX      r1
000010  1a2e              SUBS     r6,r5,r0
;;;38       /* Handle Underline */
;;;39       if (GUI_Context.TextStyle & GUI_TS_UNDERLINE) {
000012  7ba0              LDRB     r0,[r4,#0xe]  ; GUI_Context
000014  1c76              ADDS     r6,r6,#1              ;37
000016  07c0              LSLS     r0,r0,#31
000018  d00c              BEQ      |L2.52|
;;;40         int yOff = GUI_Context.pAFont->Baseline;
;;;41         if (yOff >= GUI_Context.pAFont->YSize) {
00001a  69a0              LDR      r0,[r4,#0x18]  ; GUI_Context
00001c  7d01              LDRB     r1,[r0,#0x14]
00001e  7f00              LDRB     r0,[r0,#0x1c]         ;40
000020  4281              CMP      r1,r0
000022  dc00              BGT      |L2.38|
;;;42           yOff = GUI_Context.pAFont->YSize - 1;
000024  1e48              SUBS     r0,r1,#1
                  |L2.38|
;;;43         }
;;;44         LCD_DrawHLine(x0, GUI_Context.DispPosY + yOff, x1);
000026  f9b41024          LDRSH    r1,[r4,#0x24]  ; GUI_Context
00002a  462a              MOV      r2,r5
00002c  4401              ADD      r1,r1,r0
00002e  4630              MOV      r0,r6
000030  f7fffffe          BL       LCD_DrawHLine
                  |L2.52|
;;;45       }
;;;46       /* Handle strike thru */
;;;47       if (GUI_Context.TextStyle & GUI_TS_STRIKETHRU) {
000034  7ba0              LDRB     r0,[r4,#0xe]  ; GUI_Context
000036  0780              LSLS     r0,r0,#30
000038  d50c              BPL      |L2.84|
;;;48         int yOff = GUI_Context.pAFont->Baseline - ((GUI_Context.pAFont->CHeight + 1) / 2);
00003a  69a0              LDR      r0,[r4,#0x18]  ; GUI_Context
;;;49         LCD_DrawHLine(x0, GUI_Context.DispPosY + yOff, x1);
00003c  462a              MOV      r2,r5
00003e  7f01              LDRB     r1,[r0,#0x1c]         ;48
000040  7f80              LDRB     r0,[r0,#0x1e]         ;48
000042  1c40              ADDS     r0,r0,#1              ;48
000044  eba10050          SUB      r0,r1,r0,LSR #1       ;48
000048  f9b41024          LDRSH    r1,[r4,#0x24]  ; GUI_Context
00004c  4401              ADD      r1,r1,r0
00004e  4630              MOV      r0,r6
000050  f7fffffe          BL       LCD_DrawHLine
                  |L2.84|
;;;50       }
;;;51       /* Handle over line */
;;;52       if (GUI_Context.TextStyle & GUI_TS_OVERLINE) {
000054  7ba0              LDRB     r0,[r4,#0xe]  ; GUI_Context
000056  0740              LSLS     r0,r0,#29
000058  d50f              BPL      |L2.122|
;;;53         int yOff = GUI_Context.pAFont->Baseline - GUI_Context.pAFont->CHeight - 1;
00005a  69a0              LDR      r0,[r4,#0x18]  ; GUI_Context
00005c  7f81              LDRB     r1,[r0,#0x1e]
00005e  7f00              LDRB     r0,[r0,#0x1c]
000060  1a40              SUBS     r0,r0,r1
000062  1e40              SUBS     r0,r0,#1
;;;54         if (yOff < 0) {
000064  d500              BPL      |L2.104|
;;;55           yOff = 0;
000066  2000              MOVS     r0,#0
                  |L2.104|
;;;56         }
;;;57         LCD_DrawHLine(x0, GUI_Context.DispPosY + yOff, x1);
000068  f9b41024          LDRSH    r1,[r4,#0x24]  ; GUI_Context
00006c  462a              MOV      r2,r5
00006e  4401              ADD      r1,r1,r0
000070  4630              MOV      r0,r6
000072  e8bd4070          POP      {r4-r6,lr}
000076  f7ffbffe          B.W      LCD_DrawHLine
                  |L2.122|
;;;58       }
;;;59     }
00007a  bd70              POP      {r4-r6,pc}
;;;60     
                          ENDP

                  |L2.124|
                          DCD      GUI_Context

⌨️ 快捷键说明

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