📄 main.lis
字号:
022E ; if(data[4]==guest_id||data[4]==0xfe||data[4]==0xdb)
022E 2090D600 lds R2,_guest_id
0232 0215 cp R16,R2
0234 21F0 breq L54
0236 0E3F cpi R16,254
0238 11F0 breq L54
023A 0B3D cpi R16,219
023C A1F6 brne L28
023E L54:
023E .dbline 169
023E ; {
023E .dbline 170
023E ; for(j=5;j<12+ques_num;j++) //
023E 45E0 ldi R20,5
0240 09C0 xjmp L58
0242 L55:
0242 .dbline 171
0242 3CDF xcall _getchar
0244 80E0 ldi R24,<_data
0246 90E0 ldi R25,>_data
0248 E42F mov R30,R20
024A FF27 clr R31
024C E80F add R30,R24
024E F91F adc R31,R25
0250 0083 std z+0,R16
0252 L56:
0252 .dbline 170
0252 4395 inc R20
0254 L58:
0254 .dbline 170
0254 80910200 lds R24,_ques_num
0258 845F subi R24,244 ; addi 12
025A 4817 cp R20,R24
025C 90F3 brlo L55
025E .dbline 172
025E ; data[j]=getchar();
025E ; }
025E .dbline 173
025E ; else goto begin;
025E .dbline 174
025E ; }
025E .dbline 175
025E ; else goto begin;
025E .dbline 176
025E ; }
025E .dbline 177
025E ; else goto begin;
025E .dbline 178
025E ; }
025E .dbline 179
025E ; else goto begin;
025E .dbline 180
025E ; }
025E .dbline 181
025E ; else goto begin;
025E .dbline 182
025E ; }
025E .dbline 183
025E ; else goto begin;
025E L32:
025E .dbline 184
025E ; return 1;
025E 01E0 ldi R16,1
0260 .dbline -2
0260 L27:
0260 0E940000 xcall pop_gset1
0264 .dbline 0 ; func end
0264 0895 ret
0266 .dbsym r j 20 c
0266 .dbsym r i 20 c
0266 .dbend
0266 .dbfunc e main _main fV
0266 ; d1 -> <dead>
0266 ; score -> R10
0266 ; temp -> y+217
0266 ; keye_flag -> y+216
0266 ; keyd_flag -> y+215
0266 ; keyb_flag -> y+214
0266 ; keya_flag -> y+213
0266 ; nques_id -> y+212
0266 ; adc_l -> R12
0266 ; adc_h -> R22
0266 ; key_flag -> y+211
0266 ; adc_rel -> R20,R21
0266 ; keyc_flag -> y+210
0266 ; d -> y+209
0266 ; adc_old -> y+207
0266 ; n_ques -> y+100
0266 ; n_num -> R14
0266 ; key -> y+206
0266 ; ques_id -> y+205
0266 ; ans -> y+0
0266 ; j -> y+204
0266 ; k -> y+203
0266 ; i -> y+202
.even
0266 _main::
0266 EF97 sbiw R28,63
0268 EF97 sbiw R28,63
026A EF97 sbiw R28,63
026C 6D97 sbiw R28,29 ; offset = 218
026E .dbline -1
026E .dbline 188
026E ; }
026E ;
026E ; void main()
026E ; {
026E .dbline 193
026E ; unsigned char i,j,k,temp,ques_id,key,key_flag,d,d1,
026E ; n_ques[100],n_num,nques_id,score,ans[100],keya_flag,
026E ; keyb_flag,keyc_flag,keyd_flag,keye_flag,adc_h,adc_l;
026E ; unsigned int adc_rel,adc_old;
026E ; guest_id=EEPROMread(0x02);
026E 02E0 ldi R16,2
0270 10E0 ldi R17,0
0272 0E940000 xcall _EEPROMread
0276 0093D600 sts _guest_id,R16
027A .dbline 194
027A ; host_id=EEPROMread(0x03);
027A 03E0 ldi R16,3
027C 10E0 ldi R17,0
027E 0E940000 xcall _EEPROMread
0282 0093D700 sts _host_id,R16
0286 .dbline 195
0286 ; i=0;
0286 0024 clr R0
0288 FE01 movw R30,R28
028A E653 subi R30,54 ; addi 202
028C FF4F sbci R31,255
028E 0082 std z+0,R0
0290 .dbline 196
0290 ; j=0;
0290 FE01 movw R30,R28
0292 E453 subi R30,52 ; addi 204
0294 FF4F sbci R31,255
0296 0082 std z+0,R0
0298 .dbline 197
0298 ; k=0;
0298 FE01 movw R30,R28
029A E553 subi R30,53 ; addi 203
029C FF4F sbci R31,255
029E 0082 std z+0,R0
02A0 .dbline 198
02A0 ; t=0;
02A0 2224 clr R2
02A2 2092D500 sts _t,R2
02A6 .dbline 199
02A6 ; temp=0;
02A6 FE01 movw R30,R28
02A8 E752 subi R30,39 ; addi 217
02AA FF4F sbci R31,255
02AC 0082 std z+0,R0
02AE .dbline 200
02AE ; ques_num=0;
02AE 20920200 sts _ques_num,R2
02B2 .dbline 201
02B2 ; ques_id=1;
02B2 0024 clr R0
02B4 0394 inc R0
02B6 FE01 movw R30,R28
02B8 E353 subi R30,51 ; addi 205
02BA FF4F sbci R31,255
02BC 0082 std z+0,R0
02BE .dbline 202
02BE ; nques_id=1;
02BE FE01 movw R30,R28
02C0 EC52 subi R30,44 ; addi 212
02C2 FF4F sbci R31,255
02C4 0082 std z+0,R0
02C6 .dbline 203
02C6 ; keya_flag=0;
02C6 0024 clr R0
02C8 FE01 movw R30,R28
02CA EB52 subi R30,43 ; addi 213
02CC FF4F sbci R31,255
02CE 0082 std z+0,R0
02D0 .dbline 204
02D0 ; keyb_flag=0;
02D0 FE01 movw R30,R28
02D2 EA52 subi R30,42 ; addi 214
02D4 FF4F sbci R31,255
02D6 0082 std z+0,R0
02D8 .dbline 205
02D8 ; keyc_flag=0;
02D8 FE01 movw R30,R28
02DA EE52 subi R30,46 ; addi 210
02DC FF4F sbci R31,255
02DE 0082 std z+0,R0
02E0 .dbline 206
02E0 ; keyd_flag=0;
02E0 FE01 movw R30,R28
02E2 E952 subi R30,41 ; addi 215
02E4 FF4F sbci R31,255
02E6 0082 std z+0,R0
02E8 .dbline 207
02E8 ; keye_flag=0;
02E8 FE01 movw R30,R28
02EA E852 subi R30,40 ; addi 216
02EC FF4F sbci R31,255
02EE 0082 std z+0,R0
02F0 .dbline 208
02F0 ; key_flag=1;
02F0 0024 clr R0
02F2 0394 inc R0
02F4 FE01 movw R30,R28
02F6 ED52 subi R30,45 ; addi 211
02F8 FF4F sbci R31,255
02FA 0082 std z+0,R0
02FC .dbline 209
02FC ; init_devices();
02FC CFDE xcall _init_devices
02FE .dbline 210
02FE ; init_lcd();
02FE 0E940000 xcall _init_lcd
0302 .dbline 211
0302 ; display(0x00);
0302 0027 clr R16
0304 0E940000 xcall _display
0308 .dbline 224
0308 ; //temp=EEPROMread(0x04);
0308 ; //ques_num=EEPROMread(0x05);
0308 ; //score=EEPROMread(0x06);
0308 ; //for(i=0;i<100;i++)
0308 ; //{
0308 ; // ques[i]=EEPROMread(i+7);
0308 ; // }
0308 ; //for(i=0;i<100;i++)
0308 ; //{
0308 ; // ans[i]=EEPROMread(i+107);
0308 ; // }
0308 ; // while(1);
0308 ; if((PIND|0x9f)==0x9f)
0308 80B3 in R24,0x10
030A 8F69 ori R24,159
030C 8F39 cpi R24,159
030E 09F0 breq X4
0310 15C1 xjmp L60
0312 X4:
0312 .dbline 225
0312 ; {
0312 0DC1 xjmp L63
0314 L62:
0314 .dbline 227
0314 ; while(key!=5)
0314 ; {
0314 .dbline 228
0314 ; if(keyc_flag==0)
0314 FE01 movw R30,R28
0316 EE52 subi R30,46 ; addi 210
0318 FF4F sbci R31,255
031A 0080 ldd R0,z+0
031C 0020 tst R0
031E D1F4 brne L65
0320 .dbline 229
0320 ; {
0320 .dbline 230
0320 ; i=host_id/10;
0320 1AE0 ldi R17,10
0322 0091D700 lds R16,_host_id
0326 0E940000 xcall div8u
032A FE01 movw R30,R28
032C E653 subi R30,54 ; addi 202
032E FF4F sbci R31,255
0330 0083 std z+0,R16
0332 .dbline 231
0332 ; k=host_id-(10*i);
0332 8AE0 ldi R24,10
0334 002E mov R0,R16
0336 809D mul R24,R0
0338 2090D700 lds R2,_host_id
033C 2018 sub R2,R0
033E FE01 movw R30,R28
0340 E553 subi R30,53 ; addi 203
0342 FF4F sbci R31,255
0344 2082 std z+0,R2
0346 .dbline 232
0346 ; lcd_buffer[9]=0x02;
0346 82E0 ldi R24,2
0348 8093E100 sts _lcd_buffer+9,R24
034C .dbline 233
034C ; lcd_buffer[1]=0;
034C 2224 clr R2
034E 2092D900 sts _lcd_buffer+1,R2
0352 .dbline 234
0352 ; }
0352 19C0 xjmp L66
0354 L65:
0354 .dbline 236
0354 ; else
0354 ; {
0354 .dbline 237
0354 ; i=guest_id/10;
0354 1AE0 ldi R17,10
0356 0091D600 lds R16,_guest_id
035A 0E940000 xcall div8u
035E FE01 movw R30,R28
0360 E653 subi R30,54 ; addi 202
0362 FF4F sbci R31,255
0364 0083 std z+0,R16
0366 .dbline 238
0366 ; k=guest_id-10*i;
0366 8AE0 ldi R24,10
0368 002E mov R0,R16
036A 809D mul R24,R0
036C 2090D600 lds R2,_guest_id
0370 2018 sub R2,R0
0372 FE01 movw R30,R28
0374 E553 subi R30,53 ; addi 203
0376 FF4F sbci R31,255
0378 2082 std z+0,R2
037A .dbline 239
037A ; lcd_buffer[1]=0x02;
037A 82E0 ldi R24,2
037C 8093D900 sts _lcd_buffer+1,R24
0380 .dbline 240
0380 ; lcd_buffer[9]=0;
0380 2224 clr R2
0382 2092E100 sts _lcd_buffer+9,R2
0386 .dbline 241
0386 ; }
0386 L66:
0386 .dbline 242
0386 ; lcd_buffer[7]=table[i];
0386 80E0 ldi R24,<_table
0388 90E0 ldi R25,>_table
038A DE01 movw R26,R28
038C A653 subi R26,54 ; addi 202
038E BF4F sbci R27,255
0390 EC91 ld R30,x
0392 FF27 clr R31
0394 E80F add R30,R24
0396 F91F adc R31,R25
0398 2080 ldd R2,z+0
039A 2092DF00 sts _lcd_buffer+7,R2
039E .dbline 243
039E ; lcd_buffer[15]=table[k]&0xef;
039E DE01 movw R26,R28
03A0 A553 subi R26,53 ; addi 203
03A2 BF4F sbci R27,255
03A4 EC91 ld R30,x
03A6 FF27 clr R31
03A8 E80F add R30,R24
03AA F91F adc R31,R25
03AC 8081 ldd R24,z+0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -