📄 moto.lst
字号:
__start:
__text_start:
0013 E5CF LDI R28,0x5F
0014 E0D4 LDI R29,4
0015 BFCD OUT 0x3D,R28
0016 BFDE OUT 0x3E,R29
0017 51C0 SUBI R28,0x10
0018 40D0 SBCI R29,0
0019 EA0A LDI R16,0xAA
001A 8308 STD Y+0,R16
001B 2400 CLR R0
001C E6E0 LDI R30,0x60
001D E0F0 LDI R31,0
001E E010 LDI R17,0
001F 36E0 CPI R30,0x60
0020 07F1 CPC R31,R17
0021 F011 BEQ 0x0024
0022 9201 ST R0,Z+
0023 CFFB RJMP 0x001F
0024 8300 STD Z+0,R16
0025 E2E6 LDI R30,0x26
0026 E0F0 LDI R31,0
0027 E6A0 LDI R26,0x60
0028 E0B0 LDI R27,0
0029 E010 LDI R17,0
002A 32E6 CPI R30,0x26
002B 07F1 CPC R31,R17
002C F021 BEQ 0x0031
002D 95C8 LPM
002E 9631 ADIW R30,1
002F 920D ST R0,X+
0030 CFF9 RJMP 0x002A
0031 D023 RCALL _main
_exit:
0032 CFFF RJMP _exit
FILE: D:\avr\moto\moto.c
(0001) #include<iom8v.h>
(0002) void delay_us(int time)
(0003) {
(0004) do
(0005) {
(0006) time--;
_delay_us:
time --> R16
0033 5001 SUBI R16,1
0034 4010 SBCI R17,0
(0007) }
(0008) while (time>1);
0035 E081 LDI R24,1
0036 E090 LDI R25,0
0037 1780 CP R24,R16
0038 0791 CPC R25,R17
0039 F3CC BLT 0x0033
003A 9508 RET
_delay_ms:
time --> R20
003B D060 RCALL push_gset1
003C 01A8 MOVW R20,R16
(0009) }
(0010) /* 毫秒级延时程序 */
(0011) void delay_ms(unsigned int time)
(0012) {
003D C005 RJMP 0x0043
(0013) while(time!=0)
(0014) {
(0015) delay_us(1250);
003E EE02 LDI R16,0xE2
003F E014 LDI R17,4
0040 DFF2 RCALL _delay_us
(0016) time--;
0041 5041 SUBI R20,1
0042 4050 SBCI R21,0
0043 3040 CPI R20,0
0044 0745 CPC R20,R21
0045 F7C1 BNE 0x003E
0046 D058 RCALL pop_gset1
0047 9508 RET
(0017) }
(0018) }
(0019) void delay(void)
(0020) {
(0021) char x,y;
(0022) for(x=1;x>0;x--)
_delay:
x --> R16
y --> R18
0048 E001 LDI R16,1
0049 C007 RJMP 0x0051
(0023) for(y=1;y>0;y--);
004A E021 LDI R18,1
004B C001 RJMP 0x004D
004C 952A DEC R18
004D 2422 CLR R2
004E 1622 CP R2,R18
004F F3E0 BCS 0x004C
0050 950A DEC R16
0051 2422 CLR R2
0052 1620 CP R2,R16
0053 F3B0 BCS 0x004A
0054 9508 RET
(0024)
(0025) }
(0026) void main(void)
(0027) {
(0028) int a;
(0029) DDRB=0xff;
_main:
a --> Y+1
0055 EF8F LDI R24,0xFF
0056 BB87 OUT 0x17,R24
(0030) PORTB=0;
0057 2422 CLR R2
0058 BA28 OUT 0x18,R2
(0031) DDRD=0xf0;
0059 EF80 LDI R24,0xF0
005A BB81 OUT 0x11,R24
(0032) PORTD=0xff;
005B EF8F LDI R24,0xFF
005C BB82 OUT 0x12,R24
(0033) delay_ms(3);
005D E003 LDI R16,3
005E E010 LDI R17,0
005F DFDB RCALL _delay_ms
(0034) PORTB=0b00011010;
0060 E18A LDI R24,0x1A
0061 BB88 OUT 0x18,R24
(0035) delay_ms(3);
0062 E003 LDI R16,3
0063 E010 LDI R17,0
0064 DFD6 RCALL _delay_ms
0065 C02C RJMP 0x0092
(0036) while(1)
(0037) {
(0038) if((PIND&0x01)==1)
0066 B380 IN R24,0x10
0067 7081 ANDI R24,1
0068 3081 CPI R24,1
0069 F541 BNE 0x0092
(0039) {
(0040) delay_ms(1);
006A E001 LDI R16,1
006B E010 LDI R17,0
006C DFCE RCALL _delay_ms
(0041) PORTB=0b00011000;
006D E188 LDI R24,0x18
006E BB88 OUT 0x18,R24
(0042) delay_ms(1);
006F E001 LDI R16,1
0070 E010 LDI R17,0
0071 DFC9 RCALL _delay_ms
(0043) PORTB=0b11100001;
0072 EE81 LDI R24,0xE1
0073 BB88 OUT 0x18,R24
(0044) delay_ms(1);
0074 E001 LDI R16,1
0075 E010 LDI R17,0
0076 DFC4 RCALL _delay_ms
(0045) PORTB=0b00011100;
0077 E18C LDI R24,0x1C
0078 BB88 OUT 0x18,R24
(0046) delay_ms(1);
0079 E001 LDI R16,1
007A E010 LDI R17,0
007B DFBF RCALL _delay_ms
(0047) PORTB=0b11100001;
007C EE81 LDI R24,0xE1
007D BB88 OUT 0x18,R24
(0048) delay_ms(1);
007E E001 LDI R16,1
007F E010 LDI R17,0
0080 DFBA RCALL _delay_ms
(0049) PORTB=0b00011110;
0081 E18E LDI R24,0x1E
0082 BB88 OUT 0x18,R24
(0050) delay_ms(1);
0083 E001 LDI R16,1
0084 E010 LDI R17,0
0085 DFB5 RCALL _delay_ms
(0051) PORTB=0b11100001;
0086 EE81 LDI R24,0xE1
0087 BB88 OUT 0x18,R24
(0052) delay_ms(1);
0088 E001 LDI R16,1
0089 E010 LDI R17,0
008A DFB0 RCALL _delay_ms
(0053) PORTB=0b00011010;
008B E18A LDI R24,0x1A
008C BB88 OUT 0x18,R24
(0054) delay_ms(1);
008D E001 LDI R16,1
008E E010 LDI R17,0
008F DFAB RCALL _delay_ms
(0055) PORTB=0b11100001;
FILE: <library>
0090 EE81 LDI R24,0xE1
0091 BB88 OUT 0x18,R24
0092 CFD3 RJMP 0x0066
0093 9508 RET
push_gset5:
0094 92FA ST R15,-Y
0095 92EA ST R14,-Y
push_gset4:
0096 92DA ST R13,-Y
0097 92CA ST R12,-Y
push_gset3:
0098 92BA ST R11,-Y
0099 92AA ST R10,-Y
push_gset2:
009A 937A ST R23,-Y
009B 936A ST R22,-Y
push_gset1:
009C 935A ST R21,-Y
009D 934A ST R20,-Y
009E 9508 RET
pop_gset1:
009F E0E1 LDI R30,1
pop:
00A0 9149 LD R20,Y+
00A1 9159 LD R21,Y+
00A2 FDE0 SBRC R30,0
00A3 9508 RET
00A4 9169 LD R22,Y+
00A5 9179 LD R23,Y+
00A6 FDE1 SBRC R30,1
00A7 9508 RET
00A8 90A9 LD R10,Y+
00A9 90B9 LD R11,Y+
00AA FDE2 SBRC R30,2
00AB 9508 RET
00AC 90C9 LD R12,Y+
00AD 90D9 LD R13,Y+
00AE FDE3 SBRC R30,3
00AF 9508 RET
00B0 90E9 LD R14,Y+
00B1 90F9 LD R15,Y+
00B2 9508 RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -