📄 main.lst
字号:
HI-TECH Software PICC Macro Assembler V9.60PL1
Sun Feb 08 17:01:22 2009
1 processor 16F877A
2 opt pw 79
3 psect text0,local,class=CODE,delta=2
4 psect text1,local,class=CODE,delta=2
5 psect text2,local,class=CODE,delta=2
6 psect text3,local,class=CODE,delta=2
7 psect text4,local,class=CODE,delta=2
8 psect text5,local,class=CODE,delta=2
9 0000
10 0000
11 0000
12 0000
13 0000
14 0000
15 0000
16 0000
17 0000
18 0000
19 0000 _delay$t set ?_delay
20
21 psect text0
22 0778 _delay
23 ;main.c: 4: void delay(unsigned int t)
24 0778 2F7D goto l2
25 0779 l3
26 0779 08A7 movf ?_delay
27 077A 1903 btfsc 3,2
28 077B 03A8 decf ?_delay+1
29 077C 03A7 decf ?_delay
30 077D l2
31 077D 1283 bcf 3,5
32 077E 1303 bcf 3,6 ;carry unused
33 077F 0828 movf ?_delay+1,w
34 0780 0427 iorwf ?_delay,w
35 0781 1903 btfsc 3,2
36 0782 0008 return
37 0783 2F79 goto l3
38
39 psect text1
40 0791 _write_lcd_command
41 ; _com assigned to ?a_write_lcd_command+0
42 0000 _write_lcd_command$com set ?a_write_lcd_command
43 ;_com stored from w
44 0791 0183 clrf 3 ;select bank 0
45 0792 00A6 movwf ?a_write_lcd_command
46 ;main.c: 10: void write_lcd_command(unsigned ch
+ ar com)
47 0793 3028 movlw 40
48 0794 00A7 movwf ?_delay
49 0795 01A8 clrf ?_delay+1
50 0796 2778 call _delay
51 ;main.c: 13: RE0=0;
52 0797 1009 bcf 9,0
53 ;main.c: 14: RE1=0;;
54 0798 1089 bcf 9,1
55 ;main.c: 15: PORTD=com;
56 0799 0826 movf ?a_write_lcd_command,w
57 079A 0088 movwf 8 ;volatile
58 ;main.c: 16: RE2=1;
59 079B 1509 bsf 9,2
60 ;main.c: 17: RE2=0;
61 079C 1109 bcf 9,2
62 ;main.c: 18: }
63 079D 0008 return ;W free
64
65 psect text2
66 0784 _write_lcd_data
67 ; _data assigned to ?a_write_lcd_data+0
68 0000 _write_lcd_data$data set ?a_write_lcd_data
69 ;_data stored from w
70 0784 0183 clrf 3 ;select bank 0
71 0785 00A6 movwf ?a_write_lcd_data
72 ;main.c: 21: void write_lcd_data(unsigned char
+ data)
73 0786 3028 movlw 40
74 0787 00A7 movwf ?_delay
75 0788 01A8 clrf ?_delay+1
76 0789 2778 call _delay
77 ;main.c: 24: RE0=1;
78 078A 1409 bsf 9,0
79 ;main.c: 25: RE1=0;
80 078B 1089 bcf 9,1
81 ;main.c: 26: PORTD=data;
82 078C 0826 movf ?a_write_lcd_data,w
83 078D 0088 movwf 8 ;volatile
84 ;main.c: 27: RE2=1;
85 078E 1509 bsf 9,2
86 ;main.c: 28: RE2=0;
87 078F 1109 bcf 9,2
88 ;main.c: 29: }
89 0790 0008 return ;W free
90
91 psect text3
92 079E _lcd_init
93 ; _i assigned to ?a_lcd_init+0
94 0000 _lcd_init$i set ?a_lcd_init
95 ;main.c: 32: void lcd_init(void)
96 079E 3038 movlw 56
97 079F 2791 call _write_lcd_command
98 ;main.c: 36: for(i=4;i>0;i--)delay(248);
99 07A0 3004 movlw 4
100 07A1 00A0 movwf ?a_lcd_init
101 07A2 l8
102 07A2 30F8 movlw 248
103 07A3 00A7 movwf ?_delay
104 07A4 01A8 clrf ?_delay+1
105 07A5 2778 call _delay
106 07A6 0BA0 decfsz ?a_lcd_init
107 07A7 2FA2 goto l8
108 ;main.c: 37: write_lcd_command(0x38);
109 07A8 3038 movlw 56
110 07A9 2791 call _write_lcd_command
111 ;main.c: 38: write_lcd_command(0x0c);
112 07AA 300C movlw 12
113 07AB 2791 call _write_lcd_command
114 ;main.c: 39: write_lcd_command(0x01);
115 07AC 3001 movlw 1
116 07AD 2791 call _write_lcd_command
117 ;main.c: 40: for(i=4;i>0;i--)delay(248);
118 07AE 3004 movlw 4
119 07AF 00A0 movwf ?a_lcd_init
120 07B0 l11
121 07B0 30F8 movlw 248
122 07B1 00A7 movwf ?_delay
123 07B2 01A8 clrf ?_delay+1
124 07B3 2778 call _delay
125 07B4 0BA0 decfsz ?a_lcd_init
126 07B5 2FB0 goto l11
127 ;main.c: 41: write_lcd_command(0x06);
128 07B6 3006 movlw 6
129 07B7 2F91 goto _write_lcd_command
130
131 psect text4
132 07D3 _lcd_display
133 ; _x assigned to ?a_lcd_display+0
134 0000 _lcd_display$x set ?a_lcd_display
135 ; _s assigned to ?a_lcd_display+1
136 0000 _lcd_display$s set ?a_lcd_display+1
137 ;_x stored from w
138 07D3 0183 clrf 3 ;select bank 0
139 07D4 00A3 movwf ?a_lcd_display
140 ;main.c: 45: void lcd_display(unsigned char x,u
+ nsigned char y,const unsigned char *str)
141 07D5 2FDD goto l16
142 07D6 l17
143 ;main.c: 49: {
144 07D6 0823 movf ?a_lcd_display,w
145 07D7 3E80 addlw -128
146 07D8 2FDB goto L1
147 ;main.c: 51: break;
148 07D9 l18
149 ;main.c: 52: case 1: write_lcd_command(0xc0+x);
150 07D9 0823 movf ?a_lcd_display,w
151 07DA 3EC0 addlw -64
152 07DB L1
153 07DB 2791 call _write_lcd_command
154 ;main.c: 53: break;
155 07DC 2FE4 goto l19
156 07DD l16
157 07DD 0820 movf ?_lcd_display,w
158 07DE 3A00 xorlw 0
159 07DF 1903 btfsc 3,2
160 07E0 2FD6 goto l17
161 07E1 3A01 xorlw 1
162 07E2 1903 btfsc 3,2
163 07E3 2FD9 goto l18
164 07E4 l19
165 07E4 0822 movf ?_lcd_display+2,w
166 07E5 00AA movwf code_ptr+1
167 07E6 0821 movf ?_lcd_display+1,w
168 07E7 200D call string_table
169 07E8 3800 iorlw 0
170 07E9 1903 btfsc 3,2
171 07EA 0008 return
172 ;main.c: 55: while(*str)
173 ;main.c: 56: {
174 07EB 0822 movf ?_lcd_display+2,w
175 07EC 00AA movwf code_ptr+1
176 07ED 0821 movf ?_lcd_display+1,w
177 07EE 200D call string_table
178 07EF 2784 call _write_lcd_data
179 ;main.c: 58: str++;
180 07F0 0AA1 incf ?_lcd_display+1
181 07F1 1903 btfsc 3,2
182 07F2 0AA2 incf ?_lcd_display+2
183 ;main.c: 59: for(s=0;s<30000;s++);
184 07F3 01A4 clrf ?a_lcd_display+1
185 07F4 01A5 clrf ?a_lcd_display+2
186 07F5 l22
187 07F5 0AA4 incf ?a_lcd_display+1
188 07F6 1903 btfsc 3,2
189 07F7 0AA5 incf ?a_lcd_display+2
190 07F8 3075 movlw 117
191 07F9 0225 subwf ?a_lcd_display+2,w
192 07FA 3030 movlw 48
193 07FB 1903 btfsc 3,2
194 07FC 0224 subwf ?a_lcd_display+1,w
195 07FD 1803 btfsc 3,0
196 07FE 2FE4 goto l19
197 07FF 2FF5 goto l22
198
199 psect text5
200 0000
201 0000
202 0000
203 0000
204 0000
205 0000
206 0000
207 0000
208 0000
209 0000
210 0000
211 0000
212 0000
213 0000
214 0000
215 0000
216 0000
217 0000
218 0000
219 0000
220 0000
221 0000
222 0000
223 0000
224 0000
225 0000
226 0000
227 0000
228 0000
229 0000
230 0000
231 0000
232 0000
233 0000
234 0000
235 0000
236 0000
237 0000
238 0000
239 0000
240 0000
241 0000
242 0000
243 0000
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -