HI-TECH PICC-18 ( и ваще пусть LA скажет нельзя ли ещё короче через union сделать, хотя может последнее замечание уже из другой оперы )
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено patton 18 августа 2004 г. 15:57
В ответ на: Пожалуйста, откомпилируйте кто чем может( С для МК ) файл по ссылке и покажите листинг, в картинке листинг для HT-PICC отправлено patton 18 августа 2004 г. 13:13

HI-TECH Software PICC-18 Macro Assembler V8.30
Wed Aug 18 15:52:20 2004


1 processor 18F452
2 opt pw 80
3 psect __Z49231UD_,global,delta=1
4 psect text,global,reloc=2,class=CODE,delta=1
5 psect temp,global,ovrld,common,class=COMRAM,spa
+ ce=1,delta=1
6 psect intsave_regs,global,class=BIGRAM,space=1,
+ delta=1
7 000000
8 000000
9 000000
10 000000
11 000000
12 000000
13 000000
14 000000
15 000000
16 000000
17 000000
18 000000
19 000000
20 000000
21 000000
22 000000
23 000000
24 000000
25 000000
26 000000
27 000000
28 000000
29 000000
30 000000
31 000000
32 000000
33 000000
34 000000
35 000000
36 000000
37 000000
38 000000
39 000000
40 000000
41 000000
42 000000
43 000000
44 000000
45 000000
46 000000
47 000000
48 000000
49 000000
50 000000
51 000000
52 000000
53 000000
54 000000
55 000000
56 000000
57 000000
58 000000
59 000000
60 000000
61 000000
62 000000
63 000000
64 000000
65 000000
66 000000
67 000000
68 000000
69 000000
70 000000
71 000000
72 000000
73 000000
74 000000
75 000000
76 000000
77 000000
78 000000
79 000000
80 000000
81 000000
82 000000
83 000000
84 000000
85 000000
86 000000
87 000000
88 000000
89 000000
90 000000
91 000000
92 000000
93 000000
94 000000
95 000000
96
97 psect __Z49231UD_
98 000000 _test$src set ?_test
99
100 psect text
101 00001E 00FE dw ?_test
102 ; _buf assigned to ?a_main+2
103 000000 _main$buf set ?a_main+2
104 ; _result assigned to ?a_main+0
105 000000 _main$result set ?a_main
106 ; param _packet assigned to ?_badtest+0
107 000000 _badtest$packet set ?_badtest
108 000020 _test:
109 000020 FFFF dw 65535
110 000022 f12:
111 000000
112 ;short.c: 14: short result = *( short* )src;
113 000022 C0FE FFE9 movff ?_test,fsr0l
114 000026 C0FF FFEA movff ?_test+1,fsr0h
115 00002A CFEE FFF3 movff postinc0,prodl
116 00002E CFED FFF4 movff postdec0,prodh
117 ;short.c: 15: return result;
118 000032 CFF3 F000 movff prodl,btemp
119 000036 CFF4 F001 movff prodh,btemp+1
120 ;short.c: 16: }
121 00003A 0012 return
122 00003C FFFF dw 65535
123 00003E D7F1 goto f12
124 000040 00FE dw ?_badtest
125 000042 _badtest:
126 000042 FFFF dw 65535
127 000044 f22:
128 000000
129 ;short.c: 19: short result = packet[0] | (((sign
+ ed char)packet[1])<<8);
130 ; _packet loaded to fsr1
131 000044 C0FE FFE1 movff ?_badtest,fsr1l
132 000048 C0FF FFE2 movff ?_badtest+1,fsr1h
133 00004C 50E7 movf indf1,w,c
134 00004E 6E00 movwf btemp
135 000050 C000 F002 movff btemp,btemp+2
136 000054 6A03 clrf btemp+3
137 000056 EE00 F001 lfsr 0,1
138 00005A 50E1 movf fsr1l,w,c
139 00005C 26E9 addwf fsr0l,f,c
140 00005E 50E2 movf fsr1h,w,c
141 000060 22EA addwfc fsr0h,f,c
142 000062 50EF movf indf0,w,c
143 000064 6E00 movwf btemp
144 000066 6A01 clrf btemp+1
145 000068 BE00 btfsc btemp,7
146 00006A 0601 decf btemp+1,f
147 00006C C000 F001 movff btemp,btemp+1
148 000070 6A00 clrf btemp
149 000072 5000 movf btemp,w
150 000074 1002 iorwf btemp+2,w
151 000076 6EF3 movwf prodl,c
152 000078 5001 movf btemp+1,w
153 00007A 1003 iorwf btemp+3,w
154 00007C 6EF4 movwf prodh,c
155 ;short.c: 20: return result;
156 00007E CFF3 F000 movff prodl,btemp
157 000082 CFF4 F001 movff prodh,btemp+1
158 ;short.c: 21: }
159 000086 0012 return
160 000088 FFFF dw 65535
161 00008A D7DC goto f22
162 00008C _main:
163 00008C FFFF dw 65535
164 000000
165 ;short.c: 24: char buf[ 2 ];
166 00008E 0100 movlb __Lparam shr (0+8)
167 000090 0E34 movlw 52
168 000092 6FFC movwf (?a_main+2)^(__Lparam& (0+65280))
169 000094 0E12 movlw 18
170 000096 6FFD movwf (?a_main+3)^(__Lparam& (0+65280))
171 000098 L1:
172 ;short.c: 27: while( 1 )
173 ;short.c: 28: {
174 000098 0100 movlb __Lparam shr (0+8)
175 00009A 0EFC movlw low (?a_main+2)
176 00009C 6FFE movwf ?_test^(__Lparam& (0+65280))
177 00009E 0E00 movlw high (?a_main+2)
178 0000A0 6FFF movwf (?_test+1)^(__Lparam& (0+65280))
179 0000A2 DFBE call _test ;wreg free
180 0000A4 C000 F0FA movff btemp,?a_main
181 0000A8 C001 F0FB movff btemp+1,?a_main+1
182 ;short.c: 30: badresult = badtest( buf );
183 0000AC 0100 movlb __Lparam shr (0+8)
184 0000AE 0EFC movlw low (?a_main+2)
185 0000B0 6FFE movwf ?_badtest^(__Lparam& (0+65280))
186 0000B2 0E00 movlw high (?a_main+2)
187 0000B4 6FFF movwf (?_badtest+1)^(__Lparam& (0+65280))
188 0000B6 DFC5 call _badtest ;wreg free
189 0000B8 C000 FFF6 movff btemp,tblptrl
190 0000BC C001 FFF7 movff btemp+1,tblptrh
191 ;short.c: 31: if( result != badresult )
192 0000C0 0100 movlb __Lparam shr (0+8)
193 0000C2 50F7 movf tblptrh,w,c
194 0000C4 19FB xorwf (?a_main+1)^(__Lparam& (0+65280)),w
195 0000C6 E102 bnz u15
196 0000C8 50F6 movf tblptrl,w,c
197 0000CA 19FA xorwf ?a_main^(__Lparam& (0+65280)),w
198 0000CC u15:
199 0000CC B4D8 btfsc status,2,c
200 0000CE D7E4 goto L1
201 ;short.c: 32: break;
202 0000D0 l8:
203 ;short.c: 34: error:
204 ;short.c: 35: goto error;
205 0000D0 D7FF goto l8
206
207 psect temp
208 000000 btemp:
209 000000 ds 4
210 tblptrh equ 0xFF7
211 tblptrl equ 0xFF6
212 prodh equ 0xFF4
213 prodl equ 0xFF3
214 indf0 equ 0xFEF
215 postinc0 equ 0xFEE
216 postdec0 equ 0xFED
217 fsr0h equ 0xFEA
218 fsr0l equ 0xFE9
219 indf1 equ 0xFE7
220 fsr1h equ 0xFE2
221 fsr1l equ 0xFE1
222 status equ 0xFD8


HI-TECH Software PICC-18 Macro Assembler V8.30
Symbol Table Wed Aug 18 15:52:20 2004

l8 00D0 f12 0022 f22 0044
u15 00CC _main 008C _test 0020
fsr0h 000FEA indf0 000FEF fsr0l 000FE9
indf1 000FE7 fsr1l 000FE1 btemp 0000
prodl 000FF3 start 0018 ?_test 00FE
used_btemp0 0001 used_btemp1 0001 used_btemp2 0001
used_btemp3 0001 status 000FD8 __Lparam 00FA
_badtest 0042 ?_badtest 00FE __ramtop 0600
?a_main 00FA postdec0 000FED postinc0 000FEE
tblptrl 000FF6


Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru