[an error occurred while processing this directive]
|
Ну вот и я, ярый противник асма, докатился до него после того как не влезая в память увидел 4 одинаковых здоровенных куска в программе которые запросто на асме можно объединить.
Поступил просто.. Написал ф-ю на си. Поместил ее в отдельный файл. Странслировал, поправил LST и попытался откомпилировать. Возникла ошибка. Неопределена локальная переменная ?a_Subr
Вот кусок на Си
void main(){
unsigned char a;
Subr(a);
}
void Subr(unsigned char a){
unsigned char b;
b=a+1;
}
Вопросы:
1.Как правильно и просто из Си сделать АСМ
2.Как определить локальные переменные и передать параметр
Вот АСМ файл, который не транслируется.
processor 16F628
opt pw 79
psect __Z12345RS_,global,delta=1
psect text0,local,class=CODE,delta=2
psect text1,local,class=CODE,delta=2
psect __Z12345RS_
psect text0
_Subr
; _a assigned to ?a_Subr+0
_Subr$a set ?a_Subr
; _b assigned to ?a_Subr+1
_Subr$b set ?a_Subr+1
;_a stored from w
bcf 3,5
bcf 3,6
movwf ?a_Subr
;SUBR.C: 4: unsigned char b;
incf ?a_Subr,w
movwf ?a_Subr+1
;SUBR.C: 8: }
return
Может кто правильный АСМ файл для этого простого примерчика напишет?
С уважением, Иван.
E-mail: info@telesys.ru