📄 windows.txt
字号:
; generated by ARM/Thumb C/C++ Compiler with , RVCT3.0 [Build 951] for uVision
; commandline ArmCC [--debug -c --asm --interleave -owindows.o --device=DARMP --apcs=interwork -O0 -IC:\Keil\ARM\INC\Philips GUI\windows.c]
ARM
AREA ||.text.7||, CODE, READONLY, ALIGN=2
GUI_WindowsDraw PROC
;;;20 uint8 GUI_WindowsDraw(WINDOWS *win)
;;;21 { uint8 *str;
000000 e92d43f8 PUSH {r3-r9,lr}
000004 e1a04000 MOV r4,r0
;;;22 int32 bak, bak1, bak2;
;;;23
;;;24 /* 参数过滤,若窗口起出范围,则返回0 */
;;;25 if( ( (win->with)<20 ) || ( (win->hight)<20 ) ) return(0); // 宽度、高度检查,限制最小窗口
000008 e5940008 LDR r0,[r4,#8]
00000c e3500014 CMP r0,#0x14
000010 3a000002 BCC |L1.32|
000014 e594000c LDR r0,[r4,#0xc]
000018 e3500014 CMP r0,#0x14
00001c 2a000002 BCS |L1.44|
|L1.32|
000020 e3a00000 MOV r0,#0
|L1.36|
000024 e8bd43f8 POP {r3-r9,lr}
;;;26 if( (win->x + win->with ) > GUI_LCM_XMAX ) return(0); // 窗口宽度是否溢出
;;;27 if( (win->y + win->hight ) > GUI_LCM_YMAX ) return(0); // 窗口高度是否溢出
;;;28
;;;29 /* 开始画窗口 */
;;;30 GUI_RectangleFill(win->x, win->y, win->x + win->with - 1, win->y + win->hight - 1, back_color);
;;;31 GUI_Rectangle(win->x, win->y, win->x + win->with - 1, win->y + win->hight - 1, disp_color); // 画窗口
;;;32 GUI_HLine(win->x, win->y + 12, win->x + win->with - 1, disp_color); // 画标题目栏
;;;33 GUI_RLine(win->x + 12, win->y, win->y + 12, disp_color); // 画关闭窗号按钮
;;;34 GUI_Line(win->x, win->y, win->x + 12, win->y + 12, disp_color);
;;;35 GUI_Line(win->x + 12, win->y, win->x, win->y + 12, disp_color);
;;;36
;;;37
;;;38 /* 写标题 */
;;;39 if( win->title != NULL )
;;;40 { str = win->title;
;;;41 bak = win->x + 15;
;;;42 bak1 = win->y + 3;
;;;43 bak2 = win->x + win->with -1;
;;;44
;;;45 while(1)
;;;46 { if( (bak+8) > bak2 ) break; // 判断标题是否溢出
;;;47 if(*str=='\0') break; // 判断字符串是否结束
;;;48
;;;49 GUI_PutChar(bak, bak1, *str++); // 显示标题
;;;50 bak += 6;
;;;51 }
;;;52 }
;;;53
;;;54
;;;55 /* 写状态栏 */
;;;56 if( win->state != NULL )
;;;57 { if( win->hight < 60) return(0); // 判断是否可以画状态栏
;;;58 /* 画状态栏 */
;;;59 GUI_HLine(win->x, win->y + win->hight - 11, win->x + win->with - 1, disp_color);
;;;60
;;;61 str = win->state;
;;;62 bak = win->x + 3;
;;;63 bak1 = win->y + win->hight - 9;
;;;64 bak2 = win->x + win->with -1;
;;;65
;;;66 while(1)
;;;67 { if( (bak+8) > bak2 ) break; // 判断标题是否溢出
;;;68 if(*str=='\0') break; // 判断字符串是否结束
;;;69
;;;70 GUI_PutChar(bak, bak1, *str++); // 显示标题
;;;71 bak += 6;
;;;72 }
;;;73 }
;;;74
;;;75 return(1);
;;;76
;;;77 }
000028 e12fff1e BX lr
|L1.44|
00002c e5940000 LDR r0,[r4,#0] ;26
000030 e5941008 LDR r1,[r4,#8] ;26
000034 e0800001 ADD r0,r0,r1 ;26
000038 e3500054 CMP r0,#0x54 ;26
00003c 9a000001 BLS |L1.72| ;26
000040 e3a00000 MOV r0,#0 ;26
000044 eafffff6 B |L1.36| ;26
|L1.72|
000048 e5940004 LDR r0,[r4,#4] ;27
00004c e594100c LDR r1,[r4,#0xc] ;27
000050 e0800001 ADD r0,r0,r1 ;27
000054 e3500030 CMP r0,#0x30 ;27
000058 9a000001 BLS |L1.100| ;27
00005c e3a00000 MOV r0,#0 ;27
000060 eaffffef B |L1.36| ;27
|L1.100|
000064 e59f0388 LDR r0,|L1.1012| ;30
000068 e5d03000 LDRB r3,[r0,#0] ;30 ; back_color
00006c e58d3000 STR r3,[sp,#0] ;30
000070 e594c004 LDR r12,[r4,#4] ;30
000074 e594e00c LDR lr,[r4,#0xc] ;30
000078 e08cc00e ADD r12,r12,lr ;30
00007c e24c3001 SUB r3,r12,#1 ;30
000080 e594c000 LDR r12,[r4,#0] ;30
000084 e594e008 LDR lr,[r4,#8] ;30
000088 e08cc00e ADD r12,r12,lr ;30
00008c e24c2001 SUB r2,r12,#1 ;30
000090 e8940003 LDM r4,{r0,r1} ;30
000094 ebfffffe BL GUI_RectangleFill ;30
000098 e59f0358 LDR r0,|L1.1016| ;31
00009c e5d03000 LDRB r3,[r0,#0] ;31 ; disp_color
0000a0 e58d3000 STR r3,[sp,#0] ;31
0000a4 e594c004 LDR r12,[r4,#4] ;31
0000a8 e594e00c LDR lr,[r4,#0xc] ;31
0000ac e08cc00e ADD r12,r12,lr ;31
0000b0 e24c3001 SUB r3,r12,#1 ;31
0000b4 e594c000 LDR r12,[r4,#0] ;31
0000b8 e594e008 LDR lr,[r4,#8] ;31
0000bc e08cc00e ADD r12,r12,lr ;31
0000c0 e24c2001 SUB r2,r12,#1 ;31
0000c4 e8940003 LDM r4,{r0,r1} ;31
0000c8 ebfffffe BL GUI_Rectangle ;31
0000cc e5943000 LDR r3,[r4,#0] ;32
0000d0 e594c008 LDR r12,[r4,#8] ;32
0000d4 e083300c ADD r3,r3,r12 ;32
0000d8 e2433001 SUB r3,r3,#1 ;32
0000dc e20320ff AND r2,r3,#0xff ;32
0000e0 e5943004 LDR r3,[r4,#4] ;32
0000e4 e283300c ADD r3,r3,#0xc ;32
0000e8 e20310ff AND r1,r3,#0xff ;32
0000ec e5943000 LDR r3,[r4,#0] ;32
0000f0 e20300ff AND r0,r3,#0xff ;32
0000f4 e59f32fc LDR r3,|L1.1016| ;32
0000f8 e5d33000 LDRB r3,[r3,#0] ;32 ; disp_color
0000fc ebfffffe BL GUI_HLine ;32
000100 e5943004 LDR r3,[r4,#4] ;33
000104 e283300c ADD r3,r3,#0xc ;33
000108 e20320ff AND r2,r3,#0xff ;33
00010c e5943004 LDR r3,[r4,#4] ;33
000110 e20310ff AND r1,r3,#0xff ;33
000114 e5943000 LDR r3,[r4,#0] ;33
000118 e283300c ADD r3,r3,#0xc ;33
00011c e20300ff AND r0,r3,#0xff ;33
000120 e59f32d0 LDR r3,|L1.1016| ;33
000124 e5d33000 LDRB r3,[r3,#0] ;33 ; disp_color
000128 ebfffffe BL GUI_RLine ;33
00012c e59f02c4 LDR r0,|L1.1016| ;34
000130 e5d03000 LDRB r3,[r0,#0] ;34 ; disp_color
000134 e58d3000 STR r3,[sp,#0] ;34
000138 e594c004 LDR r12,[r4,#4] ;34
00013c e28c300c ADD r3,r12,#0xc ;34
000140 e594c000 LDR r12,[r4,#0] ;34
000144 e28c200c ADD r2,r12,#0xc ;34
000148 e1a0000c MOV r0,r12 ;34
00014c e5941004 LDR r1,[r4,#4] ;34
000150 ebfffffe BL GUI_Line ;34
000154 e59f029c LDR r0,|L1.1016| ;35
000158 e5d03000 LDRB r3,[r0,#0] ;35 ; disp_color
00015c e58d3000 STR r3,[sp,#0] ;35
000160 e594c004 LDR r12,[r4,#4] ;35
000164 e28c300c ADD r3,r12,#0xc ;35
000168 e1a0100c MOV r1,r12 ;35
00016c e5942000 LDR r2,[r4,#0] ;35
000170 e282000c ADD r0,r2,#0xc ;35
000174 ebfffffe BL GUI_Line ;35
000178 e5940010 LDR r0,[r4,#0x10] ;39
00017c e3500000 CMP r0,#0 ;39
000180 0a000018 BEQ |L1.488| ;39
000184 e5945010 LDR r5,[r4,#0x10] ;40
000188 e5940000 LDR r0,[r4,#0] ;41
00018c e280600f ADD r6,r0,#0xf ;41
000190 e5940004 LDR r0,[r4,#4] ;42
000194 e2807003 ADD r7,r0,#3 ;42
000198 e5940000 LDR r0,[r4,#0] ;43
00019c e5941008 LDR r1,[r4,#8] ;43
0001a0 e0800001 ADD r0,r0,r1 ;43
0001a4 e2408001 SUB r8,r0,#1 ;43
0001a8 ea00000c B |L1.480| ;45
|L1.428|
0001ac e2860008 ADD r0,r6,#8 ;46
0001b0 e1500008 CMP r0,r8 ;46
0001b4 da000000 BLE |L1.444| ;46
0001b8 ea000009 B |L1.484| ;46
|L1.444|
0001bc e5d50000 LDRB r0,[r5,#0] ;47
0001c0 e3500000 CMP r0,#0 ;47
0001c4 1a000000 BNE |L1.460| ;47
0001c8 ea000005 B |L1.484| ;47
|L1.460|
0001cc e4d52001 LDRB r2,[r5],#1 ;49
0001d0 e1a01007 MOV r1,r7 ;49
0001d4 e1a00006 MOV r0,r6 ;49
0001d8 ebfffffe BL GUI_PutChar ;49
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -