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

📄 gui.lis

📁 ICCAVR编写128*64液晶程序测试已经通过
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 0250 FE01              movw R30,R28
 0252 6786              std z+15,R6
 0254 708A              std z+16,R7
 0256 818A              std z+17,R8
 0258 928A              std z+18,R9
 025A                   .dbline 178
 025A           ;    dy = y1-y0;
 025A FE01              movw R30,R28
 025C 25A0              ldd R2,z+37
 025E 36A0              ldd R3,z+38
 0260 47A0              ldd R4,z+39
 0262 50A4              ldd R5,z+40
 0264 FE01              movw R30,R28
 0266 65A4              ldd R6,z+45
 0268 76A4              ldd R7,z+46
 026A 87A4              ldd R8,z+47
 026C 90A8              ldd R9,z+48
 026E 6218              sub R6,R2
 0270 7308              sbc R7,R3
 0272 8408              sbc R8,R4
 0274 9508              sbc R9,R5
 0276 FE01              movw R30,R28
 0278 638A              std z+19,R6
 027A 748A              std z+20,R7
 027C 858A              std z+21,R8
 027E 968A              std z+22,R9
 0280                   .dbline 181
 0280           ;    
 0280           ;    /* 判断增长方向,或是否为水平线、垂直线、点 */
 0280           ;    if(dx>0)                                           // 判断x轴方向
 0280 40E0              ldi R20,0
 0282 50E0              ldi R21,0
 0284 60E0              ldi R22,0
 0286 70E0              ldi R23,0
 0288 FE01              movw R30,R28
 028A 2784              ldd R2,z+15
 028C 3088              ldd R3,z+16
 028E 4188              ldd R4,z+17
 0290 5288              ldd R5,z+18
 0292 4215              cp R20,R2
 0294 5305              cpc R21,R3
 0296 6405              cpc R22,R4
 0298 7505              cpc R23,R5
 029A 1CF4              brge L35
 029C                   .dbline 182
 029C           ;    {
 029C                   .dbline 183
 029C           ;       dx_sym = 1;                                     // dx>0,设置dx_sym=1
 029C CC24              clr R12
 029E C394              inc R12
 02A0                   .dbline 184
 02A0           ;    }
 02A0 23C0              xjmp L36
 02A2           L35:
 02A2                   .dbline 186
 02A2           ;    else
 02A2           ;    {
 02A2                   .dbline 187
 02A2           ;       if(dx<0)
 02A2 40E0              ldi R20,0
 02A4 50E0              ldi R21,0
 02A6 60E0              ldi R22,0
 02A8 70E0              ldi R23,0
 02AA FE01              movw R30,R28
 02AC 2784              ldd R2,z+15
 02AE 3088              ldd R3,z+16
 02B0 4188              ldd R4,z+17
 02B2 5288              ldd R5,z+18
 02B4 2416              cp R2,R20
 02B6 3506              cpc R3,R21
 02B8 4606              cpc R4,R22
 02BA 5706              cpc R5,R23
 02BC 1CF4              brge L37
 02BE                   .dbline 188
 02BE           ;       {
 02BE                   .dbline 189
 02BE           ;          dx_sym = -1;                                 // dx<0,设置dx_sym=-1
 02BE 8FEF              ldi R24,255
 02C0 C82E              mov R12,R24
 02C2                   .dbline 190
 02C2           ;       }
 02C2 12C0              xjmp L38
 02C4           L37:
 02C4                   .dbline 192
 02C4           ;       else
 02C4           ;       {  // dx==0,画垂直线,或一点
 02C4                   .dbline 193
 02C4           ;          GUI_RLine(x0, y0, y1, color);
 02C4 EA82              std y+2,R14
 02C6 FE01              movw R30,R28
 02C8 25A4              ldd R2,z+45
 02CA 36A4              ldd R3,z+46
 02CC 47A4              ldd R4,z+47
 02CE 50A8              ldd R5,z+48
 02D0 2882              std y+0,R2
 02D2 FE01              movw R30,R28
 02D4 25A0              ldd R2,z+37
 02D6 36A0              ldd R3,z+38
 02D8 47A0              ldd R4,z+39
 02DA 50A4              ldd R5,z+40
 02DC 222D              mov R18,R2
 02DE FE01              movw R30,R28
 02E0 01A1              ldd R16,z+33
 02E2 12A1              ldd R17,z+34
 02E4 ABDE              xcall _GUI_RLine
 02E6                   .dbline 194
 02E6           ;                return;
 02E6 F8C1              xjmp L34
 02E8           L38:
 02E8                   .dbline 196
 02E8           ;       }
 02E8           ;    }
 02E8           L36:
 02E8                   .dbline 198
 02E8           ;    
 02E8           ;    if(dy>0)                                           // 判断y轴方向
 02E8 40E0              ldi R20,0
 02EA 50E0              ldi R21,0
 02EC 60E0              ldi R22,0
 02EE 70E0              ldi R23,0
 02F0 FE01              movw R30,R28
 02F2 2388              ldd R2,z+19
 02F4 3488              ldd R3,z+20
 02F6 4588              ldd R4,z+21
 02F8 5688              ldd R5,z+22
 02FA 4215              cp R20,R2
 02FC 5305              cpc R21,R3
 02FE 6405              cpc R22,R4
 0300 7505              cpc R23,R5
 0302 1CF4              brge L39
 0304                   .dbline 199
 0304           ;    {
 0304                   .dbline 200
 0304           ;       dy_sym = 1;                                     // dy>0,设置dy_sym=1
 0304 AA24              clr R10
 0306 A394              inc R10
 0308                   .dbline 201
 0308           ;    }
 0308 22C0              xjmp L40
 030A           L39:
 030A                   .dbline 203
 030A           ;    else
 030A           ;    {
 030A                   .dbline 204
 030A           ;       if(dy<0)
 030A 40E0              ldi R20,0
 030C 50E0              ldi R21,0
 030E 60E0              ldi R22,0
 0310 70E0              ldi R23,0
 0312 FE01              movw R30,R28
 0314 2388              ldd R2,z+19
 0316 3488              ldd R3,z+20
 0318 4588              ldd R4,z+21
 031A 5688              ldd R5,z+22
 031C 2416              cp R2,R20
 031E 3506              cpc R3,R21
 0320 4606              cpc R4,R22
 0322 5706              cpc R5,R23
 0324 1CF4              brge L41
 0326                   .dbline 205
 0326           ;       {
 0326                   .dbline 206
 0326           ;          dy_sym = -1;                                 // dy<0,设置dy_sym=-1
 0326 8FEF              ldi R24,255
 0328 A82E              mov R10,R24
 032A                   .dbline 207
 032A           ;       }
 032A 11C0              xjmp L42
 032C           L41:
 032C                   .dbline 209
 032C           ;       else
 032C           ;       {  // dy==0,画水平线,或一点
 032C                   .dbline 210
 032C           ;          GUI_HLine(x0, y0, x1, color);
 032C EA82              std y+2,R14
 032E FE01              movw R30,R28
 0330 21A4              ldd R2,z+41
 0332 32A4              ldd R3,z+42
 0334 3982              std y+1,R3
 0336 2882              std y+0,R2
 0338 FE01              movw R30,R28
 033A 25A0              ldd R2,z+37
 033C 36A0              ldd R3,z+38
 033E 47A0              ldd R4,z+39
 0340 50A4              ldd R5,z+40
 0342 222D              mov R18,R2
 0344 FE01              movw R30,R28
 0346 01A1              ldd R16,z+33
 0348 12A1              ldd R17,z+34
 034A 5ADE              xcall _GUI_HLine
 034C                   .dbline 211
 034C           ;                return;
 034C C5C1              xjmp L34
 034E           L42:
 034E                   .dbline 213
 034E           ;       }
 034E           ;    }
 034E           L40:
 034E                   .dbline 216
 034E           ;     
 034E           ;    /* 将dx、dy取绝对值 */
 034E           ;    dx = dx_sym * dx;
 034E FE01              movw R30,R28
 0350 2784              ldd R2,z+15
 0352 3088              ldd R3,z+16
 0354 4188              ldd R4,z+17
 0356 5288              ldd R5,z+18
 0358 6C2C              mov R6,R12
 035A 7724              clr R7
 035C 67FC              sbrc R6,7
 035E 7094              com R7
 0360 8824              clr R8
 0362 77FC              sbrc R7,7
 0364 8094              com R8
 0366 9924              clr R9
 0368 87FC              sbrc R8,7
 036A 9094              com R9
 036C 5A92              st -y,R5
 036E 4A92              st -y,R4
 0370 3A92              st -y,R3
 0372 2A92              st -y,R2
 0374 8301              movw R16,R6
 0376 9401              movw R18,R8
 0378 0E940000          xcall empy32s
 037C FE01              movw R30,R28
 037E 0787              std z+15,R16
 0380 108B              std z+16,R17
 0382 218B              std z+17,R18
 0384 328B              std z+18,R19
 0386                   .dbline 217
 0386           ;    dy = dy_sym * dy;
 0386 FE01              movw R30,R28
 0388 2388              ldd R2,z+19
 038A 3488              ldd R3,z+20
 038C 4588              ldd R4,z+21
 038E 5688              ldd R5,z+22
 0390 6A2C              mov R6,R10
 0392 7724              clr R7
 0394 67FC              sbrc R6,7
 0396 7094              com R7
 0398 8824              clr R8
 039A 77FC              sbrc R7,7
 039C 8094              com R8
 039E 9924              clr R9
 03A0 87FC              sbrc R8,7
 03A2 9094              com R9
 03A4 5A92              st -y,R5
 03A6 4A92              st -y,R4
 03A8 3A92              st -y,R3
 03AA 2A92              st -y,R2
 03AC 8301              movw R16,R6
 03AE 9401              movw R18,R8
 03B0 0E940000          xcall empy32s
 03B4 FE01              movw R30,R28
 03B6 038B              std z+19,R16
 03B8 148B              std z+20,R17
 03BA 258B              std z+21,R18
 03BC 368B              std z+22,R19
 03BE                   .dbline 220
 03BE           ;  
 03BE           ;    /* 计算2倍的dx及dy值 */
 03BE           ;    dx_x2 = dx*2;
 03BE FE01              movw R30,R28
 03C0 2784              ldd R2,z+15
 03C2 3088              ldd R3,z+16
 03C4 4188              ldd R4,z+17
 03C6 5288              ldd R5,z+18
 03C8 42E0              ldi R20,2
 03CA 50E0              ldi R21,0
 03CC 60E0              ldi R22,0
 03CE 70E0              ldi R23,0
 03D0 5A92              st -y,R5
 03D2 4A92              st -y,R4
 03D4 3A92              st -y,R3
 03D6 2A92              st -y,R2
 03D8 8A01              movw R16,R20
 03DA 9B01              movw R18,R22
 03DC 0E940000          xcall empy32s
 03E0 FE01              movw R30,R28
 03E2 0783              std z+7,R16
 03E4 1087              std z+8,R17
 03E6 2187              std z+9,R18
 03E8 3287              std z+10,R19
 03EA                   .dbline 221
 03EA           ;    dy_x2 = dy*2;
 03EA FE01              movw R30,R28
 03EC 2388              ldd R2,z+19
 03EE 3488              ldd R3,z+20
 03F0 4588              ldd R4,z+21
 03F2 5688              ldd R5,z+22
 03F4 42E0              ldi R20,2
 03F6 50E0              ldi R21,0
 03F8 60E0              ldi R22,0
 03FA 70E0              ldi R23,0
 03FC 5A92              st -y,R5
 03FE 4A92              st -y,R4
 0400 3A92              st -y,R3
 0402 2A92              st -y,R2
 0404 8A01              movw R16,R20
 0406 9B01              movw R18,R22
 0408 0E940000          xcall empy32s
 040C FE01              movw R30,R28
 040E 0387              std z+11,R16
 0410 1487              std z+12,R17
 0412 2587              std z+13,R18
 0414 3687              std z+14,R19
 0416                   .dbline 224
 0416           ;    
 0416           ;    /* 使用Bresenham法进行画直线 */
 0416           ;    if(dx>=dy)                                         // 对于dx>=dy,则使用x轴为基准
 0416 FE01              movw R30,R28
 0418 2388              ldd R2,z+19
 041A 3488              ldd R3,z+20
 041C 4588              ldd R4,z+21
 041E 5688              ldd R5,z+22
 0420 FE01              movw R30,R28
 0422 6784              ldd R6,z+15
 0424 7088              ldd R7,z+16
 0426 8188              ldd R8,z+17
 0428 9288              ldd R9,z+18
 042A 6214              cp R6,R2
 042C 7304              cpc R7,R3
 042E 8404              cpc R8,R4

⌨️ 快捷键说明

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