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

📄 ps2.lis

📁 AVRkaifashili.rar
💻 LIS
📖 第 1 页 / 共 4 页
字号:
 0224 0895              ret
 0226                   .dbsym r i 20 c
 0226                   .dbsym l cs 10 c
 0226                   .dbsym r y 10 c
 0226                   .dbsym r x 12 c
 0226                   .dbsym r disp 22 pkc
 0226                   .dbend
 0226                   .dbfunc e WriteCharacter _WriteCharacter fV
 0226           ;              i -> R20
 0226           ;             cs -> y+10
 0226           ;              y -> R10
 0226           ;              x -> R12
 0226           ;           disp -> R22,R23
                        .even
 0226           _WriteCharacter::
 0226 00D0              rcall push_gset4
 0228 C22E              mov R12,R18
 022A 602F              mov R22,R16
 022C 712F              mov R23,R17
 022E A884              ldd R10,y+8
 0230                   .dbline -1
 0230                   .dbline 201
 0230           ; 
 0230           ; 
 0230           ; void WriteCharacter(const uchar *disp,uchar x,uchar y,uchar cs)
 0230           ; {uchar i;
 0230                   .dbline 202
 0230           ;  if(cs==0) {Set_CS1(1);Set_CS2(0);}//CS1=1选中右屏幕;
 0230 0A84              ldd R0,y+10
 0232 0020              tst R0
 0234 29F4              brne L61
 0236                   .dbline 202
 0236                   .dbline 202
 0236 01E0              ldi R16,1
 0238 FBDE              rcall _Set_CS1
 023A                   .dbline 202
 023A 0027              clr R16
 023C 01DF              rcall _Set_CS2
 023E                   .dbline 202
 023E 04C0              rjmp L62
 0240           L61:
 0240                   .dbline 203
 0240           ;  else      {Set_CS1(0);Set_CS2(1);}//CS2=1选中左屏幕;
 0240                   .dbline 203
 0240 0027              clr R16
 0242 F6DE              rcall _Set_CS1
 0244                   .dbline 203
 0244 01E0              ldi R16,1
 0246 FCDE              rcall _Set_CS2
 0248                   .dbline 203
 0248           L62:
 0248                   .dbline 204
 0248           ;  SetX(x);
 0248 0C2D              mov R16,R12
 024A 4FDF              rcall _SetX
 024C                   .dbline 205
 024C           ;  SetY(y);
 024C 0A2D              mov R16,R10
 024E 64DF              rcall _SetY
 0250                   .dbline 206
 0250           ;  for(i=0;i<8;i++)
 0250 4427              clr R20
 0252 08C0              rjmp L66
 0254           L63:
 0254                   .dbline 207
 0254                   .dbline 207
 0254 E62F              mov R30,R22
 0256 F72F              mov R31,R23
 0258 C895              lpm
 025A 002D              mov R16,R0
 025C 74DF              rcall _WriteByte
 025E                   .dbline 208
 025E 6F5F              subi R22,255  ; offset = 1
 0260 7F4F              sbci R23,255
 0262                   .dbline 208
 0262           L64:
 0262                   .dbline 206
 0262 4395              inc R20
 0264           L66:
 0264                   .dbline 206
 0264 4830              cpi R20,8
 0266 B0F3              brlo L63
 0268                   .dbline 209
 0268           ;      {WriteByte(*disp);
 0268           ;          disp++;}
 0268           ;   SetX(x+1);
 0268 0C2D              mov R16,R12
 026A 0F5F              subi R16,255    ; addi 1
 026C 3EDF              rcall _SetX
 026E                   .dbline 210
 026E           ;   SetY(y);
 026E 0A2D              mov R16,R10
 0270 53DF              rcall _SetY
 0272                   .dbline 211
 0272           ;   for(i=0;i<8;i++)
 0272 4427              clr R20
 0274 08C0              rjmp L70
 0276           L67:
 0276                   .dbline 212
 0276                   .dbline 212
 0276 E62F              mov R30,R22
 0278 F72F              mov R31,R23
 027A C895              lpm
 027C 002D              mov R16,R0
 027E 63DF              rcall _WriteByte
 0280                   .dbline 213
 0280 6F5F              subi R22,255  ; offset = 1
 0282 7F4F              sbci R23,255
 0284                   .dbline 213
 0284           L68:
 0284                   .dbline 211
 0284 4395              inc R20
 0286           L70:
 0286                   .dbline 211
 0286 4830              cpi R20,8
 0288 B0F3              brlo L67
 028A                   .dbline -2
 028A                   .dbline 214
 028A           ;       {WriteByte(*disp);
 028A           ;        disp++;}
 028A           ; }
 028A           L60:
 028A 00D0              rcall pop_gset4
 028C                   .dbline 0 ; func end
 028C 0895              ret
 028E                   .dbsym r i 20 c
 028E                   .dbsym l cs 10 c
 028E                   .dbsym r y 10 c
 028E                   .dbsym r x 12 c
 028E                   .dbsym r disp 22 pkc
 028E                   .dbend
 028E                   .dbfunc e Write_Character _Write_Character fV
 028E           ;         shift1 -> R22
 028E           ;              p -> R20,R21
 028E           ;              i -> R20
                        .even
 028E           _Write_Character::
 028E 00D0              rcall push_gset3
 0290 402F              mov R20,R16
 0292 2397              sbiw R28,3
 0294                   .dbline -1
 0294                   .dbline 217
 0294           ; 
 0294           ; void Write_Character(uchar i)
 0294           ; {uchar shift1;
 0294                   .dbline 219
 0294           ;  uchar const *p;
 0294           ;  switch(i)
 0294 5527              clr R21
 0296 4030              cpi R20,0
 0298 4507              cpc R20,R21
 029A 09F1              breq L75
 029C           X2:
 029C 4130              cpi R20,1
 029E E0E0              ldi R30,0
 02A0 5E07              cpc R21,R30
 02A2 01F1              breq L76
 02A4 4230              cpi R20,2
 02A6 E0E0              ldi R30,0
 02A8 5E07              cpc R21,R30
 02AA F9F0              breq L77
 02AC 4330              cpi R20,3
 02AE E0E0              ldi R30,0
 02B0 5E07              cpc R21,R30
 02B2 F1F0              breq L78
 02B4 4430              cpi R20,4
 02B6 E0E0              ldi R30,0
 02B8 5E07              cpc R21,R30
 02BA E9F0              breq L79
 02BC 4530              cpi R20,5
 02BE E0E0              ldi R30,0
 02C0 5E07              cpc R21,R30
 02C2 E1F0              breq L80
 02C4 4630              cpi R20,6
 02C6 E0E0              ldi R30,0
 02C8 5E07              cpc R21,R30
 02CA D9F0              breq L81
 02CC 4730              cpi R20,7
 02CE E0E0              ldi R30,0
 02D0 5E07              cpc R21,R30
 02D2 D1F0              breq L82
 02D4 4830              cpi R20,8
 02D6 E0E0              ldi R30,0
 02D8 5E07              cpc R21,R30
 02DA C9F0              breq L83
 02DC 1BC0              rjmp L72
 02DE           X3:
 02DE                   .dbline 220
 02DE           L75:
 02DE                   .dbline 220
 02DE           ;   {case 0:p=X0;break;
 02DE 40E0              ldi R20,<_X0
 02E0 50E0              ldi R21,>_X0
 02E2                   .dbline 220
 02E2 1AC0              rjmp L73
 02E4           L76:
 02E4                   .dbline 221
 02E4           ;    case 1:p=X1;break;
 02E4 40E0              ldi R20,<_X1
 02E6 50E0              ldi R21,>_X1
 02E8                   .dbline 221
 02E8 17C0              rjmp L73
 02EA           L77:
 02EA                   .dbline 222
 02EA           ;    case 2:p=X2;break;
 02EA 40E0              ldi R20,<_X2
 02EC 50E0              ldi R21,>_X2
 02EE                   .dbline 222
 02EE 14C0              rjmp L73
 02F0           L78:
 02F0                   .dbline 223
 02F0           ;    case 3:p=X3;break;
 02F0 40E0              ldi R20,<_X3
 02F2 50E0              ldi R21,>_X3
 02F4                   .dbline 223
 02F4 11C0              rjmp L73
 02F6           L79:
 02F6                   .dbline 224
 02F6           ;    case 4:p=X4;break;
 02F6 40E0              ldi R20,<_X4
 02F8 50E0              ldi R21,>_X4
 02FA                   .dbline 224
 02FA 0EC0              rjmp L73
 02FC           L80:
 02FC                   .dbline 225
 02FC           ;    case 5:p=X5;break;
 02FC 40E0              ldi R20,<_X5
 02FE 50E0              ldi R21,>_X5
 0300                   .dbline 225
 0300 0BC0              rjmp L73
 0302           L81:
 0302                   .dbline 226
 0302           ;    case 6:p=X6;break;
 0302 40E0              ldi R20,<_X6
 0304 50E0              ldi R21,>_X6
 0306                   .dbline 226
 0306 08C0              rjmp L73
 0308           L82:
 0308                   .dbline 227
 0308           ;    case 7:p=X7;break;
 0308 40E0              ldi R20,<_X7
 030A 50E0              ldi R21,>_X7
 030C                   .dbline 227
 030C 05C0              rjmp L73
 030E           L83:
 030E                   .dbline 228
 030E           ;    case 8:p=X8;break;
 030E 40E0              ldi R20,<_X8
 0310 50E0              ldi R21,>_X8
 0312                   .dbline 228
 0312 02C0              rjmp L73
 0314           L72:
 0314                   .dbline 229
 0314           ;    default:p=X9;break;}   
 0314 40E0              ldi R20,<_X9
 0316 50E0              ldi R21,>_X9
 0318                   .dbline 229
 0318           L73:
 0318                   .dbline 231
 0318           ;  
 0318           ;  if(R_flag==1) //若是写右边的屏幕; 
 0318 80910200          lds R24,_R_flag
 031C 8130              cpi R24,1
 031E 09F0              breq X4
 0320 48C0              rjmp L84
 0322           X4:
 0322                   .dbline 232
 0322           ;       {if(Column==56) 
 0322                   .dbline 232
 0322 80910100          lds R24,_Column
 0326 8833              cpi R24,56
 0328 61F5              brne L86
 032A                   .dbline 233
 032A           ;          {shift1=1;//若是到了最后一个字节,则写完后要换行
 032A                   .dbline 233
 032A 61E0              ldi R22,1
 032C                   .dbline 234
 032C           ;         WriteCharacter(p,Row,Column,!R_flag);
 032C 20900200          lds R2,_R_flag
 0330 2220              tst R2
 0332 29F4              brne L88
 0334 81E0              ldi R24,1
 0336 90E0              ldi R25,0
 0338 A82E              mov R10,R24
 033A B92E              mov R11,R25
 033C 02C0              rjmp L89
 033E           L88:
 033E AA24              clr R10
 0340 BB24              clr R11
 0342           L89:
 0342 AA82              std y+2,R10
 0344 20900100          lds R2,_Column
 0348 2882              std y+0,R2
 034A 20910000          lds R18,_Row
 034E 042F              mov R16,R20
 0350 152F              mov R17,R21
 0352 69DF              rcall _WriteCharacter
 0354                   .dbline 235
 0354           ;               R_flag=0;//回到左边屏幕第0列;
 0354 2224              clr R2
 0356 20920200          sts _R_flag,R2
 035A                   .dbline 236
 035A           ;               Column=0;
 035A 20920100          sts _Column,R2
 035E                   .dbline 237
 035E           ;               if(shift1==1) 
 035E 6130              cpi R22,1
 0360 31F4              brne L90
 0362                   .dbline 238
 0362           ;               {Row+=2;shift1=0;}
 0362                   .dbline 238
 0362 80910000          lds R24,_Row
 0366 8E5F              subi R24,254    ; addi 2
 0368 80930000          sts _Row,R24
 036C                   .dbline 238
 036C 6627              clr R22
 036E                   .dbline 238
 036E           L90:
 036E                   .dbline 239
 036E           ;               if (Row>7) Row=0;
 036E 87E0              ldi R24,7
 0370 20900000          lds R2,_Row
 0374 8215              cp R24,R2
 0376 08F0              brlo X5
 0378 50C0              rjmp L85
 037A           X5:
 037A                   .dbline 239
 037A 2224              clr R2
 037C 20920000          sts _Row,R2
 0380                   .dbline 240
 0380           ;               }
 0380 4CC0              rjmp L85
 0382           L86:
 0382                   .dbline 242
 0382           ;         else 
 0382           ;          {WriteCharacter(p,Row,Column,!R_flag);
 0382                   .dbline 242
 0382 20900200          lds R2,_R_flag
 0386 2220              tst R2
 0388 19F4              brne L94
 038A 61E0              ldi R22,1
 038C 70E0              ldi R23,0
 038E 02C0              rjmp L95
 0390           L94:
 0390 6627              clr R22
 0392 7727              clr R23
 0394           L95:
 0394 6A83              std y+2,R22
 0396 20900100          lds R2,_Column
 039A 2882              std y+0,R2
 039C 20910000          lds R18,_Row
 03A0 042F              mov R16,R20
 03A2 152F              mov R17,R21
 03A4 40DF              rcall _WriteCharacter
 03A6                   .dbline 243
 03A6           ;         Column=Column+8;} 
 03A6 80910100          lds R24,_Column
 03AA 885F              subi R24,248    ; addi 8
 03AC 80930100          sts _Column,R24
 03B0                   .dbline 243
 03B0                   .dbline 244
 03B0           ;        }
 03B0 34C0              rjmp L85
 03B2           L84:
 03B2                   .dbline 246
 03B2           ;  else
 03B2           ;    {if(Column==56) //写完后需要换右边的屏幕

⌨️ 快捷键说明

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