⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 windows.txt

📁 一个电力系统谐波检测的程序
💻 TXT
📖 第 1 页 / 共 2 页
字号:
0001dc  e2866006          ADD      r6,r6,#6              ;50
                  |L1.480|
0001e0  eafffff1          B        |L1.428|              ;45
                  |L1.484|
0001e4  e1a00000          MOV      r0,r0                 ;46
                  |L1.488|
0001e8  e5940014          LDR      r0,[r4,#0x14]         ;56
0001ec  e3500000          CMP      r0,#0                 ;56
0001f0  0a00002e          BEQ      |L1.688|              ;56
0001f4  e594000c          LDR      r0,[r4,#0xc]          ;57
0001f8  e350003c          CMP      r0,#0x3c              ;57
0001fc  2a000001          BCS      |L1.520|              ;57
000200  e3a00000          MOV      r0,#0                 ;57
000204  eaffff86          B        |L1.36|               ;57
                  |L1.520|
000208  e5943000          LDR      r3,[r4,#0]            ;59
00020c  e594c008          LDR      r12,[r4,#8]           ;59
000210  e083300c          ADD      r3,r3,r12             ;59
000214  e2433001          SUB      r3,r3,#1              ;59
000218  e20320ff          AND      r2,r3,#0xff           ;59
00021c  e5943004          LDR      r3,[r4,#4]            ;59
000220  e594c00c          LDR      r12,[r4,#0xc]         ;59
000224  e083300c          ADD      r3,r3,r12             ;59
000228  e243300b          SUB      r3,r3,#0xb            ;59
00022c  e20310ff          AND      r1,r3,#0xff           ;59
000230  e5943000          LDR      r3,[r4,#0]            ;59
000234  e20300ff          AND      r0,r3,#0xff           ;59
000238  e59f31b8          LDR      r3,|L1.1016|          ;59
00023c  e5d33000          LDRB     r3,[r3,#0]            ;59  ; disp_color
000240  ebfffffe          BL       GUI_HLine             ;59
000244  e5945014          LDR      r5,[r4,#0x14]         ;61
000248  e5940000          LDR      r0,[r4,#0]            ;62
00024c  e2806003          ADD      r6,r0,#3              ;62
000250  e5940004          LDR      r0,[r4,#4]            ;63
000254  e594100c          LDR      r1,[r4,#0xc]          ;63
000258  e0800001          ADD      r0,r0,r1              ;63
00025c  e2407009          SUB      r7,r0,#9              ;63
000260  e5940000          LDR      r0,[r4,#0]            ;64
000264  e5941008          LDR      r1,[r4,#8]            ;64
000268  e0800001          ADD      r0,r0,r1              ;64
00026c  e2408001          SUB      r8,r0,#1              ;64
000270  ea00000c          B        |L1.680|              ;66
                  |L1.628|
000274  e2860008          ADD      r0,r6,#8              ;67
000278  e1500008          CMP      r0,r8                 ;67
00027c  da000000          BLE      |L1.644|              ;67
000280  ea000009          B        |L1.684|              ;67
                  |L1.644|
000284  e5d50000          LDRB     r0,[r5,#0]            ;68
000288  e3500000          CMP      r0,#0                 ;68
00028c  1a000000          BNE      |L1.660|              ;68
000290  ea000005          B        |L1.684|              ;68
                  |L1.660|
000294  e4d52001          LDRB     r2,[r5],#1            ;70
000298  e1a01007          MOV      r1,r7                 ;70
00029c  e1a00006          MOV      r0,r6                 ;70
0002a0  ebfffffe          BL       GUI_PutChar           ;70
0002a4  e2866006          ADD      r6,r6,#6              ;71
                  |L1.680|
0002a8  eafffff1          B        |L1.628|              ;66
                  |L1.684|
0002ac  e1a00000          MOV      r0,r0                 ;67
                  |L1.688|
0002b0  e3a00001          MOV      r0,#1                 ;75
0002b4  eaffff5a          B        |L1.36|               ;75
                          ENDP

                  GUI_WindowsHide PROC
;;;86     uint8  GUI_WindowsHide(WINDOWS *win)
;;;87     {  /* 参数过滤,若窗口起出范围,则返回0 */
0002b8  e92d4038          PUSH     {r3-r5,lr}
0002bc  e1a04000          MOV      r4,r0
;;;88        if( ( (win->with)<20 ) || ( (win->hight)<20 ) ) return(0);		// 宽度、高度检查,限制最小窗口
0002c0  e5940008          LDR      r0,[r4,#8]
0002c4  e3500014          CMP      r0,#0x14
0002c8  3a000002          BCC      |L1.728|
0002cc  e594000c          LDR      r0,[r4,#0xc]
0002d0  e3500014          CMP      r0,#0x14
0002d4  2a000002          BCS      |L1.740|
                  |L1.728|
0002d8  e3a00000          MOV      r0,#0
                  |L1.732|
0002dc  e8bd4038          POP      {r3-r5,lr}
;;;89        if( (win->x + win->with ) > GUI_LCM_XMAX ) return(0);			// 窗口宽度是否溢出
;;;90        if( (win->y + win->hight ) > GUI_LCM_YMAX ) return(0);			// 窗口高度是否溢出
;;;91         
;;;92        /* 消隐窗口 */
;;;93        GUI_RectangleFill(win->x, win->y, win->x + win->with - 1, win->y + win->hight - 1, back_color);
;;;94        return(1);
;;;95     }
0002e0  e12fff1e          BX       lr
                  |L1.740|
0002e4  e5940000          LDR      r0,[r4,#0]            ;89
0002e8  e5941008          LDR      r1,[r4,#8]            ;89
0002ec  e0800001          ADD      r0,r0,r1              ;89
0002f0  e3500054          CMP      r0,#0x54              ;89
0002f4  9a000001          BLS      |L1.768|              ;89
0002f8  e3a00000          MOV      r0,#0                 ;89
0002fc  eafffff6          B        |L1.732|              ;89
                  |L1.768|
000300  e5940004          LDR      r0,[r4,#4]            ;90
000304  e594100c          LDR      r1,[r4,#0xc]          ;90
000308  e0800001          ADD      r0,r0,r1              ;90
00030c  e3500030          CMP      r0,#0x30              ;90
000310  9a000001          BLS      |L1.796|              ;90
000314  e3a00000          MOV      r0,#0                 ;90
000318  eaffffef          B        |L1.732|              ;90
                  |L1.796|
00031c  e59f00d0          LDR      r0,|L1.1012|          ;93
000320  e5d03000          LDRB     r3,[r0,#0]            ;93  ; back_color
000324  e58d3000          STR      r3,[sp,#0]            ;93
000328  e594c004          LDR      r12,[r4,#4]           ;93
00032c  e594e00c          LDR      lr,[r4,#0xc]          ;93
000330  e08cc00e          ADD      r12,r12,lr            ;93
000334  e24c3001          SUB      r3,r12,#1             ;93
000338  e594c000          LDR      r12,[r4,#0]           ;93
00033c  e594e008          LDR      lr,[r4,#8]            ;93
000340  e08cc00e          ADD      r12,r12,lr            ;93
000344  e24c2001          SUB      r2,r12,#1             ;93
000348  e8940003          LDM      r4,{r0,r1}            ;93
00034c  ebfffffe          BL       GUI_RectangleFill     ;93
000350  e3a00001          MOV      r0,#1                 ;94
000354  eaffffe0          B        |L1.732|              ;94
                          ENDP

                  GUI_WindowsClr PROC
;;;106    void  GUI_WindowsClr(WINDOWS *win)
;;;107    {  uint8  x0, y0;
000358  e92d43f8          PUSH     {r3-r9,lr}
00035c  e1a04000          MOV      r4,r0
;;;108       uint8  x1, y1;
;;;109     
;;;110       /* 设置要清屏的区域 */
;;;111       x0 = win->x + 1;
000360  e5940000          LDR      r0,[r4,#0]
000364  e2800001          ADD      r0,r0,#1
000368  e20050ff          AND      r5,r0,#0xff
;;;112       x1 = win->x + win->with - 2;
00036c  e5940000          LDR      r0,[r4,#0]
000370  e5941008          LDR      r1,[r4,#8]
000374  e0800001          ADD      r0,r0,r1
000378  e2400002          SUB      r0,r0,#2
00037c  e20070ff          AND      r7,r0,#0xff
;;;113       y0 = win->y + 13;
000380  e5940004          LDR      r0,[r4,#4]
000384  e280000d          ADD      r0,r0,#0xd
000388  e20060ff          AND      r6,r0,#0xff
;;;114       y1 = win->y + win->hight - 2;
00038c  e5940004          LDR      r0,[r4,#4]
000390  e594100c          LDR      r1,[r4,#0xc]
000394  e0800001          ADD      r0,r0,r1
000398  e2400002          SUB      r0,r0,#2
00039c  e20080ff          AND      r8,r0,#0xff
;;;115       if( win->state != NULL )			// 判断是否有状态栏				
0003a0  e5940014          LDR      r0,[r4,#0x14]
0003a4  e3500000          CMP      r0,#0
0003a8  0a000007          BEQ      |L1.972|
;;;116       {  if( win->hight >= 60)
0003ac  e594000c          LDR      r0,[r4,#0xc]
0003b0  e350003c          CMP      r0,#0x3c
0003b4  3a000004          BCC      |L1.972|
;;;117          {  y1 = win->y + win->hight - 12;
0003b8  e5940004          LDR      r0,[r4,#4]
0003bc  e594100c          LDR      r1,[r4,#0xc]
0003c0  e0800001          ADD      r0,r0,r1
0003c4  e240000c          SUB      r0,r0,#0xc
0003c8  e20080ff          AND      r8,r0,#0xff
;;;118          }
;;;119       }
;;;120    
;;;121       /* 使用填充矩形实现清屏 */
;;;122       GUI_RectangleFill(x0, y0, x1, y1, back_color);
                  |L1.972|
0003cc  e59f0020          LDR      r0,|L1.1012|
0003d0  e5d03000          LDRB     r3,[r0,#0]  ; back_color
0003d4  e58d3000          STR      r3,[sp,#0]
0003d8  e1a03008          MOV      r3,r8
0003dc  e1a02007          MOV      r2,r7
0003e0  e1a01006          MOV      r1,r6
0003e4  e1a00005          MOV      r0,r5
0003e8  ebfffffe          BL       GUI_RectangleFill
;;;123    }
0003ec  e8bd43f8          POP      {r3-r9,lr}
0003f0  e12fff1e          BX       lr
                  |L1.1012|
0003f4  00000000          DCD      back_color
                  |L1.1016|
0003f8  00000000          DCD      disp_color
                          ENDP


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -