guichar.txt

来自「STM32F103ZET6+UCOSII+UCGUI源码」· 文本 代码 · 共 171 行

TXT
171
字号
; generated by ARM C/C++ Compiler with , RVCT4.0 [Build 524] for uVision
; commandline ArmCC [--split_sections --debug -c --asm --interleave -o.\Obj\guichar.o --depend=.\Obj\guichar.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\GUIChar.c]
                          THUMB

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

                  GL_DispChar PROC
;;;44     */
;;;45     void GL_DispChar(U16 c) {
000000  b510              PUSH     {r4,lr}
000002  4604              MOV      r4,r0
;;;46       /* check for control characters */
;;;47       if (c == '\n') {
000004  280a              CMP      r0,#0xa
000006  d103              BNE      |L1.16|
;;;48         GUI_DispNextLine();
000008  e8bd4010          POP      {r4,lr}
00000c  f7ffbffe          B.W      GUI_DispNextLine
                  |L1.16|
;;;49       } else {
;;;50         if (c != '\r') {
000010  2c0d              CMP      r4,#0xd
000012  d00c              BEQ      |L1.46|
;;;51           GUI_LOCK();
;;;52           GUI_Context.pAFont->pfDispChar(c);
000014  4806              LDR      r0,|L1.48|
000016  6980              LDR      r0,[r0,#0x18]  ; GUI_Context
000018  6801              LDR      r1,[r0,#0]
00001a  4620              MOV      r0,r4
00001c  4788              BLX      r1
;;;53           if (GUI_pfDispCharStyle) {
00001e  4805              LDR      r0,|L1.52|
000020  6801              LDR      r1,[r0,#0]  ; GUI_pfDispCharStyle
000022  2900              CMP      r1,#0
000024  d003              BEQ      |L1.46|
;;;54             GUI_pfDispCharStyle(c);
000026  4620              MOV      r0,r4
000028  e8bd4010          POP      {r4,lr}
00002c  4708              BX       r1
                  |L1.46|
;;;55           }
;;;56           GUI_UNLOCK();
;;;57         }
;;;58       }
;;;59     }
00002e  bd10              POP      {r4,pc}
;;;60     
                          ENDP

                  |L1.48|
                          DCD      GUI_Context
                  |L1.52|
                          DCD      GUI_pfDispCharStyle

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

                  GUI_DispNextLine PROC
;;;33     */
;;;34     void GUI_DispNextLine(void) {
000000  b500              PUSH     {lr}
;;;35       GUI_LOCK();
;;;36       GUI_Context.DispPosY += GUI_GetFontDistY();
000002  f7fffffe          BL       GUI_GetFontDistY
000006  4903              LDR      r1,|L2.20|
000008  8c8a              LDRH     r2,[r1,#0x24]  ; GUI_Context
00000a  4410              ADD      r0,r0,r2
00000c  8488              STRH     r0,[r1,#0x24]
;;;37       GUI_Context.DispPosX  = GUI_Context.LBorder;
00000e  8c08              LDRH     r0,[r1,#0x20]  ; GUI_Context
000010  8448              STRH     r0,[r1,#0x22]
;;;38       GUI_UNLOCK();
;;;39     }
000012  bd00              POP      {pc}
;;;40     
                          ENDP

                  |L2.20|
                          DCD      GUI_Context

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

                  GUI_GetCharDistX PROC
;;;104    */
;;;105    int GUI_GetCharDistX(U16 c) {
000000  4901              LDR      r1,|L3.8|
;;;106      int r;
;;;107      GUI_LOCK();
;;;108      r = GUI_Context.pAFont->pfGetCharDistX(c);
000002  6989              LDR      r1,[r1,#0x18]  ; GUI_Context
000004  6849              LDR      r1,[r1,#4]
000006  4708              BX       r1
;;;109      GUI_UNLOCK();
;;;110      return r;
;;;111    }
;;;112    
                          ENDP

                  |L3.8|
                          DCD      GUI_Context

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

                  GUI_GetFontDistY PROC
;;;90     */
;;;91     int GUI_GetFontDistY(void) {
000000  4802              LDR      r0,|L4.12|
;;;92       int r;
;;;93       GUI_LOCK();
;;;94     //  r = GUI_Context.pAFont->YDist;
;;;95       r = GUI_Context.pAFont->YDist * GUI_Context.pAFont->YMag;
000002  6981              LDR      r1,[r0,#0x18]  ; GUI_Context
000004  7d48              LDRB     r0,[r1,#0x15]
000006  7dc9              LDRB     r1,[r1,#0x17]
000008  4348              MULS     r0,r1,r0
;;;96     
;;;97       GUI_UNLOCK();
;;;98       return r;
;;;99     }
00000a  4770              BX       lr
;;;100    
                          ENDP

                  |L4.12|
                          DCD      GUI_Context

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

                  GUI_GetYAdjust PROC
;;;69     */
;;;70     int GUI_GetYAdjust(void) {
000000  4908              LDR      r1,|L5.36|
;;;71       int r = 0;
000002  2000              MOVS     r0,#0
;;;72       GUI_LOCK();
;;;73       switch (GUI_Context.TextAlign & GUI_TA_VERTICAL) {
000004  8d8a              LDRH     r2,[r1,#0x2c]  ; GUI_Context
;;;74     	case GUI_TA_BOTTOM:
;;;75     		r = GUI_Context.pAFont->YSize - 1;
000006  6989              LDR      r1,[r1,#0x18]
000008  f002020c          AND      r2,r2,#0xc            ;73
00000c  2a04              CMP      r2,#4                 ;73
00000e  d006              BEQ      |L5.30|
000010  2a08              CMP      r2,#8                 ;73
000012  d001              BEQ      |L5.24|
000014  2a0c              CMP      r2,#0xc               ;73
000016  d101              BNE      |L5.28|
                  |L5.24|
;;;76         break;
;;;77     	case GUI_TA_VCENTER:
;;;78     		r = GUI_Context.pAFont->YSize / 2;
;;;79         break;
;;;80     	case GUI_TA_BASELINE:
;;;81     		r = GUI_Context.pAFont->YSize / 2;
000018  7d08              LDRB     r0,[r1,#0x14]
00001a  0840              LSRS     r0,r0,#1
                  |L5.28|
;;;82     	}
;;;83       GUI_UNLOCK();
;;;84       return r;
;;;85     }
00001c  4770              BX       lr
                  |L5.30|
00001e  7d08              LDRB     r0,[r1,#0x14]         ;75
000020  1e40              SUBS     r0,r0,#1              ;75
000022  4770              BX       lr
;;;86     
                          ENDP

                  |L5.36|
                          DCD      GUI_Context

⌨️ 快捷键说明

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