📄 lcdaa.txt
字号:
; generated by ARM C/C++ Compiler with , RVCT4.0 [Build 524] for uVision
; commandline ArmCC [--split_sections --debug -c --asm --interleave -o.\Obj\lcdaa.o --depend=.\Obj\lcdaa.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\LCDAA.c]
THUMB
AREA ||i.LCD_AA_MixColors||, CODE, READONLY, ALIGN=1
LCD_AA_MixColors PROC
;;;61 */
;;;62 LCD_COLOR LCD_AA_MixColors(LCD_COLOR Color, LCD_COLOR BkColor, U8 Intens) {
000000 b530 PUSH {r4,r5,lr}
;;;63 /* Calc Color seperations for FgColor first */
;;;64 I32 R = (Color&0xff)*Intens;
000002 b2c5 UXTB r5,r0
;;;65 I32 G = (Color&0xff00)*Intens;
000004 f400447f AND r4,r0,#0xff00
;;;66 I32 B = (Color&0xff0000)*Intens;
000008 f400037f AND r3,r0,#0xff0000
;;;67 /* Add Color seperations for BkColor */
;;;68 Intens = 15-Intens;
00000c f1c2000f RSB r0,r2,#0xf
000010 4355 MULS r5,r2,r5 ;64
000012 4354 MULS r4,r2,r4 ;65
000014 4353 MULS r3,r2,r3 ;66
000016 b2c0 UXTB r0,r0
;;;69 R += (BkColor&0xff)*Intens;
000018 b2ca UXTB r2,r1
00001a fb025200 MLA r2,r2,r0,r5
;;;70 G += (BkColor&0xff00)*Intens;
00001e f401457f AND r5,r1,#0xff00
;;;71 B += (BkColor&0xff0000)*Intens;
000022 f401017f AND r1,r1,#0xff0000
000026 fb054400 MLA r4,r5,r0,r4 ;70
00002a fb013100 MLA r1,r1,r0,r3
;;;72 R = (R/15)&0xff;
00002e 200f MOVS r0,#0xf
000030 fb92f2f0 SDIV r2,r2,r0
;;;73 G = (G/15)&0xff00;
000034 fb94f3f0 SDIV r3,r4,r0
;;;74 B = (B/15)&0xff0000;
000038 fb91f0f0 SDIV r0,r1,r0
00003c b2d2 UXTB r2,r2 ;72
00003e f403437f AND r3,r3,#0xff00 ;73
000042 f400007f AND r0,r0,#0xff0000
;;;75 Color = R+G+B;
000046 18d1 ADDS r1,r2,r3
000048 4408 ADD r0,r0,r1
;;;76 return Color;
;;;77 }
00004a bd30 POP {r4,r5,pc}
;;;78
ENDP
AREA ||i.LCD_SetPixelAA||, CODE, READONLY, ALIGN=2
LCD_SetPixelAA PROC
;;;82 */
;;;83 void LCD_SetPixelAA(int x, int y, U8 Intens) {
000000 e92d41f0 PUSH {r4-r8,lr}
000004 4604 MOV r4,r0
000006 460d MOV r5,r1
000008 0016 MOVS r6,r2
;;;84 if (Intens == 0)
00000a d02a BEQ |L2.98|
;;;85 return;
;;;86 RETURN_IF_Y_OUT();
00000c 4f16 LDR r7,|L2.104|
00000e f9b70006 LDRSH r0,[r7,#6] ; GUI_Context
000012 42a8 CMP r0,r5
000014 dc25 BGT |L2.98|
000016 f9b7000a LDRSH r0,[r7,#0xa] ; GUI_Context
00001a 42a8 CMP r0,r5
00001c db21 BLT |L2.98|
;;;87 RETURN_IF_X_OUT();
00001e f9b70004 LDRSH r0,[r7,#4] ; GUI_Context
000022 42a0 CMP r0,r4
000024 dc1d BGT |L2.98|
000026 f9b70008 LDRSH r0,[r7,#8] ; GUI_Context
00002a 42a0 CMP r0,r4
00002c db19 BLT |L2.98|
00002e 4638 MOV r0,r7 ;86
;;;88 if (Intens >= 15) {
;;;89 LCDDEV_L0_SetPixelIndex(x,y, LCD_COLORINDEX);
000030 8840 LDRH r0,[r0,#2]
000032 2e0f CMP r6,#0xf ;88
000034 d20d BCS |L2.82|
;;;90 } else {
;;;91 LCD_COLOR Color = LCD_Index2Color(LCD_COLORINDEX);
000036 f7fffffe BL LCD_Index2Color
00003a 4680 MOV r8,r0
;;;92 LCD_COLOR BkColor = LCD_GetPixelColor(x,y);
00003c 4629 MOV r1,r5
00003e 4620 MOV r0,r4
000040 f7fffffe BL LCD_GetPixelColor
;;;93 Color = LCD_AA_MixColors(Color, BkColor, Intens);
000044 4601 MOV r1,r0
000046 4632 MOV r2,r6
000048 4640 MOV r0,r8
00004a f7fffffe BL LCD_AA_MixColors
;;;94 LCDDEV_L0_SetPixelIndex(x,y, LCD_Color2Index(Color));
00004e f7fffffe BL LCD_Color2Index
|L2.82|
000052 6cb9 LDR r1,[r7,#0x48] ;89 ; GUI_Context
000054 4602 MOV r2,r0 ;89
000056 6a4b LDR r3,[r1,#0x24] ;89
000058 4629 MOV r1,r5 ;89
00005a 4620 MOV r0,r4 ;89
00005c e8bd41f0 POP {r4-r8,lr} ;89
000060 4718 BX r3 ;89
|L2.98|
;;;95 }
;;;96 }
000062 e8bd81f0 POP {r4-r8,pc}
;;;97
ENDP
000066 0000 DCW 0x0000
|L2.104|
DCD GUI_Context
AREA ||i.LCD_SetPixelAA_NoTrans||, CODE, READONLY, ALIGN=2
LCD_SetPixelAA_NoTrans PROC
;;;101 */
;;;102 void LCD_SetPixelAA_NoTrans(int x, int y, U8 Intens) {
000000 e92d41f0 PUSH {r4-r8,lr}
;;;103 RETURN_IF_Y_OUT();
000004 4f19 LDR r7,|L3.108|
000006 4604 MOV r4,r0 ;102
000008 f9b70006 LDRSH r0,[r7,#6] ; GUI_Context
00000c 460d MOV r5,r1 ;102
00000e 4616 MOV r6,r2 ;102
000010 4288 CMP r0,r1
000012 dc29 BGT |L3.104|
000014 f9b7000a LDRSH r0,[r7,#0xa] ; GUI_Context
000018 42a8 CMP r0,r5
00001a db25 BLT |L3.104|
;;;104 RETURN_IF_X_OUT();
00001c f9b70004 LDRSH r0,[r7,#4] ; GUI_Context
000020 42a0 CMP r0,r4
000022 dc21 BGT |L3.104|
000024 f9b70008 LDRSH r0,[r7,#8] ; GUI_Context
000028 42a0 CMP r0,r4
00002a db1d BLT |L3.104|
00002c 4638 MOV r0,r7 ;103
;;;105 if (Intens == 0) {
;;;106 LCDDEV_L0_SetPixelIndex(x,y, LCD_BKCOLORINDEX);
00002e 6c81 LDR r1,[r0,#0x48]
000030 8800 LDRH r0,[r0,#0]
000032 b916 CBNZ r6,|L3.58|
|L3.52|
000034 4602 MOV r2,r0
000036 6a4b LDR r3,[r1,#0x24]
000038 e003 B |L3.66|
|L3.58|
;;;107 } else if (Intens == 15) {
00003a 2e0f CMP r6,#0xf
00003c d106 BNE |L3.76|
;;;108 LCDDEV_L0_SetPixelIndex(x,y, LCD_COLORINDEX);
00003e 887a LDRH r2,[r7,#2] ; GUI_Context
000040 6a4b LDR r3,[r1,#0x24]
|L3.66|
;;;109 } else {
;;;110 LCD_COLOR Color = LCD_AA_MixColors(LCD_Index2Color(LCD_COLORINDEX),
;;;111 LCD_Index2Color(LCD_BKCOLORINDEX),
;;;112 Intens);
;;;113 LCDDEV_L0_SetPixelIndex(x,y,LCD_Color2Index(Color));
000042 4629 MOV r1,r5
000044 4620 MOV r0,r4
000046 e8bd41f0 POP {r4-r8,lr}
00004a 4718 BX r3
|L3.76|
00004c f7fffffe BL LCD_Index2Color
000050 4680 MOV r8,r0 ;110
000052 8878 LDRH r0,[r7,#2] ;110 ; GUI_Context
000054 f7fffffe BL LCD_Index2Color
000058 4632 MOV r2,r6 ;110
00005a 4641 MOV r1,r8 ;110
00005c f7fffffe BL LCD_AA_MixColors
000060 f7fffffe BL LCD_Color2Index
;;;114 }
000064 6cb9 LDR r1,[r7,#0x48] ; GUI_Context
000066 e7e5 B |L3.52|
|L3.104|
;;;115 }
000068 e8bd81f0 POP {r4-r8,pc}
;;;116
ENDP
|L3.108|
DCD GUI_Context
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -