📄 matrixkey.lst
字号:
0123 EF0F LDI R16,0xFF
0124 940E01E5 CALL pop_gset4
0126 9508 RET
(0168) }
(0169) /*--------------------------------------------------------------------
(0170) 函数名称:
(0171) 函数功能:
(0172) 注意事项:
(0173) 提示说明:
(0174) 输 入:
(0175) 返 回:
(0176) --------------------------------------------------------------------*/
(0177) void KeyBoard_init()
(0178) {
(0179) OUT_K0;
_KeyBoard_init:
0127 9AD0 SBI 0x1A,0
(0180) OUT_K1;
0128 9AD1 SBI 0x1A,1
(0181) OUT_K2;
0129 9AD2 SBI 0x1A,2
(0182) OUT_K3;
012A 9AD3 SBI 0x1A,3
(0183) IN_K4;
012B 98D4 CBI 0x1A,4
(0184) IN_K5;
012C 98D5 CBI 0x1A,5
(0185) IN_K6;
012D 98D6 CBI 0x1A,6
(0186) IN_K7;
012E 98D7 CBI 0x1A,7
(0187) SET_K4;
012F 9ADC SBI 0x1B,4
(0188) SET_K5;
0130 9ADD SBI 0x1B,5
(0189) SET_K6;
0131 9ADE SBI 0x1B,6
(0190) SET_K7;
0132 9ADF SBI 0x1B,7
(0191) }
0133 9508 RET
(0192) /*--------------------------------------------------------------------
(0193) 函数名称:
(0194) 函数功能:
(0195) 注意事项:
(0196) 提示说明:
(0197) 输 入:
(0198) 返 回:
(0199) --------------------------------------------------------------------*/
(0200) void main()
(0201) {
(0202) uint8 keyVal;
(0203) LED_DDR = 0XFF;
_main:
keyVal --> R20
0134 EF8F LDI R24,0xFF
0135 BB87 OUT 0x17,R24
(0204) KeyBoard_init();
0136 DFF0 RCALL _KeyBoard_init
0137 C005 RJMP 0x013D
(0205) while(1)
(0206) {
(0207) keyVal = GetKeyVal();
0138 DFC0 RCALL _GetKeyVal
0139 2F40 MOV R20,R16
(0208) if( keyVal!=0xFF )
013A 3F0F CPI R16,0xFF
013B F009 BEQ 0x013D
(0209) LED_PORT = keyVal;
013C BB08 OUT 0x18,R16
013D CFFA RJMP 0x0138
(0210) }
(0211) }
FILE: <library>
013E 9508 RET
push_arg4:
013F 933A ST R19,-Y
0140 932A ST R18,-Y
push_arg2:
0141 931A ST R17,-Y
0142 930A ST R16,-Y
0143 9508 RET
div32u:
0144 94E8 BCLR 6
0145 C001 RJMP 0x0147
mod32u:
0146 9468 BSET 6
0147 D02F RCALL long_div_prolog
0148 24CC CLR R12
0149 C008 RJMP 0x0152
div32s:
014A 94E8 BCLR 6
014B C001 RJMP 0x014D
mod32s:
014C 9468 BSET 6
014D D029 RCALL long_div_prolog
014E FD37 SBRC R19,7
014F D053 RCALL neg_R16_R19
0150 FDB7 SBRC R27,7
0151 D05A RCALL neg_R24_R27
0152 2477 CLR R7
0153 2488 CLR R8
0154 2499 CLR R9
0155 24AA CLR R10
0156 24BB CLR R11
0157 D041 RCALL tst_R16_R19
0158 F0C1 BEQ 0x0171
0159 D044 RCALL tst_R24_R27
015A F0B1 BEQ 0x0171
015B E2E8 LDI R30,0x28
015C 0F00 LSL R16
015D 1F11 ROL R17
015E 1F22 ROL R18
015F 1F33 ROL R19
0160 1C77 ROL R7
0161 1C88 ROL R8
0162 1C99 ROL R9
0163 1CAA ROL R10
0164 1CBB ROL R11
0165 1688 CP R8,R24
0166 0699 CPC R9,R25
0167 06AA CPC R10,R26
0168 06BB CPC R11,R27
0169 F028 BCS 0x016F
016A 1A88 SUB R8,R24
016B 0A99 SBC R9,R25
016C 0AAA SBC R10,R26
016D 0ABB SBC R11,R27
016E 9503 INC R16
016F 95EA DEC R30
0170 F759 BNE 0x015C
0171 F426 BRTC 0x0176
0172 2D08 MOV R16,R8
0173 2D19 MOV R17,R9
0174 2D2A MOV R18,R10
0175 2D3B MOV R19,R11
0176 C013 RJMP long_div_epilog
long_div_prolog:
0177 927A ST R7,-Y
0178 928A ST R8,-Y
0179 929A ST R9,-Y
017A 92AA ST R10,-Y
017B 92BA ST R11,-Y
017C 92CA ST R12,-Y
017D 93EA ST R30,-Y
017E 938A ST R24,-Y
017F 939A ST R25,-Y
0180 93AA ST R26,-Y
0181 93BA ST R27,-Y
0182 858B LDD R24,Y+11
0183 859C LDD R25,Y+12
0184 85AD LDD R26,Y+13
0185 85BE LDD R27,Y+14
0186 2EC3 MOV R12,R19
0187 F00E BRTS 0x0189
0188 26CB EOR R12,R27
0189 9508 RET
long_div_epilog:
018A FCC7 SBRC R12,7
018B D017 RCALL neg_R16_R19
018C 91B9 LD R27,Y+
018D 91A9 LD R26,Y+
018E 9199 LD R25,Y+
018F 9189 LD R24,Y+
0190 91E9 LD R30,Y+
0191 90C9 LD R12,Y+
0192 90B9 LD R11,Y+
0193 90A9 LD R10,Y+
0194 9099 LD R9,Y+
0195 9089 LD R8,Y+
0196 9079 LD R7,Y+
0197 9624 ADIW R28,4
0198 9508 RET
tst_R16_R19:
0199 2FE0 MOV R30,R16
019A 2BE1 OR R30,R17
019B 2BE2 OR R30,R18
019C 2BE3 OR R30,R19
019D 9508 RET
tst_R24_R27:
019E 2FE8 MOV R30,R24
019F 2BE9 OR R30,R25
01A0 2BEA OR R30,R26
01A1 2BEB OR R30,R27
01A2 9508 RET
neg_R16_R19:
01A3 9500 COM R16
01A4 9510 COM R17
01A5 9520 COM R18
01A6 9530 COM R19
01A7 5F0F SUBI R16,0xFF
01A8 4F1F SBCI R17,0xFF
01A9 4F2F SBCI R18,0xFF
01AA 4F3F SBCI R19,0xFF
01AB 9508 RET
neg_R24_R27:
01AC 9580 COM R24
01AD 9590 COM R25
01AE 95A0 COM R26
01AF 95B0 COM R27
01B0 5F8F SUBI R24,0xFF
01B1 4F9F SBCI R25,0xFF
01B2 4FAF SBCI R26,0xFF
01B3 4FBF SBCI R27,0xFF
01B4 9508 RET
empy32s:
empy32u:
01B5 940E020B CALL long_prolog
01B7 927F PUSH R7
01B8 940E0224 CALL tstzero1
01BA F139 BEQ 0x01E2
01BB 2477 CLR R7
01BC 940E022A CALL tstzero2
01BE F419 BNE 0x01C2
01BF 018C MOVW R16,R24
01C0 019D MOVW R18,R26
01C1 C020 RJMP 0x01E2
01C2 9F08 MUL R16,R24
01C3 2CB0 MOV R11,R0
01C4 2CA1 MOV R10,R1
01C5 9F28 MUL R18,R24
01C6 2C90 MOV R9,R0
01C7 2C81 MOV R8,R1
01C8 9F18 MUL R17,R24
01C9 0CA0 ADD R10,R0
01CA 1C91 ADC R9,R1
01CB 1C87 ADC R8,R7
01CC 9F09 MUL R16,R25
01CD 0CA0 ADD R10,R0
01CE 1C91 ADC R9,R1
01CF 1C87 ADC R8,R7
01D0 9F19 MUL R17,R25
01D1 0C90 ADD R9,R0
01D2 1C81 ADC R8,R1
01D3 9F0A MUL R16,R26
01D4 0C90 ADD R9,R0
01D5 1C81 ADC R8,R1
01D6 9F38 MUL R19,R24
01D7 0C80 ADD R8,R0
01D8 9F29 MUL R18,R25
01D9 0C80 ADD R8,R0
01DA 9F1A MUL R17,R26
01DB 0C80 ADD R8,R0
01DC 9F0B MUL R16,R27
01DD 0C80 ADD R8,R0
01DE 2D0B MOV R16,R11
01DF 2D1A MOV R17,R10
01E0 2D29 MOV R18,R9
01E1 2D38 MOV R19,R8
01E2 907F POP R7
01E3 940C0219 JMP long_epilog
pop_gset4:
01E5 E0E8 LDI R30,0x8
01E6 940C01EC JMP pop
push_gset1:
01E8 935A ST R21,-Y
01E9 934A ST R20,-Y
01EA 9508 RET
pop_gset1:
01EB E0E1 LDI R30,1
pop:
01EC 9149 LD R20,Y+
01ED 9159 LD R21,Y+
01EE FDE0 SBRC R30,0
01EF 9508 RET
01F0 9169 LD R22,Y+
01F1 9179 LD R23,Y+
01F2 FDE1 SBRC R30,1
01F3 9508 RET
01F4 90A9 LD R10,Y+
01F5 90B9 LD R11,Y+
01F6 FDE2 SBRC R30,2
01F7 9508 RET
01F8 90C9 LD R12,Y+
01F9 90D9 LD R13,Y+
01FA FDE3 SBRC R30,3
01FB 9508 RET
01FC 90E9 LD R14,Y+
01FD 90F9 LD R15,Y+
01FE 9508 RET
push_gset2:
01FF 937A ST R23,-Y
0200 936A ST R22,-Y
0201 940C01E8 JMP push_gset1
push_gset3:
0203 92BA ST R11,-Y
0204 92AA ST R10,-Y
0205 940C01FF JMP push_gset2
push_gset4:
0207 92DA ST R13,-Y
0208 92CA ST R12,-Y
0209 940C0203 JMP push_gset3
long_prolog:
020B 928A ST R8,-Y
020C 929A ST R9,-Y
020D 92AA ST R10,-Y
020E 92BA ST R11,-Y
020F 93EA ST R30,-Y
0210 938A ST R24,-Y
0211 939A ST R25,-Y
0212 93AA ST R26,-Y
0213 93BA ST R27,-Y
0214 8589 LDD R24,Y+9
0215 859A LDD R25,Y+10
0216 85AB LDD R26,Y+11
0217 85BC LDD R27,Y+12
0218 9508 RET
long_epilog:
0219 91B9 LD R27,Y+
021A 91A9 LD R26,Y+
021B 9199 LD R25,Y+
021C 9189 LD R24,Y+
021D 91E9 LD R30,Y+
021E 90B9 LD R11,Y+
021F 90A9 LD R10,Y+
0220 9099 LD R9,Y+
0221 9089 LD R8,Y+
0222 9624 ADIW R28,4
0223 9508 RET
tstzero1:
0224 27EE CLR R30
0225 2BE0 OR R30,R16
0226 2BE1 OR R30,R17
0227 2BE2 OR R30,R18
0228 2BE3 OR R30,R19
0229 9508 RET
tstzero2:
022A 27EE CLR R30
022B 2BE8 OR R30,R24
022C 2BE9 OR R30,R25
022D 2BEA OR R30,R26
022E 2BEB OR R30,R27
022F 9508 RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -