📄 ac19-1.lst
字号:
0335 6840 ORI R20,0x80
0336 2722 CLR R18
0337 2733 CLR R19
0338 2F04 MOV R16,R20
0339 2711 CLR R17
033A D045 RCALL _LcdWriteCommand
033B 940E03E3 CALL pop_gset3
033D 9508 RET
_DisplayOneChar:
Wdata --> Y+4
y --> R22
x --> R20
033E 940E03EF CALL push_gset2
0340 2F62 MOV R22,R18
0341 2F40 MOV R20,R16
0342 2F26 MOV R18,R22
0343 2F04 MOV R16,R20
0344 DFE1 RCALL _LocateXY
0345 810C LDD R16,Y+4
0346 2711 CLR R17
0347 D04F RCALL _LcdWriteData
0348 940E03E0 CALL pop_gset2
034A 9508 RET
_InitLcd:
034B 2722 CLR R18
034C 2733 CLR R19
034D E308 LDI R16,0x38
034E E010 LDI R17,0
034F D030 RCALL _LcdWriteCommand
0350 E005 LDI R16,5
0351 E010 LDI R17,0
0352 940E00C3 CALL _Delay_nms
0354 2722 CLR R18
0355 2733 CLR R19
0356 E308 LDI R16,0x38
0357 E010 LDI R17,0
0358 D027 RCALL _LcdWriteCommand
0359 E005 LDI R16,5
035A E010 LDI R17,0
035B 940E00C3 CALL _Delay_nms
035D 2722 CLR R18
035E 2733 CLR R19
035F E308 LDI R16,0x38
0360 E010 LDI R17,0
0361 D01E RCALL _LcdWriteCommand
0362 E005 LDI R16,5
0363 E010 LDI R17,0
0364 940E00C3 CALL _Delay_nms
0366 E021 LDI R18,1
0367 E030 LDI R19,0
0368 E308 LDI R16,0x38
0369 E010 LDI R17,0
036A D015 RCALL _LcdWriteCommand
036B E021 LDI R18,1
036C E030 LDI R19,0
036D E008 LDI R16,0x8
036E E010 LDI R17,0
036F D010 RCALL _LcdWriteCommand
0370 E021 LDI R18,1
0371 E030 LDI R19,0
0372 E001 LDI R16,1
0373 E010 LDI R17,0
0374 D00B RCALL _LcdWriteCommand
0375 E021 LDI R18,1
0376 E030 LDI R19,0
0377 E006 LDI R16,6
0378 E010 LDI R17,0
0379 D006 RCALL _LcdWriteCommand
037A E021 LDI R18,1
037B E030 LDI R19,0
037C E00C LDI R16,0xC
037D E010 LDI R17,0
037E D001 RCALL _LcdWriteCommand
037F 9508 RET
_LcdWriteCommand:
Attribc --> R22
CMD --> R20
0380 940E03EF CALL push_gset2
0382 2F62 MOV R22,R18
0383 2F40 MOV R20,R16
0384 2366 TST R22
0385 F009 BEQ 0x0387
0386 D024 RCALL _WaitForEnable
0387 E005 LDI R16,5
0388 E010 LDI R17,0
0389 940E00C3 CALL _Delay_nms
038B 98C0 CBI 0x18,0
038C 98C1 CBI 0x18,1
038D 0000 NOP
038E BB4B OUT 0x1B,R20
038F 0000 NOP
0390 9AC2 SBI 0x18,2
0391 0000 NOP
0392 0000 NOP
0393 98C2 CBI 0x18,2
0394 940E03E0 CALL pop_gset2
0396 9508 RET
_LcdWriteData:
dataW --> R20
0397 940E03F1 CALL push_gset1
0399 2F40 MOV R20,R16
039A D010 RCALL _WaitForEnable
039B E005 LDI R16,5
039C E010 LDI R17,0
039D 940E00C3 CALL _Delay_nms
039F 9AC0 SBI 0x18,0
03A0 98C1 CBI 0x18,1
03A1 0000 NOP
03A2 BB4B OUT 0x1B,R20
03A3 0000 NOP
03A4 9AC2 SBI 0x18,2
03A5 0000 NOP
03A6 0000 NOP
03A7 98C2 CBI 0x18,2
03A8 940E03F4 CALL pop_gset1
03AA 9508 RET
_WaitForEnable:
val --> R16
03AB EF8F LDI R24,0xFF
03AC BB8B OUT 0x1B,R24
03AD 98C0 CBI 0x18,0
03AE 9AC1 SBI 0x18,1
03AF 0000 NOP
03B0 9AC2 SBI 0x18,2
03B1 0000 NOP
03B2 0000 NOP
03B3 2422 CLR R2
03B4 BA2A OUT 0x1A,R2
03B5 B309 IN R16,0x19
03B6 C002 RJMP 0x03B9
03B7 B309 IN R16,0x19
03B8 95A8 WDR
03B9 FD07 SBRC R16,7
03BA CFFC RJMP 0x03B7
03BB 98C2 CBI 0x18,2
03BC EF8F LDI R24,0xFF
03BD BB8A OUT 0x1A,R24
03BE 9508 RET
push_arg4:
03BF 933A ST R19,-Y
03C0 932A ST R18,-Y
push_arg2:
03C1 931A ST R17,-Y
03C2 930A ST R16,-Y
03C3 9508 RET
mod16u:
03C4 9468 BSET 6
03C5 C001 RJMP xdiv16u
div16u:
03C6 94E8 BCLR 6
xdiv16u:
03C7 92EA ST R14,-Y
03C8 92FA ST R15,-Y
03C9 938A ST R24,-Y
03CA 24EE CLR R14
03CB 24FF CLR R15
03CC E180 LDI R24,0x10
03CD 0F00 LSL R16
03CE 1F11 ROL R17
03CF 1CEE ROL R14
03D0 1CFF ROL R15
03D1 16E2 CP R14,R18
03D2 06F3 CPC R15,R19
03D3 F018 BCS 0x03D7
03D4 1AE2 SUB R14,R18
03D5 0AF3 SBC R15,R19
03D6 9503 INC R16
03D7 958A DEC R24
03D8 F7A1 BNE 0x03CD
03D9 F416 BRTC 0x03DC
03DA 2D0E MOV R16,R14
03DB 2D1F MOV R17,R15
03DC 9189 LD R24,Y+
03DD 90F9 LD R15,Y+
03DE 90E9 LD R14,Y+
03DF 9508 RET
pop_gset2:
03E0 E0E2 LDI R30,2
03E1 940C03F5 JMP pop
pop_gset3:
03E3 E0E4 LDI R30,4
03E4 940C03F5 JMP pop
pop_gset5:
03E6 27EE CLR R30
03E7 940C03F5 JMP pop
push_gset5:
03E9 92FA ST R15,-Y
03EA 92EA ST R14,-Y
push_gset4:
03EB 92DA ST R13,-Y
03EC 92CA ST R12,-Y
push_gset3:
03ED 92BA ST R11,-Y
03EE 92AA ST R10,-Y
push_gset2:
03EF 937A ST R23,-Y
03F0 936A ST R22,-Y
push_gset1:
03F1 935A ST R21,-Y
03F2 934A ST R20,-Y
03F3 9508 RET
pop_gset1:
03F4 E0E1 LDI R30,1
pop:
03F5 9149 LD R20,Y+
03F6 9159 LD R21,Y+
03F7 FDE0 SBRC R30,0
03F8 9508 RET
03F9 9169 LD R22,Y+
03FA 9179 LD R23,Y+
03FB FDE1 SBRC R30,1
03FC 9508 RET
03FD 90A9 LD R10,Y+
03FE 90B9 LD R11,Y+
03FF FDE2 SBRC R30,2
0400 9508 RET
0401 90C9 LD R12,Y+
0402 90D9 LD R13,Y+
0403 FDE3 SBRC R30,3
0404 9508 RET
0405 90E9 LD R14,Y+
0406 90F9 LD R15,Y+
0407 9508 RET
neg32:
0408 9500 COM R16
0409 9510 COM R17
040A 9520 COM R18
040B 9530 COM R19
040C 5F0F SUBI R16,0xFF
040D 4F1F SBCI R17,0xFF
040E 4F2F SBCI R18,0xFF
040F 4F3F SBCI R19,0xFF
0410 9508 RET
lpm32:
0411 93EA ST R30,-Y
0412 93FA ST R31,-Y
0413 920A ST R0,-Y
0414 2FE0 MOV R30,R16
0415 2FF1 MOV R31,R17
0416 95C8 LPM
0417 2D00 MOV R16,R0
0418 9631 ADIW R30,1
0419 95C8 LPM
041A 2D10 MOV R17,R0
041B 9631 ADIW R30,1
041C 95C8 LPM
041D 2D20 MOV R18,R0
041E 9631 ADIW R30,1
041F 95C8 LPM
0420 2D30 MOV R19,R0
0421 9009 LD R0,Y+
0422 91F9 LD R31,Y+
0423 91E9 LD R30,Y+
0424 9508 RET
fp2int:
0425 940E0603 CALL savfacc1
0427 D014 RCALL FTOI
0428 2F02 MOV R16,R18
0429 2F13 MOV R17,R19
042A FD87 SBRC R24,7
042B C002 RJMP nojump1
042C 940C0606 JMP restorefacc1
nojump1:
042E 9510 COM R17
042F 9501 NEG R16
0430 4F1F SBCI R17,0xFF
0431 940C0606 JMP restorefacc1
fp2long:
0433 940E0603 CALL savfacc1
0435 D008 RCALL FTOL
0436 FF87 SBRS R24,7
0437 C002 RJMP nojump2
0438 940E0408 CALL neg32
nojump2:
043A 940C0606 JMP restorefacc1
FTOI:
043C E0BE LDI R27,0xE
043D C001 RJMP 0x043F
FTOL:
043E E1BE LDI R27,0x1E
043F 940E0609 CALL unpackfacc1
0441 F069 BEQ 0x044F
0442 1BB3 SUB R27,R19
0443 F009 BEQ 0x0445
0444 F472 BPL 0x0453
0445 2388 TST R24
0446 F022 BMI 0x044B
0447 E010 LDI R17,0
0448 E804 LDI R16,0x84
0449 940C0411 JMP lpm32
044B E010 LDI R17,0
044C E80A LDI R16,0x8A
044D 940C0411 JMP lpm32
044F E010 LDI R17,0
0450 E808 LDI R16,0x88
0451 940C0411 JMP lpm32
0453 9533 INC R19
0454 F3D2 BMI 0x044F
0455 E030 LDI R19,0
0456 50B8 SUBI R27,0x8
0457 F452 BPL 0x0462
0458 5FB8 SUBI R27,0xF8
0459 2F32 MOV R19,R18
045A 2F21 MOV R18,R17
045B 2F10 MOV R17,R16
045C E800 LDI R16,0x80
045D C006 RJMP 0x0464
045E 2F01 MOV R16,R17
045F 2F12 MOV R17,R18
0460 E020 LDI R18,0
0461 50B8 SUBI R27,0x8
0462 30B8 CPI R27,0x8
0463 F7D0 BCC 0x045E
0464 23BB TST R27
0465 F031 BEQ 0x046C
0466 9536 LSR R19
0467 9527 ROR R18
0468 9517 ROR R17
0469 9507 ROR R16
046A 95BA DEC R27
046B F7D1 BNE 0x0466
046C 9508 RET
int2fp:
046D 2722 CLR R18
046E FD17 SBRC R17,7
046F 9520 COM R18
0470 2733 CLR R19
0471 FD27 SBRC R18,7
0472 9530 COM R19
long2fp:
0473 940E0603 CALL savfacc1
0475 D002 RCALL ITOF
0476 940C0606 JMP restorefacc1
ITOF:
0478 2788 CLR R24
0479 2333 TST R19
047A F41A BPL 0x047E
047B 940E0408 CALL neg32
047D 9580 COM R24
047E 2FB0 MOV R27,R16
047F 2BB1 OR R27,R17
0480 2BB2 OR R27,R18
0481 2BB3 OR R27,R19
0482 F411 BNE 0x0485
0483 940C061F JMP minres
0485 E1B6 LDI R27,0x16
0486 C005 RJMP itof2
0487 95B3 INC R27
0488 9536 LSR R19
0489 9527 ROR R18
048A 9517 ROR R17
048B 9507 ROR R16
itof2:
048C 2333 TST R19
048D F7C9 BNE 0x0487
itof3:
048E 2322 TST R18
048F F449 BNE 0x0499
0490 50B8 SUBI R27,0x8
0491 2F21 MOV R18,R17
0492 2F10 MOV R17,R16
0493 E000 LDI R16,0
0494 CFF9 RJMP itof3
0495 95BA DEC R27
0496 0F00 LSL R16
0497 1F11 ROL R17
0498 1F22 ROL R18
0499 F7DA BPL 0x0495
049A 2F3B MOV R19,R27
049B 940C0649 JMP repack
save_floatregs:
049D 92DA ST R13,-Y
049E 92EA ST R14,-Y
049F 92FA ST R15,-Y
04A0 938A ST R24,-Y
04A1 922A ST R2,-Y
04A2 923A ST R3,-Y
04A3 924A ST R4,-Y
04A4 939A ST R25,-Y
04A5 93AA ST R26,-Y
04A6 93BA ST R27,-Y
04A7 9508 RET
restore_floatregs:
04A8 91B9 LD R27,Y+
04A9 91A9 LD R26,Y+
04AA 9199 LD R25,Y+
04AB 9049 LD R4,Y+
04AC 9039 LD R3,Y+
04AD 9029 LD R2,Y+
04AE 9189 LD R24,Y+
04AF 90F9 LD R15,Y+
04B0 90E9 LD R14,Y+
04B1 90D9 LD R13,Y+
04B2 9508 RET
stk2arg1:
04B3 842A LDD R2,Y+10
04B4 843B LDD R3,Y+11
04B5 844C LDD R4,Y+12
04B6 859D LDD R25,Y+13
04B7 9508 RET
stk2arg0:
04B8 850E LDD R16,Y+14
04B9 851F LDD R17,Y+15
04BA 8928 LDD R18,Y+16
04BB 8939 LDD R19,Y+17
04BC 9508 RET
float_epilog:
04BD DFEA RCALL restore_floatregs
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -