📄 lcdp8666_1.txt
字号:
; generated by ARM C/C++ Compiler with , RVCT4.0 [Build 524] for uVision
; commandline ArmCC [--split_sections --debug -c --asm --interleave -o.\Obj\lcdp8666_1.o --depend=.\Obj\lcdp8666_1.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\ConvertColor\LCDP8666_1.c]
THUMB
AREA ||i.LCD_Color2Index_8666_1||, CODE, READONLY, ALIGN=1
LCD_Color2Index_8666_1 PROC
;;;31 */
;;;32 unsigned LCD_Color2Index_8666_1(LCD_COLOR Color) {
000000 b2c1 UXTB r1,r0
;;;33 int r, g, b, Index;
;;;34 r = Color & 255;
;;;35 g = (Color >> 8) & 255;
000002 f3c02207 UBFX r2,r0,#8,#8
000006 b510 PUSH {r4,lr} ;32
;;;36 b = Color >> 16;
000008 0c00 LSRS r0,r0,#16
;;;37 /* Check if image is a gray scale ... */
;;;38 if ((r == g) && (g == b)) {
00000a 4291 CMP r1,r2
00000c d107 BNE |L1.30|
00000e 4282 CMP r2,r0
000010 d105 BNE |L1.30|
;;;39 return 120 + (r + 8) / 17; /* Convert into colors from 120 - 135 */
000012 3108 ADDS r1,r1,#8
000014 2011 MOVS r0,#0x11
000016 fb91f0f0 SDIV r0,r1,r0
00001a 3078 ADDS r0,r0,#0x78
|L1.28|
;;;40 }
;;;41 /* Convert into the 6*6*6 colors ... */
;;;42 r = (r * 5 + 127) / 255;
;;;43 g = (g * 5 + 127) / 255;
;;;44 b = (b * 5 + 127) / 255;
;;;45 Index = r + 6 * g + 36 * b;
;;;46 return (Index < 108) ? Index + 12 : Index + 28;
;;;47 }
00001c bd10 POP {r4,pc}
|L1.30|
00001e 23ff MOVS r3,#0xff ;42
000020 eb010181 ADD r1,r1,r1,LSL #2 ;42
000024 317f ADDS r1,r1,#0x7f ;42
000026 fb91f4f3 SDIV r4,r1,r3 ;42
00002a eb020182 ADD r1,r2,r2,LSL #2 ;43
00002e 317f ADDS r1,r1,#0x7f ;43
000030 eb000080 ADD r0,r0,r0,LSL #2 ;44
000034 fb91f1f3 SDIV r1,r1,r3 ;43
000038 307f ADDS r0,r0,#0x7f ;44
00003a fb90f0f3 SDIV r0,r0,r3 ;44
00003e eb010141 ADD r1,r1,r1,LSL #1 ;45
000042 eb040141 ADD r1,r4,r1,LSL #1 ;45
000046 eb0000c0 ADD r0,r0,r0,LSL #3 ;45
00004a eb010180 ADD r1,r1,r0,LSL #2 ;45
00004e f101000c ADD r0,r1,#0xc ;46
000052 296c CMP r1,#0x6c ;46
000054 dbe2 BLT |L1.28|
000056 3010 ADDS r0,r0,#0x10 ;46
000058 bd10 POP {r4,pc}
;;;48
ENDP
AREA ||i.LCD_GetIndexMask_8666_1||, CODE, READONLY, ALIGN=1
LCD_GetIndexMask_8666_1 PROC
;;;77 */
;;;78 unsigned LCD_GetIndexMask_8666_1(void) {
000000 20ff MOVS r0,#0xff
;;;79 return 0xff;
;;;80 }
000002 4770 BX lr
;;;81
ENDP
AREA ||i.LCD_Index2Color_8666_1||, CODE, READONLY, ALIGN=1
LCD_Index2Color_8666_1 PROC
;;;52 */
;;;53 LCD_COLOR LCD_Index2Color_8666_1(int Index) {
000000 b510 PUSH {r4,lr}
;;;54 unsigned int r,g;
;;;55 U32 b;
;;;56 /* 16 Gray scale range ? */
;;;57 if ((Index >= 120) && (Index < 136)) {
000002 f1a00178 SUB r1,r0,#0x78
000006 2910 CMP r1,#0x10
000008 d206 BCS |L3.24|
;;;58 return (U32)0x111111 * (U32)(Index - 120);
00000a eb011001 ADD r0,r1,r1,LSL #4
00000e eb002001 ADD r0,r0,r1,LSL #8
000012 eb003000 ADD r0,r0,r0,LSL #12
;;;59 }
;;;60 if ((Index < 12) || (Index > 243)) {
;;;61 return 0; /* Black for illegal indices */
;;;62 }
;;;63 if (Index >= 120) {
;;;64 Index -= 28;
;;;65 } else {
;;;66 Index -= 12;
;;;67 }
;;;68 r = (Index % 6) * (255 / 5);
;;;69 g = ((Index / 6) % 6) * (255 / 5);
;;;70 b = (Index / 36) * (255 / 5);
;;;71 return r + (g << 8) + ((U32)b << 16);
;;;72 }
000016 bd10 POP {r4,pc}
|L3.24|
000018 f1a0010c SUB r1,r0,#0xc ;60
00001c 29e8 CMP r1,#0xe8 ;60
00001e d301 BCC |L3.36|
000020 2000 MOVS r0,#0 ;61
000022 bd10 POP {r4,pc}
|L3.36|
000024 2878 CMP r0,#0x78 ;63
000026 db01 BLT |L3.44|
000028 381c SUBS r0,r0,#0x1c ;64
00002a e000 B |L3.46|
|L3.44|
00002c 4608 MOV r0,r1 ;64
|L3.46|
00002e 2206 MOVS r2,#6 ;68
000030 fb90f1f2 SDIV r1,r0,r2 ;68
000034 fb91f4f2 SDIV r4,r1,r2 ;69
000038 fb020311 MLS r3,r2,r1,r0 ;68
00003c fb021114 MLS r1,r2,r4,r1 ;69
000040 2224 MOVS r2,#0x24 ;70
000042 fb90f0f2 SDIV r0,r0,r2 ;70
000046 eb031303 ADD r3,r3,r3,LSL #4 ;68
00004a eb011101 ADD r1,r1,r1,LSL #4 ;69
00004e eb030343 ADD r3,r3,r3,LSL #1 ;68
000052 eb010141 ADD r1,r1,r1,LSL #1 ;69
000056 eb001000 ADD r0,r0,r0,LSL #4 ;70
00005a eb000040 ADD r0,r0,r0,LSL #1 ;70
00005e eb032101 ADD r1,r3,r1,LSL #8 ;71
000062 eb014000 ADD r0,r1,r0,LSL #16 ;71
000066 bd10 POP {r4,pc}
;;;73
ENDP
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -