📄 lesson10.lst
字号:
FILE: <library>
__text_start:
__start:
0047 EFCF LDI R28,0xFF
0048 E1D0 LDI R29,0x10
0049 BFCD OUT 0x3D,R28
004A BFDE OUT 0x3E,R29
004B 51C0 SUBI R28,0x10
004C 40D0 SBCI R29,0
004D EA0A LDI R16,0xAA
004E 8308 STD Y+0,R16
004F 2400 CLR R0
0050 E0E1 LDI R30,1
0051 E0F1 LDI R31,1
0052 E011 LDI R17,1
0053 30E2 CPI R30,2
0054 07F1 CPC R31,R17
0055 F011 BEQ 0x0058
0056 9201 ST R0,Z+
0057 CFFB RJMP 0x0053
0058 8300 STD Z+0,R16
0059 E8EC LDI R30,0x8C
005A E0F0 LDI R31,0
005B E0A0 LDI R26,0
005C E0B1 LDI R27,1
005D E010 LDI R17,0
005E 38ED CPI R30,0x8D
005F 07F1 CPC R31,R17
0060 F021 BEQ 0x0065
0061 95C8 LPM
0062 9631 ADIW R30,1
0063 920D ST R0,X+
0064 CFF9 RJMP 0x005E
0065 940E00DF CALL _main
_exit:
0067 CFFF RJMP _exit
_delay:
i --> R20
j --> R22
ms --> R16
0068 940E017D CALL push_gset2
006A 2744 CLR R20
006B 2755 CLR R21
006C C00B RJMP 0x0078
006D 2766 CLR R22
006E 2777 CLR R23
006F C002 RJMP 0x0072
0070 5F6F SUBI R22,0xFF
0071 4F7F SBCI R23,0xFF
0072 3362 CPI R22,0x32
0073 E0E2 LDI R30,2
0074 077E CPC R23,R30
0075 F3D0 BCS 0x0070
0076 5F4F SUBI R20,0xFF
0077 4F5F SBCI R21,0xFF
0078 1740 CP R20,R16
0079 0751 CPC R21,R17
007A F390 BCS 0x006D
007B 940E0171 CALL pop_gset2
007D 9508 RET
_init_port:
007E 9ABF SBI 0x17,7
007F 9AC7 SBI 0x18,7
0080 9508 RET
_uart_init:
baud --> R10
0081 940E017B CALL push_gset3
0083 0158 MOVW R10,R16
0084 2422 CLR R2
0085 9220009A STS 0x9A,R2
0087 9220009B STS 0x9B,R2
0089 E086 LDI R24,6
008A 9380009D STS 0x9D,R24
008C 0115 MOVW R2,R10
008D 2444 CLR R4
008E 2455 CLR R5
008F E040 LDI R20,0
0090 E058 LDI R21,0x8
0091 E067 LDI R22,7
0092 E070 LDI R23,0
0093 925A ST R5,-Y
0094 924A ST R4,-Y
0095 923A ST R3,-Y
0096 922A ST R2,-Y
0097 018A MOVW R16,R20
0098 019B MOVW R18,R22
0099 940E0106 CALL div32s
009B E041 LDI R20,1
009C E050 LDI R21,0
009D E060 LDI R22,0
009E E070 LDI R23,0
009F 0118 MOVW R2,R16
00A0 0129 MOVW R4,R18
00A1 1A24 SUB R2,R20
00A2 0A35 SBC R3,R21
00A3 0A46 SBC R4,R22
00A4 0A57 SBC R5,R23
00A5 0151 MOVW R10,R2
00A6 92A00099 STS 0x99,R10
00A8 2C23 MOV R2,R3
00A9 2433 CLR R3
00AA 92200098 STS 0x98,R2
00AC E988 LDI R24,0x98
00AD 9380009A STS 0x9A,R24
00AF E880 LDI R24,0x80
00B0 BF8F OUT 0x3F,R24
00B1 9A8B SBI 0x11,3
00B2 940E0174 CALL pop_gset3
00B4 9508 RET
_uart_sendB:
data --> R16
00B5 9020009B LDS R2,0x9B
00B7 FE25 SBRS R2,5
00B8 CFFC RJMP _uart_sendB
00B9 9300009C STS 0x9C,R16
00BB 9020009B LDS R2,0x9B
00BD FE26 SBRS R2,6
00BE CFFC RJMP 0x00BB
00BF 9180009B LDS R24,0x9B
00C1 6480 ORI R24,0x40
00C2 9380009B STS 0x9B,R24
00C4 9508 RET
_uart_rx:
00C5 922A ST R2,-Y
00C6 938A ST R24,-Y
00C7 B62F IN R2,0x3F
00C8 922A ST R2,-Y
00C9 9180009A LDS R24,0x9A
00CB 778F ANDI R24,0x7F
00CC 9380009A STS 0x9A,R24
00CE 9020009C LDS R2,0x9C
00D0 92200101 STS rdata,R2
00D2 E081 LDI R24,1
00D3 93800100 STS flag,R24
00D5 9180009A LDS R24,0x9A
00D7 6880 ORI R24,0x80
00D8 9380009A STS 0x9A,R24
00DA 9029 LD R2,Y+
00DB BE2F OUT 0x3F,R2
00DC 9189 LD R24,Y+
00DD 9029 LD R2,Y+
00DE 9518 RETI
_main:
00DF DF9E RCALL _init_port
00E0 E000 LDI R16,0
00E1 E41B LDI R17,0x4B
00E2 DF9E RCALL _uart_init
00E3 E001 LDI R16,1
00E4 E010 LDI R17,0
00E5 DF82 RCALL _delay
00E6 C017 RJMP 0x00FE
00E7 91800100 LDS R24,flag
00E9 3081 CPI R24,1
00EA F499 BNE 0x00FE
00EB 91000101 LDS R16,rdata
00ED DFC7 RCALL _uart_sendB
00EE C00B RJMP 0x00FA
00EF 98C7 CBI 0x18,7
00F0 E001 LDI R16,1
00F1 E010 LDI R17,0
00F2 DF75 RCALL _delay
00F3 9AC7 SBI 0x18,7
00F4 E001 LDI R16,1
00F5 E010 LDI R17,0
00F6 DF71 RCALL _delay
00F7 2422 CLR R2
00F8 92200100 STS flag,R2
00FA CFF4 RJMP 0x00EF
00FB 2422 CLR R2
00FC 92200100 STS flag,R2
00FE CFE8 RJMP 0x00E7
00FF 9508 RET
div32u:
0100 94E8 BCLR 6
0101 C001 RJMP 0x0103
mod32u:
0102 9468 BSET 6
0103 D02F RCALL long_div_prolog
0104 24CC CLR R12
0105 C008 RJMP 0x010E
div32s:
0106 94E8 BCLR 6
0107 C001 RJMP 0x0109
mod32s:
0108 9468 BSET 6
0109 D029 RCALL long_div_prolog
010A FD37 SBRC R19,7
010B D053 RCALL neg_R16_R19
010C FDB7 SBRC R27,7
010D D05A RCALL neg_R24_R27
010E 2477 CLR R7
010F 2488 CLR R8
0110 2499 CLR R9
0111 24AA CLR R10
0112 24BB CLR R11
0113 D041 RCALL tst_R16_R19
0114 F0C1 BEQ 0x012D
0115 D044 RCALL tst_R24_R27
0116 F0B1 BEQ 0x012D
0117 E2E8 LDI R30,0x28
0118 0F00 LSL R16
0119 1F11 ROL R17
011A 1F22 ROL R18
011B 1F33 ROL R19
011C 1C77 ROL R7
011D 1C88 ROL R8
011E 1C99 ROL R9
011F 1CAA ROL R10
0120 1CBB ROL R11
0121 1688 CP R8,R24
0122 0699 CPC R9,R25
0123 06AA CPC R10,R26
0124 06BB CPC R11,R27
0125 F028 BCS 0x012B
0126 1A88 SUB R8,R24
0127 0A99 SBC R9,R25
0128 0AAA SBC R10,R26
0129 0ABB SBC R11,R27
012A 9503 INC R16
012B 95EA DEC R30
012C F759 BNE 0x0118
012D F426 BRTC 0x0132
012E 2D08 MOV R16,R8
012F 2D19 MOV R17,R9
0130 2D2A MOV R18,R10
0131 2D3B MOV R19,R11
0132 C013 RJMP long_div_epilog
long_div_prolog:
0133 927A ST R7,-Y
0134 928A ST R8,-Y
0135 929A ST R9,-Y
0136 92AA ST R10,-Y
0137 92BA ST R11,-Y
0138 92CA ST R12,-Y
0139 93EA ST R30,-Y
013A 938A ST R24,-Y
013B 939A ST R25,-Y
013C 93AA ST R26,-Y
013D 93BA ST R27,-Y
013E 858B LDD R24,Y+11
013F 859C LDD R25,Y+12
0140 85AD LDD R26,Y+13
0141 85BE LDD R27,Y+14
0142 2EC3 MOV R12,R19
0143 F00E BRTS 0x0145
0144 26CB EOR R12,R27
0145 9508 RET
long_div_epilog:
0146 FCC7 SBRC R12,7
0147 D017 RCALL neg_R16_R19
0148 91B9 LD R27,Y+
0149 91A9 LD R26,Y+
014A 9199 LD R25,Y+
014B 9189 LD R24,Y+
014C 91E9 LD R30,Y+
014D 90C9 LD R12,Y+
014E 90B9 LD R11,Y+
014F 90A9 LD R10,Y+
0150 9099 LD R9,Y+
0151 9089 LD R8,Y+
0152 9079 LD R7,Y+
0153 9624 ADIW R28,4
0154 9508 RET
tst_R16_R19:
0155 2FE0 MOV R30,R16
0156 2BE1 OR R30,R17
0157 2BE2 OR R30,R18
0158 2BE3 OR R30,R19
0159 9508 RET
tst_R24_R27:
015A 2FE8 MOV R30,R24
015B 2BE9 OR R30,R25
015C 2BEA OR R30,R26
015D 2BEB OR R30,R27
015E 9508 RET
neg_R16_R19:
015F 9500 COM R16
0160 9510 COM R17
0161 9520 COM R18
0162 9530 COM R19
0163 5F0F SUBI R16,0xFF
0164 4F1F SBCI R17,0xFF
0165 4F2F SBCI R18,0xFF
0166 4F3F SBCI R19,0xFF
0167 9508 RET
neg_R24_R27:
0168 9580 COM R24
0169 9590 COM R25
016A 95A0 COM R26
016B 95B0 COM R27
016C 5F8F SUBI R24,0xFF
016D 4F9F SBCI R25,0xFF
016E 4FAF SBCI R26,0xFF
016F 4FBF SBCI R27,0xFF
0170 9508 RET
pop_gset2:
0171 E0E2 LDI R30,2
0172 940C0183 JMP pop
pop_gset3:
0174 E0E4 LDI R30,4
0175 940C0183 JMP pop
push_gset5:
0177 92FA ST R15,-Y
0178 92EA ST R14,-Y
push_gset4:
0179 92DA ST R13,-Y
017A 92CA ST R12,-Y
push_gset3:
017B 92BA ST R11,-Y
017C 92AA ST R10,-Y
push_gset2:
017D 937A ST R23,-Y
017E 936A ST R22,-Y
push_gset1:
017F 935A ST R21,-Y
0180 934A ST R20,-Y
0181 9508 RET
pop_gset1:
0182 E0E1 LDI R30,1
pop:
0183 9149 LD R20,Y+
0184 9159 LD R21,Y+
0185 FDE0 SBRC R30,0
0186 9508 RET
0187 9169 LD R22,Y+
0188 9179 LD R23,Y+
0189 FDE1 SBRC R30,1
018A 9508 RET
018B 90A9 LD R10,Y+
018C 90B9 LD R11,Y+
018D FDE2 SBRC R30,2
018E 9508 RET
018F 90C9 LD R12,Y+
0190 90D9 LD R13,Y+
0191 FDE3 SBRC R30,3
0192 9508 RET
0193 90E9 LD R14,Y+
0194 90F9 LD R15,Y+
0195 9508 RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -