📄 font5_7.txt
字号:
; generated by ARM/Thumb C/C++ Compiler with , RVCT3.0 [Build 951] for uVision
; commandline ArmCC [--debug -c --asm --interleave -ofont5_7.o --device=DARMP --apcs=interwork -O0 -IC:\Keil\ARM\INC\Philips GUI\font5_7.c]
ARM
AREA ||.text.7||, CODE, READONLY, ALIGN=2
GUI_PutChar PROC
;;;1079 uint8 GUI_PutChar(uint32 x, uint32 y, uint8 ch)
;;;1080 { uint8 font_dat;
000000 e92d47f0 PUSH {r4-r10,lr}
000004 e1a04000 MOV r4,r0
000008 e1a05001 MOV r5,r1
00000c e1a06002 MOV r6,r2
;;;1081 uint8 i, j;
;;;1082 TCOLOR bakc;
;;;1083
;;;1084 /* 参数过滤 */
;;;1085 if( x>(GUI_LCM_XMAX-8) ) return(0);
000010 e354004c CMP r4,#0x4c
000014 9a000002 BLS |L1.36|
000018 e3a00000 MOV r0,#0
|L1.28|
00001c e8bd47f0 POP {r4-r10,lr}
;;;1086 if( y>(GUI_LCM_YMAX-8) ) return(0);
;;;1087 if( (ch<0x20) || (ch>0x7f) ) ch = 0x20;
;;;1088
;;;1089 ch -= 0x20;
;;;1090 for(i=0; i<8; i++)
;;;1091 { /* 读取点阵数据 */
;;;1092 font_dat = FONT5x7ASCII[ch][i];
;;;1093
;;;1094 for(j=0; j<6; j++)
;;;1095 { /* 设置相应的点为color或为back_color */
;;;1096 if( (font_dat&DCB2HEX_TAB[j])==0 ) GUI_CopyColor(&bakc, back_color);
;;;1097 else GUI_CopyColor(&bakc, disp_color);
;;;1098 GUI_Point(x, y, bakc);
;;;1099 x++;
;;;1100 }
;;;1101
;;;1102 y++; // 指向下一行
;;;1103 x -= 6; // 恢复x值
;;;1104 }
;;;1105
;;;1106 return(1);
;;;1107 }
000020 e12fff1e BX lr
|L1.36|
000024 e3550028 CMP r5,#0x28 ;1086
000028 9a000001 BLS |L1.52| ;1086
00002c e3a00000 MOV r0,#0 ;1086
000030 eafffff9 B |L1.28| ;1086
|L1.52|
000034 e3560020 CMP r6,#0x20 ;1087
000038 ba000001 BLT |L1.68| ;1087
00003c e356007f CMP r6,#0x7f ;1087
000040 da000000 BLE |L1.72| ;1087
|L1.68|
000044 e3a06020 MOV r6,#0x20 ;1087
|L1.72|
000048 e2460020 SUB r0,r6,#0x20 ;1089
00004c e20060ff AND r6,r0,#0xff ;1089
000050 e3a08000 MOV r8,#0 ;1090
000054 ea00001c B |L1.204| ;1090
|L1.88|
000058 e59f0140 LDR r0,|L1.416| ;1092
00005c e0800186 ADD r0,r0,r6,LSL #3 ;1092
000060 e7d07008 LDRB r7,[r0,r8] ;1092
000064 e3a09000 MOV r9,#0 ;1094
000068 ea000011 B |L1.180| ;1094
|L1.108|
00006c e59f0130 LDR r0,|L1.420| ;1096
000070 e7d00009 LDRB r0,[r0,r9] ;1096
000074 e1100007 TST r0,r7 ;1096
000078 1a000003 BNE |L1.140| ;1096
00007c e59f0124 LDR r0,|L1.424| ;1096
000080 e5d00000 LDRB r0,[r0,#0] ;1096 ; back_color
000084 e200a001 AND r10,r0,#1 ;1096
000088 ea000002 B |L1.152| ;1096
|L1.140|
00008c e59f0118 LDR r0,|L1.428| ;1097
000090 e5d00000 LDRB r0,[r0,#0] ;1097 ; disp_color
000094 e200a001 AND r10,r0,#1 ;1097
|L1.152|
000098 e20510ff AND r1,r5,#0xff ;1098
00009c e20400ff AND r0,r4,#0xff ;1098
0000a0 e1a0200a MOV r2,r10 ;1098
0000a4 ebfffffe BL GUI_Point ;1098
0000a8 e2844001 ADD r4,r4,#1 ;1099
0000ac e2890001 ADD r0,r9,#1 ;1094
0000b0 e20090ff AND r9,r0,#0xff ;1094
|L1.180|
0000b4 e3590006 CMP r9,#6 ;1094
0000b8 baffffeb BLT |L1.108| ;1094
0000bc e2855001 ADD r5,r5,#1 ;1102
0000c0 e2444006 SUB r4,r4,#6 ;1103
0000c4 e2880001 ADD r0,r8,#1 ;1090
0000c8 e20080ff AND r8,r0,#0xff ;1090
|L1.204|
0000cc e3580008 CMP r8,#8 ;1090
0000d0 baffffe0 BLT |L1.88| ;1090
0000d4 e3a00001 MOV r0,#1 ;1106
0000d8 eaffffcf B |L1.28| ;1106
ENDP
GUI_PutString PROC
;;;1120 void GUI_PutString(uint32 x, uint32 y, char *str)
;;;1121 { while(1)
0000dc e92d4070 PUSH {r4-r6,lr}
0000e0 e1a04000 MOV r4,r0
0000e4 e1a06001 MOV r6,r1
0000e8 e1a05002 MOV r5,r2
0000ec ea00000b B |L1.288|
;;;1122 { if( (*str)=='\0' ) break;
|L1.240|
0000f0 e5d50000 LDRB r0,[r5,#0]
0000f4 e3500000 CMP r0,#0
0000f8 1a000000 BNE |L1.256|
0000fc ea000008 B |L1.292|
;;;1123 if( GUI_PutChar(x, y, *str++)==0 ) break;
|L1.256|
000100 e4d52001 LDRB r2,[r5],#1
000104 e1a01006 MOV r1,r6
000108 e1a00004 MOV r0,r4
00010c ebfffffe BL GUI_PutChar
000110 e3500000 CMP r0,#0
000114 1a000000 BNE |L1.284|
000118 ea000001 B |L1.292|
;;;1124 x += 6; // 下一个字符显示位置,y不变(即不换行)
|L1.284|
00011c e2844006 ADD r4,r4,#6
|L1.288|
000120 eafffff2 B |L1.240| ;1121
|L1.292|
000124 e1a00000 MOV r0,r0 ;1122
;;;1125 }
;;;1126 }
000128 e8bd4070 POP {r4-r6,lr}
00012c e12fff1e BX lr
ENDP
GUI_PutNoStr PROC
;;;1139 void GUI_PutNoStr(uint32 x, uint32 y, char *str, uint8 no)
;;;1140 { if(no==0) return;
000130 e92d41f0 PUSH {r4-r8,lr}
000134 e1a04000 MOV r4,r0
000138 e1a06001 MOV r6,r1
00013c e1a05002 MOV r5,r2
000140 e1a07003 MOV r7,r3
000144 e3570000 CMP r7,#0
000148 1a000001 BNE |L1.340|
;;;1141 for(; no>0; no--)
;;;1142 { if( (*str)=='\0' ) break;
;;;1143 if( GUI_PutChar(x, y, *str++)==0 ) break;
;;;1144 x += 6; // 下一个字符显示位置,y不变(即不换行)
;;;1145 }
;;;1146 }
|L1.332|
00014c e8bd41f0 POP {r4-r8,lr}
000150 e12fff1e BX lr
|L1.340|
000154 ea00000d B |L1.400| ;1141
|L1.344|
000158 e5d50000 LDRB r0,[r5,#0] ;1142
00015c e3500000 CMP r0,#0 ;1142
000160 1a000000 BNE |L1.360| ;1142
000164 ea00000b B |L1.408| ;1142
|L1.360|
000168 e4d52001 LDRB r2,[r5],#1 ;1143
00016c e1a01006 MOV r1,r6 ;1143
000170 e1a00004 MOV r0,r4 ;1143
000174 ebfffffe BL GUI_PutChar ;1143
000178 e3500000 CMP r0,#0 ;1143
00017c 1a000000 BNE |L1.388| ;1143
000180 ea000004 B |L1.408| ;1143
|L1.388|
000184 e2844006 ADD r4,r4,#6 ;1144
000188 e2470001 SUB r0,r7,#1 ;1141
00018c e20070ff AND r7,r0,#0xff ;1141
|L1.400|
000190 e3570000 CMP r7,#0 ;1141
000194 caffffef BGT |L1.344| ;1141
|L1.408|
000198 e1a00000 MOV r0,r0 ;1142
00019c eaffffea B |L1.332|
|L1.416|
0001a0 00000000 DCD FONT5x7ASCII
|L1.420|
0001a4 00000000 DCD DCB2HEX_TAB
|L1.424|
0001a8 00000000 DCD back_color
|L1.428|
0001ac 00000000 DCD disp_color
ENDP
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -