| Author |
Message
|
amigo71 Poziom 13

Joined: 27 Nov 2002 Posts: 125
|
#1
17 Nov 2003 23:52 Bascom 51 a wstawki asemblerowe |
|
|
|
Witam.
Mam napisany pewien maly programik i chcialem zrobic wstawke asemblerowa i podczas kompilacji wyskakuje blad.
Przeciez wstawka jest poprawna.
Co jest grane ,bo kompilator asm nie pokazuje bledow.
$asm
mov a,#50
djnz acc,$
$end Asm
|
|
| Back to top |
|
 |
olekewaagata Poziom 19

Joined: 08 Nov 2003 Posts: 641 Location: Kielce
|
#2
18 Nov 2003 02:45 Re: Bascom 51 a wstawki asemblerowe |
|
|
|
Nie znam bascoma ale patrząc na wstawke zauważyłem,
że raz akumulator piszesz mov A,# a w drugim wierszu djnz ACC,
wydaje mi się na chłopski rozum, że albo A albo ACC.
|
|
| Back to top |
|
 |
Google

|
#
18 Nov 2003 02:45 |
|
|
|
|
|
| Back to top |
|
 |
MichalKl Poziom 15

Joined: 10 May 2003 Posts: 261
|
#3
18 Nov 2003 03:06 |
|
|
|
I tu jest rozwiazanie.Bez djnz acc,$
kompiluje bez problemow
|
|
| Back to top |
|
 |
amigo71 Poziom 13

Joined: 27 Nov 2002 Posts: 125
|
#4
18 Nov 2003 09:19 Re: Bascom 51 a wstawki asemblerowe |
|
|
|
Zmienilem z acc na a i nic dalej problem wydaje mi sie ze ta instrukcja Djnz "zmniejsz,skocz jesli nie rowna sie zero" powoduje problem.
Bo w kompilatorze asm wszystko gra i program sie wykonuje.
Wydaje mi sie ze chyba bascom sobie nie radzi z niektorymi instrukcjami
ale moge oczywiscie byc w bledzie.
|
|
| Back to top |
|
 |
Google

|
#
18 Nov 2003 09:19 |
|
|
|
|
|
| Back to top |
|
 |
Tdv Poziom 22

Joined: 27 Aug 2002 Posts: 2263 Location: Śląsk
|
#5
18 Nov 2003 09:38 |
|
|
|
Instrukcja DJNZ nie wykonuje się na akumulatorze Użyj któregoś z rejestrow Rx lub konkretnej komórki w pamięci bo na niej też się może wykonać.
Co do zapisu A i ACC to obydwa są OK, ale niektóre instrukcje działąją tylko przy ACC (np. odkładanie na stos) ale to może zależeć od kompilatora.
|
|
| Back to top |
|
 |
Google

|
#
18 Nov 2003 09:38 |
|
|
|
|
|
| Back to top |
|
 |
amigo71 Poziom 13

Joined: 27 Nov 2002 Posts: 125
|
#6
18 Nov 2003 09:48 Re: Bascom 51 a wstawki asemblerowe |
|
|
|
Dzieki bede kombinowal.
Tamta petle wnoszaca opuznienie przepisalem z ksiazki "Podstawy programowania mikrokontrolera 8051" Piotra Galki i myslalem ze bedzie dobra , bo w kompilatorze asm (dolaczonym do tej ksiazki) kompiluje bez problemow ,tylko bascom podawal mi blad.
|
|
| Back to top |
|
 |
MichalKl Poziom 15

Joined: 10 May 2003 Posts: 261
|
#7
18 Nov 2003 13:51 Re: Bascom 51 a wstawki asemblerowe |
|
|
|
witam
W helpie do bascoma jest lista rozkazow asembeleowych-wszystkie ktore moze przyjac jako poprawne.Instrukcji djnz nie znalazlem-moze obejrzysz tego chelpa i problem niejako sie rozwiaze.
Pozdrawiam
|
|
| Back to top |
|
 |
amigo71 Poziom 13

Joined: 27 Nov 2002 Posts: 125
|
#8
18 Nov 2003 17:29 Re: Bascom 51 a wstawki asemblerowe |
|
|
|
kombinowalem nawet tak
$asm
mov b,#50
djnz b,$
$end Asm
i nic nie pomoglo.
Instrukcja Djnz istnieje w helpie.
"skoki z wykorzystaniem offsetu
Można określić o ile bajtów do przodu lub tyłu ma skoczyć program, bez używania etykiet.
Jb P1.0 , *+12 ;skok do przodu
Jb P1.0 , *-12 ;skok do tyłu
Jnb P1.0 , *+0 ;pętla powtarzana dopóki P1.0 pozostanie
;w stanie wysokim
Rozwiązanie to jest dostępne także dla instrukcji, które zwykle skaczą pod podaną etykietę: SJMP, LJMP,DJNZ itd."
|
|
| Back to top |
|
 |
olekewaagata Poziom 19

Joined: 08 Nov 2003 Posts: 641 Location: Kielce
|
#9
19 Nov 2003 01:57 Re: Bascom 51 a wstawki asemblerowe |
|
|
|
W instrukcji DJNZ B,$ używasz znaku $ okreslającego gdzie program
ma skoczyć, a w przykładach niżej ten znak jest zastąpiony *.
Zobacz czy kompilator łyknie DJNZ B,*.
|
|
| Back to top |
|
 |
Tdv Poziom 22

Joined: 27 Aug 2002 Posts: 2263 Location: Śląsk
|
#10
19 Nov 2003 08:03 |
|
|
|
Qrcze, użyj rejestru R0..R7 albo zmiennej. Napisałem przecież wyżej...
|
|
| Back to top |
|
 |
Google

|
#
19 Nov 2003 08:03 |
|
|
|
|
|
| Back to top |
|
 |
amigo71 Poziom 13

Joined: 27 Nov 2002 Posts: 125
|
#11
19 Nov 2003 09:03 Re: Bascom 51 a wstawki asemblerowe |
|
|
|
Dzieki.
Zadzialalo ,musialem uzyc zamiast $ poprostu * i teraz jest ok.
Pozdrawiam
|
|
| Back to top |
|
 |