📄 main.lis
字号:
0539 .dbline 170
0539 L50:
0539 L51:
0539 .dbline 172
0539 ; }
0539 ; }
0539 L48:
0539 .dbline 174
0539 ;
0539 ; PRT5DR = 0b11111011 ;
0539 6214FB mov REG[0x14],-5
053C .dbline 175
053C ; temp = PRT5DR & 0xF0 ;
053C 5D14 mov A,REG[0x14]
053E 21F0 and A,-16
0540 62D000 mov REG[0xd0],>_temp
0543 5300 mov [_temp],A
0545 .dbline 176
0545 ; if( temp != 0xF0 )
0545 3C00F0 cmp [_temp],-16
0548 A068 jz L60
054A .dbline 177
054A ; {
054A .dbline 178
054A ; switch(temp)
054A 5100 mov A,[_temp]
054C 5401 mov [X+1],A
054E 560000 mov [X+0],0
0551 5201 mov A,[X+1]
0553 11B0 sub A,-80
0555 62D000 mov REG[0xd0],>__r0
0558 5300 mov [__rY],A
055A 5200 mov A,[X+0]
055C 3180 xor A,-128
055E 1980 sbb A,(0 ^ 0x80)
0560 2A00 or A,[__rY]
0562 A040 jz L67
0564 D00D jnc L70
0566 X30:
0566 L69:
0566 3D0000 cmp [X+0],0
0569 B006 jnz X31
056B 3D0170 cmp [X+1],112
056E A03C jz L68
0570 X31:
0570 8040 xjmp L62
0572 L70:
0572 5201 mov A,[X+1]
0574 11D0 sub A,-48
0576 62D000 mov REG[0xd0],>__r0
0579 5300 mov [__rY],A
057B 5200 mov A,[X+0]
057D 3180 xor A,-128
057F 1980 sbb A,(0 ^ 0x80)
0581 C02F jc L62
0583 2A00 or A,[__rY]
0585 A015 jz L66
0587 X32:
0587 L71:
0587 3D0000 cmp [X+0],0
058A B006 jnz X33
058C 3D01E0 cmp [X+1],-32
058F A003 jz L65
0591 X33:
0591 801F xjmp L62
0593 X20:
0593 .dbline 179
0593 ; {
0593 L65:
0593 .dbline 181
0593 ; case 0b11100000 :
0593 ; key = 11 ; break ;
0593 62D000 mov REG[0xd0],>_key
0596 55000B mov [_key],11
0599 .dbline 181
0599 8017 xjmp L63
059B L66:
059B .dbline 183
059B ; case 0b11010000 :
059B ; key = 3 ; break ;
059B 62D000 mov REG[0xd0],>_key
059E 550003 mov [_key],3
05A1 .dbline 183
05A1 800F xjmp L63
05A3 L67:
05A3 .dbline 185
05A3 ; case 0b10110000 :
05A3 ; key = 6 ; break ;
05A3 62D000 mov REG[0xd0],>_key
05A6 550006 mov [_key],6
05A9 .dbline 185
05A9 8007 xjmp L63
05AB L68:
05AB .dbline 187
05AB ; case 0b01110000 :
05AB ; key = 9 ; break ;
05AB 62D000 mov REG[0xd0],>_key
05AE 550009 mov [_key],9
05B1 .dbline 187
05B1 L62:
05B1 L63:
05B1 .dbline 189
05B1 ; }
05B1 ; }
05B1 L60:
05B1 .dbline 191
05B1 ;
05B1 ; PRT5DR = 0xF0 ;
05B1 6214F0 mov REG[0x14],-16
05B4 .dbline 193
05B4 ;
05B4 ; if( key = 10 )
05B4 62D000 mov REG[0xd0],>_key
05B7 55000A mov [_key],10
05BA 62D000 mov REG[0xd0],>__r0
05BD 55000A mov [__r0],10
05C0 3C0000 cmp [__r0],0
05C3 A00B jz L72
05C5 .dbline 194
05C5 ; {
05C5 .dbline 195
05C5 ; times ++ ;
05C5 62D000 mov REG[0xd0],>_times
05C8 7600 inc [_times]
05CA .dbline 196
05CA ; Timer8_Stop() ;
05CA 10 push X
05CB 7C0000 xcall _Timer8_Stop
05CE 20 pop X
05CF .dbline 197
05CF ; }
05CF L72:
05CF .dbline 199
05CF ;
05CF ; if( key = 11 )
05CF 62D000 mov REG[0xd0],>_key
05D2 55000B mov [_key],11
05D5 62D000 mov REG[0xd0],>__r0
05D8 55000B mov [__r0],11
05DB 3C0000 cmp [__r0],0
05DE A022 jz L74
05E0 .dbline 200
05E0 ; {
05E0 .dbline 201
05E0 ; time = ~time ;
05E0 62D000 mov REG[0xd0],>_time
05E3 5100 mov A,[_time]
05E5 73 cpl A
05E6 5300 mov [_time],A
05E8 .dbline 202
05E8 ; if( time )
05E8 3C0000 cmp [_time],0
05EB A00E jz L76
05ED .dbline 203
05ED ; {
05ED .dbline 204
05ED ; Timer8_Stop() ;
05ED 10 push X
05EE 7C0000 xcall _Timer8_Stop
05F1 20 pop X
05F2 8003 xjmp L79
05F4 L78:
05F4 .dbline 206
05F4 .dbline 207
05F4 9A0A xcall _Display
05F6 .dbline 208
05F6 L79:
05F6 .dbline 205
05F6 ; while(1)
05F6 8FFD xjmp L78
05F8 X21:
05F8 .dbline 209
05F8 ; {
05F8 ; Display();
05F8 ; }
05F8 ; }
05F8 806F xjmp L75
05FA L76:
05FA .dbline 211
05FA ; else
05FA ; Timer8_Start() ;
05FA 10 push X
05FB 7C0000 xcall _Timer8_Start
05FE 20 pop X
05FF .dbline 212
05FF ; }
05FF 8068 xjmp L75
0601 L74:
0601 .dbline 213
0601 ; else if( key > 0 && key < 10 )
0601 62D000 mov REG[0xd0],>_key
0604 5000 mov A,0
0606 3A00 cmp A,[_key]
0608 D05F jnc L81
060A X34:
060A 62D000 mov REG[0xd0],>_key
060D 3C000A cmp [_key],10
0610 D057 jnc L81
0612 X35:
0612 .dbline 214
0612 ; {
0612 .dbline 215
0612 ; times ++ ;
0612 62D000 mov REG[0xd0],>_times
0615 7600 inc [_times]
0617 .dbline 216
0617 ; if( times == 2 )
0617 3C0002 cmp [_times],2
061A B00D jnz L83
061C .dbline 217
061C ; key1 = key ;
061C 62D000 mov REG[0xd0],>_key
061F 5100 mov A,[_key]
0621 62D000 mov REG[0xd0],>_key1
0624 5300 mov [_key1],A
0626 8041 xjmp L84
0628 L83:
0628 .dbline 218
0628 ; else if( times == 3 )
0628 62D000 mov REG[0xd0],>_times
062B 3C0003 cmp [_times],3
062E B00D jnz L85
0630 .dbline 219
0630 ; key2 = key ;
0630 62D000 mov REG[0xd0],>_key
0633 5100 mov A,[_key]
0635 62D000 mov REG[0xd0],>_key2
0638 5300 mov [_key2],A
063A 802D xjmp L86
063C L85:
063C .dbline 220
063C ; else if( times == 4 )
063C 62D000 mov REG[0xd0],>_times
063F 3C0004 cmp [_times],4
0642 B00D jnz L87
0644 .dbline 221
0644 ; key3 = key ;
0644 62D000 mov REG[0xd0],>_key
0647 5100 mov A,[_key]
0649 62D000 mov REG[0xd0],>_key3
064C 5300 mov [_key3],A
064E 8019 xjmp L88
0650 L87:
0650 .dbline 222
0650 ; else if( times == 5 )
0650 62D000 mov REG[0xd0],>_times
0653 3C0005 cmp [_times],5
0656 B011 jnz L89
0658 .dbline 223
0658 ; {
0658 .dbline 224
0658 ; key4 = key ;
0658 62D000 mov REG[0xd0],>_key
065B 5100 mov A,[_key]
065D 62D000 mov REG[0xd0],>_key4
0660 5300 mov [_key4],A
0662 .dbline 225
0662 ; key = 0 ;
0662 62D000 mov REG[0xd0],>_key
0665 550000 mov [_key],0
0668 .dbline 226
0668 ; }
0668 L89:
0668 L88:
0668 L86:
0668 L84:
0668 .dbline 227
0668 ; }
0668 L81:
0668 L75:
0668 .dbline 228
0668 ; count = 0 ;
0668 62D000 mov REG[0xd0],>_count
066B 550100 mov [_count+1],0
066E 550000 mov [_count],0
0671 .dbline 230
0671 ;
0671 ; Timer16_Start() ;
0671 10 push X
0672 7C0000 xcall _Timer16_Start
0675 20 pop X
0676 .dbline 231
0676 ; weishu = 1 ;
0676 62D000 mov REG[0xd0],>_weishu
0679 550101 mov [_weishu+1],1
067C 550000 mov [_weishu],0
067F .dbline -2
067F .dbline 232
067F ; }
067F L35:
067F 38FE add SP,-2
0681 20 pop X
0682 62D000 mov REG[0xD0],>__r0
0685 18 pop A
0686 5300 mov [__rZ],A
0688 18 pop A
0689 5300 mov [__rY],A
068B 18 pop A
068C 5300 mov [__rX],A
068E 18 pop A
068F 5300 mov [__r11],A
0691 18 pop A
0692 5300 mov [__r10],A
0694 18 pop A
0695 5300 mov [__r9],A
0697 18 pop A
0698 5300 mov [__r8],A
069A 18 pop A
069B 5300 mov [__r7],A
069D 18 pop A
069E 5300 mov [__r6],A
06A0 18 pop A
06A1 5300 mov [__r5],A
06A3 18 pop A
06A4 5300 mov [__r4],A
06A6 18 pop A
06A7 5300 mov [__r3],A
06A9 18 pop A
06AA 5300 mov [__r2],A
06AC 18 pop A
06AD 5300 mov [__r1],A
06AF 18 pop A
06B0 5300 mov [__r0],A
06B2 18 pop A
06B3 60D5 mov REG[213],A
06B5 18 pop A
06B6 60D4 mov REG[212],A
06B8 18 pop A
06B9 60D3 mov REG[211],A
06BB 18 pop A
06BC 60D0 mov REG[208],A
06BE 18 pop A
06BF .dbline 0 ; func end
06BF 7E reti
06C0 .dbend
06C0 .dbfunc e main _main fV
06C0 _main::
06C0 .dbline -1
06C0 .dbline 235
06C0 ;
06C0 ; void main()
06C0 ; {
06C0 .dbline 237
06C0 ; // Insert your main routine code here.
06C0 ; M8C_EnableGInt ;
06C0 7101 or F, 01h
06C2
06C2 .dbline 238
06C2 ; Timer8_EnableInt() ;
06C2 10 push X
06C3 7C0000 xcall _Timer8_EnableInt
06C6 .dbline 239
06C6 ; Timer16_EnableInt() ;
06C6 7C0000 xcall _Timer16_EnableInt
06C9 .dbline 240
06C9 ; Timer8_Start() ;
06C9 7C0000 xcall _Timer8_Start
06CC 20 pop X
06CD L92:
06CD .dbline 242
06CD .dbline 243
06CD L93:
06CD .dbline 241
06CD 8FFF xjmp L92
06CF X36:
06CF .dbline -2
06CF .dbline 244
06CF ; while(1)
06CF ; {
06CF ; }
06CF ; }
06CF L91:
06CF .dbline 0 ; func end
06CF 8FFF jmp .
06D1 .dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -