📄 1.lst
字号:
021A 90A9 LD R10,Y+
021B 90B9 LD R11,Y+
021C FDE2 SBRC R30,2
021D 9508 RET
021E 90C9 LD R12,Y+
021F 90D9 LD R13,Y+
0220 FDE3 SBRC R30,3
0221 9508 RET
0222 90E9 LD R14,Y+
0223 90F9 LD R15,Y+
0224 9508 RET
neg32:
0225 9500 COM R16
0226 9510 COM R17
0227 9520 COM R18
0228 9530 COM R19
0229 5F0F SUBI R16,0xFF
022A 4F1F SBCI R17,0xFF
022B 4F2F SBCI R18,0xFF
022C 4F3F SBCI R19,0xFF
022D 9508 RET
lpm32:
022E 93EA ST R30,-Y
022F 93FA ST R31,-Y
0230 920A ST R0,-Y
0231 2FE0 MOV R30,R16
0232 2FF1 MOV R31,R17
0233 95C8 LPM
0234 2D00 MOV R16,R0
0235 9631 ADIW R30,1
0236 95C8 LPM
0237 2D10 MOV R17,R0
0238 9631 ADIW R30,1
0239 95C8 LPM
023A 2D20 MOV R18,R0
023B 9631 ADIW R30,1
023C 95C8 LPM
023D 2D30 MOV R19,R0
023E 9009 LD R0,Y+
023F 91F9 LD R31,Y+
0240 91E9 LD R30,Y+
0241 9508 RET
lsl8:
0242 2311 TST R17
0243 F019 BEQ 0x0247
0244 0F00 LSL R16
0245 951A DEC R17
0246 CFFB RJMP lsl8
0247 9508 RET
fp2int:
0248 940E0343 CALL savfacc1
024A D014 RCALL FTOI
024B 2F02 MOV R16,R18
024C 2F13 MOV R17,R19
024D FD87 SBRC R24,7
024E C002 RJMP nojump1
024F 940C0346 JMP restorefacc1
nojump1:
0251 9510 COM R17
0252 9501 NEG R16
0253 4F1F SBCI R17,0xFF
0254 940C0346 JMP restorefacc1
fp2long:
0256 940E0343 CALL savfacc1
0258 D008 RCALL FTOL
0259 FF87 SBRS R24,7
025A C002 RJMP nojump2
025B 940E0225 CALL neg32
nojump2:
025D 940C0346 JMP restorefacc1
FTOI:
025F E0BE LDI R27,0xE
0260 C001 RJMP 0x0262
FTOL:
0261 E1BE LDI R27,0x1E
0262 940E0349 CALL unpackfacc1
0264 F069 BEQ 0x0272
0265 1BB3 SUB R27,R19
0266 F009 BEQ 0x0268
0267 F472 BPL 0x0276
0268 2388 TST R24
0269 F022 BMI 0x026E
026A E010 LDI R17,0
026B E508 LDI R16,0x58
026C 940C022E JMP lpm32
026E E010 LDI R17,0
026F E50E LDI R16,0x5E
0270 940C022E JMP lpm32
0272 E010 LDI R17,0
0273 E50C LDI R16,0x5C
0274 940C022E JMP lpm32
0276 9533 INC R19
0277 F3D2 BMI 0x0272
0278 E030 LDI R19,0
0279 50B8 SUBI R27,0x8
027A F452 BPL 0x0285
027B 5FB8 SUBI R27,0xF8
027C 2F32 MOV R19,R18
027D 2F21 MOV R18,R17
027E 2F10 MOV R17,R16
027F E800 LDI R16,0x80
0280 C006 RJMP 0x0287
0281 2F01 MOV R16,R17
0282 2F12 MOV R17,R18
0283 E020 LDI R18,0
0284 50B8 SUBI R27,0x8
0285 30B8 CPI R27,0x8
0286 F7D0 BCC 0x0281
0287 23BB TST R27
0288 F031 BEQ 0x028F
0289 9536 LSR R19
028A 9527 ROR R18
028B 9517 ROR R17
028C 9507 ROR R16
028D 95BA DEC R27
028E F7D1 BNE 0x0289
028F 9508 RET
int2fp:
0290 2722 CLR R18
0291 FD17 SBRC R17,7
0292 9520 COM R18
0293 2733 CLR R19
0294 FD27 SBRC R18,7
0295 9530 COM R19
long2fp:
0296 940E0343 CALL savfacc1
0298 D002 RCALL ITOF
0299 940C0346 JMP restorefacc1
ITOF:
029B 2788 CLR R24
029C 2333 TST R19
029D F41A BPL 0x02A1
029E 940E0225 CALL neg32
02A0 9580 COM R24
02A1 2FB0 MOV R27,R16
02A2 2BB1 OR R27,R17
02A3 2BB2 OR R27,R18
02A4 2BB3 OR R27,R19
02A5 F411 BNE 0x02A8
02A6 940C035F JMP minres
02A8 E1B6 LDI R27,0x16
02A9 C005 RJMP itof2
02AA 95B3 INC R27
02AB 9536 LSR R19
02AC 9527 ROR R18
02AD 9517 ROR R17
02AE 9507 ROR R16
itof2:
02AF 2333 TST R19
02B0 F7C9 BNE 0x02AA
itof3:
02B1 2322 TST R18
02B2 F449 BNE 0x02BC
02B3 50B8 SUBI R27,0x8
02B4 2F21 MOV R18,R17
02B5 2F10 MOV R17,R16
02B6 E000 LDI R16,0
02B7 CFF9 RJMP itof3
02B8 95BA DEC R27
02B9 0F00 LSL R16
02BA 1F11 ROL R17
02BB 1F22 ROL R18
02BC F7DA BPL 0x02B8
02BD 2F3B MOV R19,R27
02BE 940C0389 JMP repack
save_floatregs:
02C0 92DA ST R13,-Y
02C1 92EA ST R14,-Y
02C2 92FA ST R15,-Y
02C3 938A ST R24,-Y
02C4 922A ST R2,-Y
02C5 923A ST R3,-Y
02C6 924A ST R4,-Y
02C7 939A ST R25,-Y
02C8 93AA ST R26,-Y
02C9 93BA ST R27,-Y
02CA 9508 RET
restore_floatregs:
02CB 91B9 LD R27,Y+
02CC 91A9 LD R26,Y+
02CD 9199 LD R25,Y+
02CE 9049 LD R4,Y+
02CF 9039 LD R3,Y+
02D0 9029 LD R2,Y+
02D1 9189 LD R24,Y+
02D2 90F9 LD R15,Y+
02D3 90E9 LD R14,Y+
02D4 90D9 LD R13,Y+
02D5 9508 RET
stk2arg1:
02D6 842A LDD R2,Y+10
02D7 843B LDD R3,Y+11
02D8 844C LDD R4,Y+12
02D9 859D LDD R25,Y+13
02DA 9508 RET
stk2arg0:
02DB 850E LDD R16,Y+14
02DC 851F LDD R17,Y+15
02DD 8928 LDD R18,Y+16
02DE 8939 LDD R19,Y+17
02DF 9508 RET
float_epilog:
02E0 DFEA RCALL restore_floatregs
02E1 920F PUSH R0
02E2 B60F IN R0,0x3F
02E3 9628 ADIW R28,0x8
02E4 BE0F OUT 0x3F,R0
02E5 900F POP R0
02E6 9508 RET
float_prolog:
02E7 DFD8 RCALL save_floatregs
02E8 DFF2 RCALL stk2arg0
02E9 CFEC RJMP stk2arg1
02EA E7BF LDI R27,0x7F
02EB 2F3B MOV R19,R27
02EC 2B2B OR R18,R27
02ED EF0F LDI R16,0xFF
02EE EF1F LDI R17,0xFF
02EF 9508 RET
02F0 2700 CLR R16
02F1 2711 CLR R17
02F2 2722 CLR R18
02F3 2733 CLR R19
02F4 2788 CLR R24
02F5 9508 RET
empy32fs:
02F6 D002 RCALL empy32f
02F7 940C01EB JMP push_arg4
empy32f:
02F9 940E02E7 CALL float_prolog
02FB 920F PUSH R0
02FC 92CF PUSH R12
02FD D004 RCALL eFMUL
02FE 90CF POP R12
02FF 900F POP R0
0300 940C02E0 JMP float_epilog
eFMUL:
0302 940E0377 CALL unpack
0304 F359 BEQ 0x02F0
0305 3890 CPI R25,0x80
0306 F349 BEQ 0x02F0
0307 278A EOR R24,R26
0308 9408 BSET 0
0309 1F39 ADC R19,R25
030A F2FB BVS 0x02EA
030B D00E RCALL eumul24
030C 2D2F MOV R18,R15
030D 2D1E MOV R17,R14
030E 2D0D MOV R16,R13
030F 2322 TST R18
0310 F02A BMI 0x0316
0311 953A DEC R19
0312 0CCC LSL R12
0313 1F00 ROL R16
0314 1F11 ROL R17
0315 1F22 ROL R18
0316 5F3F SUBI R19,0xFF
0317 F293 BVS 0x02EA
0318 940C0389 JMP repack
eumul24:
031A 9D22 MUL R18,R2
031B 2CC0 MOV R12,R0
031C 2CD1 MOV R13,R1
031D 9D24 MUL R18,R4
031E 2CE0 MOV R14,R0
031F 2CF1 MOV R15,R1
0320 9D12 MUL R17,R2
0321 0CC1 ADD R12,R1
0322 1EDB ADC R13,R27
0323 1EEB ADC R14,R27
0324 1EFB ADC R15,R27
0325 9D03 MUL R16,R3
0326 0CC1 ADD R12,R1
0327 1EDB ADC R13,R27
0328 1EEB ADC R14,R27
0329 1EFB ADC R15,R27
032A 9D13 MUL R17,R3
032B 0CC0 ADD R12,R0
032C 1CD1 ADC R13,R1
032D 1EEB ADC R14,R27
032E 1EFB ADC R15,R27
032F 9D04 MUL R16,R4
0330 0CC0 ADD R12,R0
0331 1CD1 ADC R13,R1
0332 1EEB ADC R14,R27
0333 1EFB ADC R15,R27
0334 9D23 MUL R18,R3
0335 0CD0 ADD R13,R0
0336 1CE1 ADC R14,R1
0337 1EFB ADC R15,R27
0338 9D14 MUL R17,R4
0339 0CD0 ADD R13,R0
033A 1CE1 ADC R14,R1
033B 1EFB ADC R15,R27
033C 20CC TST R12
033D F422 BPL 0x0342
033E 9488 BCLR 0
033F 1EDB ADC R13,R27
0340 1EEB ADC R14,R27
0341 1EFB ADC R15,R27
0342 9508 RET
savfacc1:
0343 938A ST R24,-Y
0344 93BA ST R27,-Y
0345 9508 RET
restorefacc1:
0346 91B9 LD R27,Y+
0347 9189 LD R24,Y+
0348 9508 RET
unpackfacc1:
0349 2F83 MOV R24,R19
034A 7880 ANDI R24,0x80
034B 0F22 LSL R18
034C 1F33 ROL R19
034D 5830 SUBI R19,0x80
034E 9408 BSET 0
034F 9527 ROR R18
0350 3830 CPI R19,0x80
0351 9508 RET
negmant:
0352 9510 COM R17
0353 9520 COM R18
0354 9501 NEG R16
0355 4F1F SBCI R17,0xFF
0356 4F2F SBCI R18,0xFF
0357 9508 RET
maxres:
0358 E7BF LDI R27,0x7F
0359 2F3B MOV R19,R27
035A 2B2B OR R18,R27
035B EFBF LDI R27,0xFF
035C 2F0B MOV R16,R27
035D 2F1B MOV R17,R27
035E 9508 RET
minres:
035F 2700 CLR R16
0360 2711 CLR R17
0361 2722 CLR R18
0362 2733 CLR R19
0363 2788 CLR R24
0364 9508 RET
ac1toac2:
0365 2F93 MOV R25,R19
0366 2E20 MOV R2,R16
0367 2E31 MOV R3,R17
0368 2E42 MOV R4,R18
0369 2FA8 MOV R26,R24
036A 9508 RET
swapacc:
036B 922A ST R2,-Y
036C 923A ST R3,-Y
036D 924A ST R4,-Y
036E 939A ST R25,-Y
036F 93AA ST R26,-Y
0370 DFF4 RCALL ac1toac2
0371 9189 LD R24,Y+
0372 9139 LD R19,Y+
0373 9129 LD R18,Y+
0374 9119 LD R17,Y+
0375 9109 LD R16,Y+
0376 9508 RET
unpack:
0377 2F83 MOV R24,R19
0378 E8B0 LDI R27,0x80
0379 0F22 LSL R18
037A 1F33 ROL R19
037B 273B EOR R19,R27
037C 0FBB LSL R27
037D 9527 ROR R18
037E 7880 ANDI R24,0x80
037F 2FA9 MOV R26,R25
0380 E8B0 LDI R27,0x80
0381 0C44 LSL R4
0382 1F99 ROL R25
0383 279B EOR R25,R27
0384 0FBB LSL R27
0385 9447 ROR R4
0386 78A0 ANDI R26,0x80
0387 3830 CPI R19,0x80
0388 9508 RET
repack:
0389 0F22 LSL R18
038A E8B0 LDI R27,0x80
038B 27B3 EOR R27,R19
038C 0F88 LSL R24
038D 95B7 ROR R27
038E 9527 ROR R18
038F 2F3B MOV R19,R27
0390 9508 RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -