📄 epphal.lst
字号:
1 .file "epphal.c"
2 .arch atmega16
3 __SREG__ = 0x3f
4 __SP_H__ = 0x3e
5 __SP_L__ = 0x3d
6 __tmp_reg__ = 0
7 __zero_reg__ = 1
8 .global __do_copy_data
9 .global __do_clear_bss
11 .text
12 .Ltext0:
85 .global outportb
87 outportb:
1:epphal.c **** //*************************************
2:epphal.c **** // 硬件提取层epphal.c
3:epphal.c **** // 开发环境WINAVRGCC
4:epphal.c **** // 2007-01-9
5:epphal.c **** // Hjxiang
6:epphal.c **** //*************************************
7:epphal.c **** //标准C头文件
8:epphal.c **** #include <stdint.h>
9:epphal.c **** #include <stdlib.h>
10:epphal.c **** //AVR头文件
11:epphal.c **** #include <avr/io.h>
12:epphal.c **** #include <avr/signal.h>
13:epphal.c **** #include <avr/delay.h>
14:epphal.c **** //自定义头文件
15:epphal.c **** #include "epphal.h"
16:epphal.c **** #define RD_N 4
17:epphal.c **** #define WR_N 5
18:epphal.c **** #define ALE 6
19:epphal.c **** #define CS_N 7
20:epphal.c **** #define RESET_N 3
21:epphal.c **** #define TXD232 1
22:epphal.c **** #define INT_N 2
23:epphal.c **** #define wait asm("nop")
24:epphal.c **** void outportb(unsigned int Addr,unsigned char Data)
25:epphal.c **** {
89 .LM1:
90 /* prologue: frame size=0 */
91 /* prologue end (size=0) */
92 0000 9C01 movw r18,r24
26:epphal.c **** DDRA=0xff; //IOA OUT
94 .LM2:
95 0002 8FEF ldi r24,lo8(-1)
96 0004 8ABB out 58-0x20,r24
27:epphal.c **** PORTB=(0<<CS_N)|(0<<ALE)|(1<<WR_N)|(1<<RD_N)|(1<<RESET_N); //IOB7=CS_N=0,IOB6=ALE=0,IOB5=WR_N=1,IO
98 .LM3:
99 0006 88E3 ldi r24,lo8(56)
100 0008 88BB out 56-0x20,r24
28:epphal.c **** PORTA=Addr;
102 .LM4:
103 000a 2BBB out 59-0x20,r18
29:epphal.c **** PORTB=(0<<CS_N)|(1<<ALE)|(1<<WR_N)|(1<<RD_N)|(1<<RESET_N);// CS_N=0,ALE=1,WR_N=1,RD_N=1,RESET_N=1,
105 .LM5:
106 000c 98E7 ldi r25,lo8(120)
107 000e 98BB out 56-0x20,r25
30:epphal.c **** // 在ALE 下降沿的时候,D12锁定地址;
31:epphal.c **** PORTB=(0<<CS_N)|(0<<ALE)|(1<<WR_N)|(1<<RD_N)|(1<<RESET_N);// CS_N=0,ALE=0,WR_N=1,RD_N=1,RESET_N=1,
109 .LM6:
110 0010 88BB out 56-0x20,r24
32:epphal.c **** // 准备数据写入D12
33:epphal.c **** PORTB=(0<<CS_N)|(0<<ALE)|(0<<WR_N)|(1<<RD_N)|(1<<RESET_N);// CS_N=0,ALE=0,WR_N=0,RD_N=1,RESET_N=1,
112 .LM7:
113 0012 88E1 ldi r24,lo8(24)
114 0014 88BB out 56-0x20,r24
34:epphal.c **** PORTA=Data;
116 .LM8:
117 0016 6BBB out 59-0x20,r22
35:epphal.c **** asm("NOP");
119 .LM9:
120 /* #APP */
121 0018 0000 NOP
36:epphal.c **** asm("NOP");
123 .LM10:
124 001a 0000 NOP
37:epphal.c **** PORTB=(0<<CS_N)|(1<<ALE)|(1<<WR_N)|(1<<RD_N)|(1<<RESET_N);// CS_N=0,ALE=0,WR_N=1,RD_N=1,RESET_N=1,
126 .LM11:
127 /* #NOAPP */
128 001c 98BB out 56-0x20,r25
129 /* epilogue: frame size=0 */
130 001e 0895 ret
131 /* epilogue end (size=1) */
132 /* function outportb size 18 (17) */
134 .Lscope0:
137 .global inportb
139 inportb:
38:epphal.c **** }
39:epphal.c **** unsigned char inportb(unsigned Addr)
40:epphal.c **** {
141 .LM12:
142 /* prologue: frame size=0 */
143 /* prologue end (size=0) */
144 0020 9C01 movw r18,r24
41:epphal.c **** unsigned char temp;
42:epphal.c **** DDRA=0xff; //IOA IN
146 .LM13:
147 0022 8FEF ldi r24,lo8(-1)
148 0024 8ABB out 58-0x20,r24
43:epphal.c **** PORTB=0b00111010; //IOB7=CS_N=0,IOB6=ALE=0,IOB5=WR_N=1,IOB4=RD_N=1,IOB3=RESET_N=1,IOB1=1;
150 .LM14:
151 0026 8AE3 ldi r24,lo8(58)
152 0028 88BB out 56-0x20,r24
44:epphal.c **** PORTA=Addr;
154 .LM15:
155 002a 2BBB out 59-0x20,r18
45:epphal.c **** PORTB=(0<<CS_N)|(1<<ALE)|(1<<WR_N)|(1<<RD_N)|(1<<RESET_N);// CS_N=0, ALE=1,WR_N=1,RD_N=1;RESET_N=1
157 .LM16:
158 002c 88E7 ldi r24,lo8(120)
159 002e 88BB out 56-0x20,r24
46:epphal.c **** PORTB=(0<<CS_N)|(0<<ALE)|(1<<WR_N)|(1<<RD_N)|(1<<RESET_N);// CS_N=0, ALE=0,WR_N=1,RD_N=1;RESET_N=1
161 .LM17:
162 0030 98E3 ldi r25,lo8(56)
163 0032 98BB out 56-0x20,r25
47:epphal.c **** DDRA=0x00;
165 .LM18:
166 0034 1ABA out 58-0x20,__zero_reg__
48:epphal.c **** PORTB=(0<<CS_N)|(0<<ALE)|(1<<WR_N)|(0<<RD_N)|(1<<RESET_N);// CS_N=0, ALE=0,WR_N=1,RD_N=0;RESET_N=1
168 .LM19:
169 0036 88E2 ldi r24,lo8(40)
170 0038 88BB out 56-0x20,r24
49:epphal.c **** temp=PORTA;
172 .LM20:
173 003a 8BB3 in r24,59-0x20
50:epphal.c **** asm("NOP");
175 .LM21:
176 /* #APP */
177 003c 0000 NOP
51:epphal.c **** asm("NOP");
179 .LM22:
180 003e 0000 NOP
52:epphal.c **** PORTB=(0<<CS_N)|(0<<ALE)|(1<<WR_N)|(1<<RD_N)|(1<<RESET_N);// CS_N=0, ALE=0,WR_N=1,RD_N=1;RESET_N=1
182 .LM23:
183 /* #NOAPP */
184 0040 98BB out 56-0x20,r25
53:epphal.c **** return temp;
54:epphal.c **** }
186 .LM24:
187 0042 9927 clr r25
188 /* epilogue: frame size=0 */
189 0044 0895 ret
190 /* epilogue end (size=1) */
191 /* function inportb size 21 (20) */
196 .Lscope1:
197 .text
199 Letext:
200 /* File "epphal.c": code 39 = 0x0027 ( 37), prologues 0, epilogues 2 */
DEFINED SYMBOLS
*ABS*:00000000 epphal.c
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cci8aaaa.s:3 *ABS*:0000003f __SREG__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cci8aaaa.s:4 *ABS*:0000003e __SP_H__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cci8aaaa.s:5 *ABS*:0000003d __SP_L__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cci8aaaa.s:6 *ABS*:00000000 __tmp_reg__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cci8aaaa.s:7 *ABS*:00000001 __zero_reg__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cci8aaaa.s:87 .text:00000000 outportb
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cci8aaaa.s:139 .text:00000020 inportb
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cci8aaaa.s:199 .text:00000046 Letext
UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -