📄 解读.lis
字号:
00F4 ; }
00F4 ; else if(bitcnt==16)
00F4 ; {
00F4 ; data0=data0|(uint)temp;
00F4 ; }
00F4 .dbline 94
00F4 ; else if(bitcnt<32) //开始接收后16位
00F4 ; {
00F4 5527 clr R21
00F6 4030 cpi R20,0
00F8 4507 cpc R20,R21
00FA 69F0 breq L33
00FC X0:
00FC 4130 cpi R20,1
00FE E0E0 ldi R30,0
0100 5E07 cpc R21,R30
0102 61F0 breq L34
0104 4230 cpi R20,2
0106 E0E0 ldi R30,0
0108 5E07 cpc R21,R30
010A 59F0 breq L35
010C 4330 cpi R20,3
010E E0E0 ldi R30,0
0110 5E07 cpc R21,R30
0112 51F0 breq L36
0114 0BC0 xjmp L30
0116 X1:
0116 .dbline 95
0116 ; data1=data1|(uint)temp;
0116 L33:
0116 .dbline 97
0116 ; data1=data1<<1;
0116 ; }
0116 462F mov R20,R22
0118 4058 subi R20,128 ; addi 128
011A .dbline 98
011A ; else if(bitcnt==32) //接收完最后一位
011A 08C0 xjmp L31
011C L34:
011C .dbline 100
011C ; {
011C ; data1=data1|(uint)temp;
011C 462F mov R20,R22
011E 4057 subi R20,112 ; addi 144
0120 .dbline 101
0120 ; }
0120 05C0 xjmp L31
0122 L35:
0122 .dbline 103
0122 ; }
0122 ;
0122 462F mov R20,R22
0124 4857 subi R20,120 ; addi 136
0126 .dbline 104
0126 ;
0126 02C0 xjmp L31
0128 L36:
0128 .dbline 106
0128 ; void init_devices(void)
0128 ; {
0128 462F mov R20,R22
012A 4856 subi R20,104 ; addi 152
012C .dbline 107
012C ; CLI(); //禁止所有中断
012C L30:
012C L31:
012C .dbline 109
012C ; GICR = 0x00;
012C ; port_init();
012C 042F mov R16,R20
012E C0DF xcall _WriteCommand
0130 .dbline -2
0130 L29:
0130 0E940000 xcall pop_gset2
0134 .dbline 0 ; func end
0134 0895 ret
0136 .dbsym r address 20 c
0136 .dbsym r x 22 c
0136 .dbsym r y 20 c
0136 .dbend
0136 .dbfunc e display_String _display_String fV
0136 ; i -> R20
0136 ; s -> R22,R23
0136 ; x -> R10
0136 ; y -> R12
.even
0136 _display_String::
0136 0E940000 xcall push_gset5
013A A22E mov R10,R18
013C C02E mov R12,R16
013E 6A85 ldd R22,y+10
0140 7B85 ldd R23,y+11
0142 .dbline -1
0142 .dbline 113
0142 ; lcd12864_init();
0142 ; timer1_init();
0142 ; SEI();//开全局中断
0142 ; }
0142 .dbline 114
0142 ; //主函数
0142 4427 clr R20
0144 .dbline 115
0144 ; void main(void)
0144 FB01 movw R30,R22
0146 2080 ldd R2,z+0
0148 2220 tst R2
014A 09F4 brne L38
014C .dbline 115
014C 30C0 xjmp L37
014E L38:
014E .dbline 116
014E ; {
014E 4427 clr R20
0150 L40:
0150 .dbline 117
0150 ; init_devices();
0150 .dbline 118
0150 ; //在这继续添加你的代码
0150 E42F mov R30,R20
0152 FF27 clr R31
0154 E60F add R30,R22
0156 F71F adc R31,R23
0158 2080 ldd R2,z+0
015A 2220 tst R2
015C 09F4 brne L44
015E .dbline 118
015E 27C0 xjmp L42
0160 L44:
0160 .dbline 119
0160 ; while(1)
0160 4423 tst R20
0162 21F4 brne L48
0164 81E0 ldi R24,1
0166 90E0 ldi R25,0
0168 7C01 movw R14,R24
016A 02C0 xjmp L49
016C L48:
016C EE24 clr R14
016E FF24 clr R15
0170 L49:
0170 22E0 ldi R18,2
0172 30E0 ldi R19,0
0174 8701 movw R16,R14
0176 0E940000 xcall mod16s
017A 0030 cpi R16,0
017C 0107 cpc R16,R17
017E 19F0 breq L46
0180 X2:
0180 .dbline 120
0180 ; {
0180 2A2D mov R18,R10
0182 0C2D mov R16,R12
0184 B3DF xcall _Set_display_Adress
0186 L46:
0186 .dbline 121
0186 ;
0186 E42F mov R30,R20
0188 FF27 clr R31
018A E60F add R30,R22
018C F71F adc R31,R23
018E 0081 ldd R16,z+0
0190 7EDF xcall _WriteData
0192 .dbline 122
0192 ; if(bitcnt==32&&data0==127)//接收完成
0192 12E0 ldi R17,2
0194 042F mov R16,R20
0196 0E940000 xcall mod8u
019A 0023 tst R16
019C 09F0 breq L50
019E .dbline 122
019E A394 inc R10
01A0 L50:
01A0 .dbline 123
01A0 ; {
01A0 87E0 ldi R24,7
01A2 8A15 cp R24,R10
01A4 10F4 brsh L52
01A6 .dbline 123
01A6 .dbline 123
01A6 C394 inc R12
01A8 AA24 clr R10
01AA .dbline 123
01AA L52:
01AA .dbline 124
01AA L41:
01AA .dbline 116
01AA 4395 inc R20
01AC .dbline 116
01AC D1CF xjmp L40
01AE L42:
01AE .dbline -2
01AE L37:
01AE 0E940000 xcall pop_gset5
01B2 .dbline 0 ; func end
01B2 0895 ret
01B4 .dbsym r i 20 c
01B4 .dbsym r s 22 pc
01B4 .dbsym r x 10 c
01B4 .dbsym r y 12 c
01B4 .dbend
01B4 .dbfunc e display_Char _display_Char fV
01B4 ; ch -> y+4
01B4 ; x -> R22
01B4 ; y -> R20
.even
01B4 _display_Char::
01B4 0E940000 xcall push_gset2
01B8 622F mov R22,R18
01BA 402F mov R20,R16
01BC .dbline -1
01BC .dbline 128
01BC ; CLI();
01BC ; switch(data1)
01BC ; {
01BC ; case 87 : PORTD=0x01;//确定
01BC ; break;
01BC .dbline 129
01BC ; case 39 :PORTD=0x02;//暂停
01BC 262F mov R18,R22
01BE 042F mov R16,R20
01C0 95DF xcall _Set_display_Adress
01C2 .dbline 130
01C2 ; break;
01C2 0C81 ldd R16,y+4
01C4 64DF xcall _WriteData
01C6 .dbline -2
01C6 L54:
01C6 0E940000 xcall pop_gset2
01CA .dbline 0 ; func end
01CA 0895 ret
01CC .dbsym l ch 4 c
01CC .dbsym r x 22 c
01CC .dbsym r y 20 c
01CC .dbend
01CC .dbfunc e display_Num _display_Num fV
01CC ; tmp -> y+0
01CC ; i -> R20
01CC ; N -> R22
01CC ; num -> R10,R11
01CC ; x -> R12
01CC ; y -> R14
.even
01CC _display_Num::
01CC 0E940000 xcall push_gset5
01D0 C22E mov R12,R18
01D2 E02E mov R14,R16
01D4 2597 sbiw R28,5
01D6 AF84 ldd R10,y+15
01D8 B888 ldd R11,y+16
01DA 6989 ldd R22,y+17
01DC .dbline -1
01DC .dbline 135
01DC ; case 23 :PORTD=0x04;//上
01DC ; break;
01DC ; case 167 :PORTD=0x08;//下
01DC ; break;
01DC ; case 215 :PORTD=0x10;//右
01DC .dbline 138
01DC ; break;
01DC ; case 79 :PORTD=0x20;//左
01DC ; break;
01DC 4427 clr R20
01DE 12C0 xjmp L59
01E0 L56:
01E0 .dbline 139
01E0 .dbline 140
01E0 2AE0 ldi R18,10
01E2 30E0 ldi R19,0
01E4 8501 movw R16,R10
01E6 0E940000 xcall mod16u
01EA CE01 movw R24,R28
01EC E42F mov R30,R20
01EE FF27 clr R31
01F0 E80F add R30,R24
01F2 F91F adc R31,R25
01F4 0083 std z+0,R16
01F6 .dbline 141
01F6 2AE0 ldi R18,10
01F8 30E0 ldi R19,0
01FA 8501 movw R16,R10
01FC 0E940000 xcall div16u
0200 5801 movw R10,R16
0202 .dbline 142
0202 L57:
0202 .dbline 138
0202 4395 inc R20
0204 L59:
0204 .dbline 138
0204 4617 cp R20,R22
0206 60F3 brlo L56
0208 .dbline 142
0208 ; case 7 :PORTD=0x40;//菜单
0208 ; break;
0208 ; case 207 :PORTD=0x80;//退出
0208 ; break;
0208 .dbline 143
0208 ; default:PORTD=0x00;break;
0208 4A95 dec R20
020A 30C0 xjmp L61
020C L60:
020C .dbline 145
020C ; }
020C ; }
020C .dbline 146
020C ; }
020C 2C2D mov R18,R12
020E 0E2D mov R16,R14
0210 6DDF xcall _Set_display_Adress
0212 .dbline 147
0212 ; }
0212 242E mov R2,R20
0214 3324 clr R3
0216 4150 subi R20,1
0218 CE01 movw R24,R28
021A E22D mov R30,R2
021C FF27 clr R31
021E E80F add R30,R24
0220 F91F adc R31,R25
0222 0081 ldd R16,z+0
0224 005D subi R16,208 ; addi 48
0226 33DF xcall _WriteData
0228 .dbline 148
0228 ;
0228 4423 tst R20
022A 49F4 brne L63
022C .dbline 149
022C ;
022C .dbline 149
022C CE01 movw R24,R28
022E E42F mov R30,R20
0230 FF27 clr R31
0232 E80F add R30,R24
0234 F91F adc R31,R25
0236 0081 ldd R16,z+0
0238 005D subi R16,208 ; addi 48
023A 29DF xcall _WriteData
023C .dbline 149
023C 18C0 xjmp L62
023E L63:
023E .dbline 150
023E ;
023E 242E mov R2,R20
0240 3324 clr R3
0242 4150 subi R20,1
0244 CE01 movw R24,R28
0246 E22D mov R30,R2
0248 FF27 clr R31
024A E80F add R30,R24
024C F91F adc R31,R25
024E 0081 ldd R16,z+0
0250 005D subi R16,208 ; addi 48
0252 1DDF xcall _WriteData
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -