📄 key.s
字号:
.module key.c
.area text(rom, con, rel)
.dbfile D:\avr\key\key.c
.dbfunc e Delay _Delay fV
; a -> R20,R21
; b -> R22,R23
; x -> R16,R17
.even
_Delay::
rcall push_gset2
.dbline -1
.dbline 4
;
; #include <iom8v.h>
; void Delay(int x)
; {
.dbline 6
; unsigned int a, b;
; for (a = 100; a>0; a--)
ldi R20,100
ldi R21,0
rjmp L5
L2:
.dbline 7
ldi R22,1000
ldi R23,3
rjmp L9
L6:
.dbline 7
L7:
.dbline 7
subi R22,1
sbci R23,0
L9:
.dbline 7
cpi R22,0
cpc R22,R23
brne L6
X0:
L3:
.dbline 6
subi R20,1
sbci R21,0
L5:
.dbline 6
cpi R20,0
cpc R20,R21
brne L2
X1:
.dbline -2
L1:
rcall pop_gset2
.dbline 0 ; func end
ret
.dbsym r a 20 i
.dbsym r b 22 i
.dbsym r x 16 I
.dbend
.dbfunc e main _main fV
; j -> <dead>
; i -> R20,R21
; ACC -> R22,R23
.even
_main::
.dbline -1
.dbline 10
; for (b = 1000; b>0; b--);
; }
; void main()
; {
.dbline 13
; unsigned int i,j,ACC;
; //ACC=0X000;
; DDRC=0XFE;
ldi R24,254
out 0x14,R24
.dbline 14
; PORTC=0XFF;
ldi R24,255
out 0x15,R24
.dbline 15
; DDRB=0XFF;
out 0x17,R24
.dbline 16
; PORTB=0XFF;
out 0x18,R24
.dbline 17
; DDRD=0XFF;
out 0x11,R24
.dbline 18
; PORTD=0X00;
clr R2
out 0x12,R2
rjmp L12
L11:
.dbline 20
; while (1)
; {
.dbline 22
; //PORTB=0x00;
; PORTC&=0B11111101;
in R24,0x15
andi R24,253
out 0x15,R24
.dbline 25
;
; //Delay(1);
; PORTC|=0B00000010;
sbi 0x15,1
.dbline 26
; for(i=9;i>0;i--)
ldi R20,9
ldi R21,0
rjmp L17
L14:
.dbline 27
.dbline 28
lsl R22
rol R23
.dbline 29
in R24,0x15
andi R24,251
out 0x15,R24
.dbline 30
in R24,0x13
clr R25
andi R24,1
andi R25,0
or R22,R24
or R23,R25
.dbline 31
sbi 0x15,2
.dbline 32
L15:
.dbline 26
subi R20,1
sbci R21,0
L17:
.dbline 26
cpi R20,0
cpc R20,R21
brne L14
X2:
.dbline 34
; {
; ACC=ACC<<1;
; PORTC&=0B11111011;
; ACC|=(PINC&01);
; PORTC|=0B00000100;
; }
; // PORTC=0xfB;
; ACC= ACC&0x1ff;
andi R23,1
.dbline 35
; if(ACC==0xff)
cpi R22,255
ldi R30,0
cpc R23,R30
brne L18
.dbline 36
; {PORTB=0X00;
.dbline 36
clr R2
out 0x18,R2
.dbline 37
; }
rjmp L19
L18:
.dbline 39
; else
; PORTB=ACC;
out 0x18,R22
L19:
.dbline 41
ldi R16,250
ldi R17,0
rcall _Delay
.dbline 42
L12:
.dbline 19
rjmp L11
X3:
.dbline -2
L10:
.dbline 0 ; func end
ret
.dbsym l j 1 i
.dbsym r i 20 i
.dbsym r ACC 22 i
.dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -