📄 lesson3_1.lst
字号:
__text_start:
__start:
2A E5CF LDI R28,0x5F
2B E0D4 LDI R29,4
2C BFCD OUT 0x3D,R28
2D BFDE OUT 0x3E,R29
2E 51C0 SUBI R28,0x10
2F 40D0 SBCI R29,0
30 EA0A LDI R16,0xAA
31 8308 STD Y+0,R16
32 2400 CLR R0
33 E6E0 LDI R30,0x60
34 E0F0 LDI R31,0
35 E010 LDI R17,0
36 36E0 CPI R30,0x60
37 07F1 CPC R31,R17
38 F011 BEQ 0x003B
39 9201 ST R0,Z+
3A CFFB RJMP 0x0036
3B 8300 STD Z+0,R16
3C E5E4 LDI R30,0x54
3D E0F0 LDI R31,0
3E E6A0 LDI R26,0x60
3F E0B0 LDI R27,0
40 E010 LDI R17,0
41 E000 LDI R16,0
42 BF0B OUT 0x3B,R16
43 35E4 CPI R30,0x54
44 07F1 CPC R31,R17
45 F021 BEQ 0x004A
46 95C8 LPM
47 9631 ADIW R30,1
48 920D ST R0,X+
49 CFF9 RJMP 0x0043
4A 940E 0062 CALL _main
_exit:
4C CFFF RJMP _exit
_delay:
i --> R20
j --> R22
ms --> R16
4D 940E 0085 CALL push_xgsetF000
FILE: C:\iccv7avr\examples.avr\chengxu\lesson3_1\lesson3_1.c
(0001) #include <iom16v.h>
(0002) #include <macros.h>
(0003) #define uchar unsigned char
(0004) #define uint unsigned int
(0005) void delay(uint ms)
(0006) {
(0007) uint i,j;
(0008) for(i=0;i<ms;i++)
4F 2744 CLR R20
50 2755 CLR R21
51 C00B RJMP 0x005D
(0009) {
(0010) for(j=0;j<1141;j++);
52 2766 CLR R22
53 2777 CLR R23
54 C002 RJMP 0x0057
55 5F6F SUBI R22,0xFF
56 4F7F SBCI R23,0xFF
57 3765 CPI R22,0x75
58 E0E4 LDI R30,4
59 077E CPC R23,R30
5A F3D0 BCS 0x0055
5B 5F4F SUBI R20,0xFF
5C 4F5F SBCI R21,0xFF
5D 1740 CP R20,R16
5E 0751 CPC R21,R17
5F F390 BCS 0x0052
60 940C 008A JMP pop_xgsetF000
(0011) }
(0012) }
(0013) void main()
(0014) {
(0015) uchar k;
(0016) DDRA|=BIT(2);
_main:
k --> R20
62 9AD2 SBI 0x1A,2
(0017) PORTA|=BIT(2);
63 9ADA SBI 0x1B,2
(0018)
(0019) DDRB=0XFF;
64 EF8F LDI R24,0xFF
65 BB87 OUT 0x17,R24
(0020) PORTB=0XFF;
66 BB88 OUT 0x18,R24
67 C01B RJMP 0x0083
(0021) while(1)
(0022) {
(0023) for(k=0;k<8;k++)
68 2744 CLR R20
69 C017 RJMP 0x0081
(0024) {
(0025) PORTB&=~BIT(k);
6A E001 LDI R16,1
6B 2F14 MOV R17,R20
6C 940E 008F CALL lsl8
6E 2E20 MOV R2,R16
6F 9420 COM R2
70 B238 IN R3,0x18
71 2032 AND R3,R2
72 BA38 OUT 0x18,R3
(0026) delay(500);
73 EF04 LDI R16,0xF4
74 E011 LDI R17,1
75 DFD7 RCALL _delay
(0027)
(0028) PORTB|=BIT(k);
76 E001 LDI R16,1
77 2F14 MOV R17,R20
78 940E 008F CALL lsl8
7A B228 IN R2,0x18
7B 2A20 OR R2,R16
7C BA28 OUT 0x18,R2
(0029) delay(500);
FILE: <library>
7D EF04 LDI R16,0xF4
7E E011 LDI R17,1
7F DFCD RCALL _delay
80 9543 INC R20
81 3048 CPI R20,0x8
82 F338 BCS 0x006A
83 CFE4 RJMP 0x0068
84 9508 RET
push_xgsetF000:
85 937A ST R23,-Y
86 936A ST R22,-Y
87 935A ST R21,-Y
88 934A ST R20,-Y
89 9508 RET
pop_xgsetF000:
8A 9149 LD R20,Y+
8B 9159 LD R21,Y+
8C 9169 LD R22,Y+
8D 9179 LD R23,Y+
8E 9508 RET
lsl8:
8F 2311 TST R17
90 F019 BEQ 0x0094
91 0F00 LSL R16
92 951A DEC R17
93 CFFB RJMP lsl8
94 9508 RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -