📄 main.s
字号:
.module main.c
.area text(rom, con, rel)
.dbfile E:\ICCAVR\project\afa-1\icc\afa-001\main.c
.dbfunc e delay_ms _delay_ms fV
; a -> R20
; b -> R22
; i -> R16
.even
_delay_ms::
xcall push_gset2
.dbline -1
.dbline 9
; /*
; 内部1 M晶振。
; I/O口实验,发光二极管循环显示。
; 程序采用单任务方式,软件延时。
; */
; #include "iom16v.h"
;
; /*延时函数*/
; void delay_ms(unsigned char i) {
.dbline 12
ldi R20,1
xjmp L5
L2:
.dbline 12
;
; unsigned char a, b;
; for (a = 1; a < i; a++) {
.dbline 13
ldi R22,1
xjmp L9
L6:
.dbline 13
.dbline 14
.dbline 15
L7:
.dbline 13
inc R22
L9:
.dbline 13
tst R22
brne L6
.dbline 16
L3:
.dbline 12
inc R20
L5:
.dbline 12
cp R20,R16
brlo L2
.dbline -2
L1:
xcall pop_gset2
.dbline 0 ; func end
ret
.dbsym r a 20 c
.dbsym r b 22 c
.dbsym r i 16 c
.dbend
.dbfunc e main _main fV
; i -> R20
.even
_main::
.dbline -1
.dbline 19
; for (b = 1; b; b++) {
; ;
; }
; }
; }
;
; void main(void) {
.dbline 23
;
; unsigned char i;
;
; DDRA = 0x00; /*方向输入*/
clr R2
out 0x1a,R2
.dbline 24
; PORTA = 0xFF; /*打开上拉*/
ldi R24,255
out 0x1b,R24
.dbline 25
; DDRB = 0xFF; /*方向输出*/
out 0x17,R24
.dbline 26
; PORTB = 0xFF; /*高电平*/
out 0x18,R24
.dbline 27
; DDRC = 0x00;
out 0x14,R2
.dbline 28
; PORTC = 0xFF;
out 0x15,R24
.dbline 29
; DDRD = 0x00;
out 0x11,R2
.dbline 30
; PORTD = 0xFF;
out 0x12,R24
xjmp L12
L11:
.dbline 32
;
; while (1) {
.dbline 33
clr R20
xjmp L17
L14:
.dbline 33
.dbline 34
ldi R16,1
mov R17,R20
xcall lsl8
mov R2,R16
com R2
out 0x18,R2
.dbline 35
ldi R16,200
xcall _delay_ms
.dbline 36
L15:
.dbline 33
inc R20
L17:
.dbline 33
; for (i = 0; i < 8; i ++) {
cpi R20,8
brlo L14
.dbline 37
ldi R20,8
xjmp L21
L18:
.dbline 37
.dbline 38
mov R17,R20
subi R17,1
ldi R16,1
xcall lsl8
mov R2,R16
com R2
out 0x18,R2
.dbline 39
ldi R16,200
xcall _delay_ms
.dbline 40
L19:
.dbline 37
dec R20
L21:
.dbline 37
clr R2
cp R2,R20
brlo L18
.dbline 41
L12:
.dbline 32
xjmp L11
X0:
.dbline -2
L10:
.dbline 0 ; func end
ret
.dbsym r i 20 c
.dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -