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 + -
显示快捷键?