📄 loadbit.txt
字号:
; generated by ARM/Thumb C/C++ Compiler with , RVCT3.0 [Build 951] for uVision
; commandline ArmCC [--debug -c --asm --interleave -oloadbit.o --device=DARMP --apcs=interwork -O0 -IC:\Keil\ARM\INC\Philips GUI\loadbit.c]
ARM
AREA ||.text.7||, CODE, READONLY, ALIGN=2
GUI_LoadLine PROC
;;;21 uint8 GUI_LoadLine(uint32 x, uint32 y, uint8 *dat, uint32 no)
;;;22 { uint8 bit_dat;
000000 e92d47f0 PUSH {r4-r10,lr}
000004 e1a04000 MOV r4,r0
000008 e1a05001 MOV r5,r1
00000c e1a06002 MOV r6,r2
000010 e1a07003 MOV r7,r3
;;;23 uint8 i;
;;;24 TCOLOR bakc;
;;;25
;;;26 /* 参数过滤 */
;;;27 if(x>=GUI_LCM_XMAX) return(0);
000014 e3540054 CMP r4,#0x54
000018 3a000002 BCC |L1.40|
00001c e3a00000 MOV r0,#0
|L1.32|
000020 e8bd47f0 POP {r4-r10,lr}
;;;28 if(y>=GUI_LCM_YMAX) return(0);
;;;29
;;;30 for(i=0; i<no; i++)
;;;31 { /* 判断是否要读取点阵数据 */
;;;32 if( (i%8)==0 ) bit_dat = *dat++;
;;;33
;;;34 /* 设置相应的点为color或为back_color */
;;;35 if( (bit_dat&DCB2HEX_TAB[i&0x07])==0 ) GUI_CopyColor(&bakc, back_color);
;;;36 else GUI_CopyColor(&bakc, disp_color);
;;;37 GUI_Point(x, y, bakc);
;;;38
;;;39 if( (++x)>=GUI_LCM_XMAX ) return(0);
;;;40 }
;;;41
;;;42 return(1);
;;;43 }
000024 e12fff1e BX lr
|L1.40|
000028 e3550030 CMP r5,#0x30 ;28
00002c 3a000001 BCC |L1.56| ;28
000030 e3a00000 MOV r0,#0 ;28
000034 eafffff9 B |L1.32| ;28
|L1.56|
000038 e3a09000 MOV r9,#0 ;30
00003c ea00001d B |L1.184| ;30
|L1.64|
000040 e1a01fc9 ASR r1,r9,#31 ;32
000044 e0891ea1 ADD r1,r9,r1,LSR #29 ;32
000048 e1a011c1 ASR r1,r1,#3 ;32
00004c e0591181 SUBS r1,r9,r1,LSL #3 ;32
000050 1a000000 BNE |L1.88| ;32
000054 e4d68001 LDRB r8,[r6],#1 ;32
|L1.88|
000058 e2090007 AND r0,r9,#7 ;35
00005c e59f1124 LDR r1,|L1.392| ;35
000060 e7d10000 LDRB r0,[r1,r0] ;35
000064 e1100008 TST r0,r8 ;35
000068 1a000003 BNE |L1.124| ;35
00006c e59f0118 LDR r0,|L1.396| ;35
000070 e5d00000 LDRB r0,[r0,#0] ;35 ; back_color
000074 e200a001 AND r10,r0,#1 ;35
000078 ea000002 B |L1.136| ;35
|L1.124|
00007c e59f010c LDR r0,|L1.400| ;36
000080 e5d00000 LDRB r0,[r0,#0] ;36 ; disp_color
000084 e200a001 AND r10,r0,#1 ;36
|L1.136|
000088 e20510ff AND r1,r5,#0xff ;37
00008c e20400ff AND r0,r4,#0xff ;37
000090 e1a0200a MOV r2,r10 ;37
000094 ebfffffe BL GUI_Point ;37
000098 e2840001 ADD r0,r4,#1 ;39
00009c e1a04000 MOV r4,r0 ;39
0000a0 e3500054 CMP r0,#0x54 ;39
0000a4 3a000001 BCC |L1.176| ;39
0000a8 e3a00000 MOV r0,#0 ;39
0000ac eaffffdb B |L1.32| ;39
|L1.176|
0000b0 e2890001 ADD r0,r9,#1 ;30
0000b4 e20090ff AND r9,r0,#0xff ;30
|L1.184|
0000b8 e1590007 CMP r9,r7 ;30
0000bc 3affffdf BCC |L1.64| ;30
0000c0 e3a00001 MOV r0,#1 ;42
0000c4 eaffffd5 B |L1.32| ;42
ENDP
GUI_LoadPic PROC
;;;59 void GUI_LoadPic(uint32 x, uint32 y, uint8 *dat, uint32 hno, uint32 lno)
;;;60 { uint32 i;
0000c8 e92d47f0 PUSH {r4-r10,lr}
0000cc e1a04000 MOV r4,r0
0000d0 e1a05001 MOV r5,r1
0000d4 e1a06002 MOV r6,r2
0000d8 e1a07003 MOV r7,r3
0000dc e59d8020 LDR r8,[sp,#0x20]
;;;61
;;;62 for(i=0; i<lno; i++)
0000e0 e3a09000 MOV r9,#0
0000e4 ea00000a B |L1.276|
;;;63 { GUI_LoadLine(x, y, dat, hno); // 输出一行数据
|L1.232|
0000e8 e1a03007 MOV r3,r7
0000ec e1a02006 MOV r2,r6
0000f0 e1a01005 MOV r1,r5
0000f4 e1a00004 MOV r0,r4
0000f8 ebfffffe BL GUI_LoadLine
;;;64 y++; // 显示下一行
0000fc e2855001 ADD r5,r5,#1
;;;65 dat += (hno>>3); // 计算下一行的数据
000100 e08661a7 ADD r6,r6,r7,LSR #3
;;;66 if( (hno&0x07)!=0 ) dat++;
000104 e3170007 TST r7,#7
000108 0a000000 BEQ |L1.272|
00010c e2866001 ADD r6,r6,#1
|L1.272|
000110 e2899001 ADD r9,r9,#1 ;62
|L1.276|
000114 e1590008 CMP r9,r8 ;62
000118 3afffff2 BCC |L1.232| ;62
;;;67 }
;;;68 }
00011c e8bd47f0 POP {r4-r10,lr}
000120 e12fff1e BX lr
ENDP
GUI_LoadPic1 PROC
;;;84 void GUI_LoadPic1(uint32 x, uint32 y, uint8 *dat, uint32 hno, uint32 lno)
;;;85 { uint32 i;
000124 e92d47f0 PUSH {r4-r10,lr}
000128 e1a04000 MOV r4,r0
00012c e1a05001 MOV r5,r1
000130 e1a06002 MOV r6,r2
000134 e1a07003 MOV r7,r3
000138 e59d8020 LDR r8,[sp,#0x20]
;;;86
;;;87 GUI_ExchangeColor(); // 显示色与背景色交换
00013c ebfffffe BL GUI_ExchangeColor
;;;88 for(i=0; i<lno; i++)
000140 e3a09000 MOV r9,#0
000144 ea00000a B |L1.372|
;;;89 { GUI_LoadLine(x, y, dat, hno); // 输出一行数据
|L1.328|
000148 e1a03007 MOV r3,r7
00014c e1a02006 MOV r2,r6
000150 e1a01005 MOV r1,r5
000154 e1a00004 MOV r0,r4
000158 ebfffffe BL GUI_LoadLine
;;;90 y++; // 显示下一行
00015c e2855001 ADD r5,r5,#1
;;;91 dat += (hno>>3); // 计算下一行的数据
000160 e08661a7 ADD r6,r6,r7,LSR #3
;;;92 if( (hno&0x07)!=0 ) dat++;
000164 e3170007 TST r7,#7
000168 0a000000 BEQ |L1.368|
00016c e2866001 ADD r6,r6,#1
|L1.368|
000170 e2899001 ADD r9,r9,#1 ;88
|L1.372|
000174 e1590008 CMP r9,r8 ;88
000178 3afffff2 BCC |L1.328| ;88
;;;93 }
;;;94 GUI_ExchangeColor();
00017c ebfffffe BL GUI_ExchangeColor
;;;95
;;;96 }
000180 e8bd47f0 POP {r4-r10,lr}
000184 e12fff1e BX lr
|L1.392|
000188 00000000 DCD DCB2HEX_TAB
|L1.396|
00018c 00000000 DCD back_color
|L1.400|
000190 00000000 DCD disp_color
ENDP
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -