📄 lcdp0.txt
字号:
; generated by ARM C/C++ Compiler with , RVCT4.0 [Build 524] for uVision
; commandline ArmCC [--split_sections --debug -c --asm --interleave -o.\Obj\lcdp0.o --depend=.\Obj\lcdp0.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\ConvertMono\LCDP0.c]
THUMB
AREA ||i.LCD_Color2Index_0||, CODE, READONLY, ALIGN=2
LCD_Color2Index_0 PROC
;;;32 */
;;;33 unsigned LCD_Color2Index_0(LCD_COLOR Color, const LCD_PHYSPALETTE* pPhysPal) {
000000 e92d47f0 PUSH {r4-r10,lr}
;;;34 int i;
;;;35 int NumEntries = pPhysPal->NumEntries;
;;;36 int BestIndex = 0;
;;;37 U32 BestDiff = 0xffffff; /* Initialize to worst match */
;;;38 const LCD_COLOR* pPalEntry;
;;;39 /* Try to find perfect match */
;;;40 i=0; pPalEntry = &pPhysPal->pPalEntries[0];
000004 e9d16100 LDRD r6,r1,[r1,#0]
000008 4681 MOV r9,r0 ;33
00000a f04f0800 MOV r8,#0 ;36
00000e f06f457f MVN r5,#0xff000000 ;37
000012 4640 MOV r0,r8
000014 ea4f0701 MOV.W r7,r1
|L1.24|
;;;41 do {
;;;42 if (Color==*(pPalEntry+i))
000018 f8512020 LDR r2,[r1,r0,LSL #2]
00001c 454a CMP r2,r9
00001e d010 BEQ |L1.66|
;;;43 return i;
;;;44 } while (++i<NumEntries);
000020 1c40 ADDS r0,r0,#1
000022 42b0 CMP r0,r6
000024 dbf8 BLT |L1.24|
;;;45 /* Find best match */
;;;46 i=0; pPalEntry = &pPhysPal->pPalEntries[0];
000026 2400 MOVS r4,#0
|L1.40|
;;;47 do {
;;;48 U32 Diff = GUI_CalcColorDist (Color, *(pPalEntry+i));
000028 f8571024 LDR r1,[r7,r4,LSL #2]
00002c 4648 MOV r0,r9
00002e f7fffffe BL GUI_CalcColorDist
;;;49 if (Diff < BestDiff) {
000032 42a8 CMP r0,r5
000034 d201 BCS |L1.58|
;;;50 BestDiff = Diff;
000036 4605 MOV r5,r0
;;;51 BestIndex = i;
000038 46a0 MOV r8,r4
|L1.58|
;;;52 }
;;;53 } while (++i<NumEntries);
00003a 1c64 ADDS r4,r4,#1
00003c 42b4 CMP r4,r6
00003e dbf3 BLT |L1.40|
;;;54 return BestIndex;
000040 4640 MOV r0,r8
|L1.66|
;;;55 }
000042 e8bd87f0 POP {r4-r10,pc}
;;;56
ENDP
AREA ||i.LCD_GetIndexMask_0||, CODE, READONLY, ALIGN=1
LCD_GetIndexMask_0 PROC
;;;71 */
;;;72 unsigned LCD_GetIndexMask_0(void) {
000000 f64f70ff MOV r0,#0xffff
;;;73 return ((1 << LCD_BITSPERPIXEL) - 1);
;;;74 }
000004 4770 BX lr
;;;75
ENDP
AREA ||i.LCD_Index2Color_0||, CODE, READONLY, ALIGN=1
LCD_Index2Color_0 PROC
;;;60 */
;;;61 LCD_COLOR LCD_Index2Color_0(int Index, const LCD_PHYSPALETTE* pPhysPal) {
000000 680a LDR r2,[r1,#0]
;;;62 if ((unsigned)Index >= (unsigned) pPhysPal->NumEntries) {
000002 4282 CMP r2,r0
000004 d801 BHI |L3.10|
;;;63 return 0; /* Illegal index */
000006 2000 MOVS r0,#0
;;;64 }
;;;65 return *(pPhysPal->pPalEntries+Index);
;;;66 }
000008 4770 BX lr
|L3.10|
00000a 6849 LDR r1,[r1,#4] ;65
00000c f8510020 LDR r0,[r1,r0,LSL #2] ;65
000010 4770 BX lr
;;;67
ENDP
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -