Asembler, dlaczego zle dziala?

Feb 04, 2005 10 Replies

Witam.



Zaczynam boje z asemblerem (oraz z C rownolegle). Natknalem sie na pierwszy problem, mianowicie, po wykonaniu petli delay nastepuje powrot do polecenia "ldi r16,0x20", dlaczego nie do rcall stop?



.include "2313def.inc" .cseg .org 0x00 startL: ldi r16,0x20 rcall delay rcall stop delay: dec r16 cpi r16,0 brne delay ret stop: nop


skąd wiesz, że tak robi? poza tym, wypadałoby ustawić wskaźnik stosu, zanim zacznie się z niego korzystać. no i jeśli by skoczył do stop, to licznik rozkazów w końcu się przekręci i wróci do zera.

w.

Bo nie zainicjowales stosu. Patrz pare postow wyzej - ten sam problem.

Pewnego dnia Ania i Grześ snipped-for-privacy@maila.pl nastukał(a):

Już było dzisiaj :) Nie inicjujesz stosu, to dokąd program ma wrócić instrukcją ret?

Fri, 04 Feb 2005 18:36:59 +0100 jednostka biologiczna o nazwie Ania i Grześ snipped-for-privacy@maila.pl wyslala do portu 119 jednego z serwerow news nastepujace dane:

A tak w ogole to po co cpi ? Instrukcja dec w AVRach, w odoroznieniu od np. 8086, ustawia flage Z jezeli zmniejszany rejestr sie wyzerowal. Chyba ze chodzilo o dodatkowe opoznienie :-)

Fri, 04 Feb 2005 19:36:25 +0100 jednostka biologiczna o nazwie Zbych snipped-for-privacy@onet.pl wyslala do portu 119 jednego z serwerow news nastepujace dane:

Nie ma znaczenia, dec i w tym i w tym nie ustawia flag. Chyba ze chodzilo o to ze 8086 to NTG ;-)

Pewnego dnia BLE_Maciek przemówił ludzkim głosem:

nie 8086 tylko 8051 ;P

Fri, 04 Feb 2005 19:42:14 +0100 jednostka biologiczna o nazwie Zbych snipped-for-privacy@onet.pl wyslala do portu 119 jednego z serwerow news nastepujace dane:

LOL. Przyznam sie ze nie wiedzialem :-( JZ/JNZ po DEC uzywalem tylko w przypadku rejestru AX. Przypuszczam ze takie zwyczaje zaciagnalem z Z80 :-) Dzieki !

Pewnego dnia BLE_Maciek przemówił ludzkim głosem:

formatting link
Usage: DEC dest

Modifies Flags: AF OF PF SF *ZF*

Unsigned binary subtraction of one from the destination.

Ale o ile mnie pamiec nie myli, to w Z80 ustawialy. Poza dec hl/de/bc.

J.

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required