Aktualności: C64 Power - online od stycznia 2000 !

Autor Wątek: ile to bajtów?  (Przeczytany 930 razy)

0 użytkowników i 1 Gość przegląda ten wątek.

bluemetal

  • Gość
ile to bajtów?
« dnia: 19 Stycznia 2014, 14:23 »
Witam

Obecnie czytam książkę J. Ruszczyca "Assembler 6502".
Trafiłem tam na ciekawe zadanie, którego mimo prostoty nie potrafię rozwiązać.
A mianowicie:

Ile bajtów liczą następujące rozkazy:

LDA #0      
STA 1000        
BRK        
INC        
RTS.

i dlaczego tyle? Dodam że w zadaniu jest mały haczyk.

BTW. w jaki sposób umieszczacie podpisy poza postem?
(na samym dole, coś jak opis statutu w gg)



Offline F7sus4

  • Level 6
  • ******
  • Wiadomości: 2410
ile to bajtów?
« Odpowiedź #1 dnia: 19 Stycznia 2014, 15:31 »
wielbark2005: Odpowiem tylko na drugie pytanie. Kliknij tutaj i uzupelnij pole SIGNATURE.

Offline krolikbest

  • Level 3
  • ***
  • Wiadomości: 164
ile to bajtów?
« Odpowiedź #2 dnia: 19 Stycznia 2014, 16:07 »

arecki

  • Gość
ile to bajtów?
« Odpowiedź #3 dnia: 19 Stycznia 2014, 20:51 »
Zgaduje; kazdy rozkaz to jeden bajt, plus dane (stala, adres)
czyli 8 bajtów?

Offline wegi

  • Level 7
  • *******
  • Wiadomości: 2588
ile to bajtów?
« Odpowiedź #4 dnia: 19 Stycznia 2014, 20:57 »
nie ma rozkazu INC

jest INC $xx
albo INC $xxxx

więc 9 albo 10 bajtów

Jeżeli ma to być INX albo iny to INY to 8 bajtów
Gdy po wynalezieniu komputera kwantowego jedni pytali o sposób wytwarzania prądu, kisiel pytał jak wytwarzać świeczki...

NIECH NIE BĘDZIE NICZEGO !!!

CZY RAF PIŁ Z JERICHA KUBECZKA ???

Offline BagoZonde

  • Level 6
  • ******
  • Wiadomości: 1055
    • http://www.commocore.com
ile to bajtów?
« Odpowiedź #5 dnia: 19 Stycznia 2014, 21:10 »
Nie trzeba zgadywać, wystarczy wejść do monitora, wpisać dany rozkaz i policzyć ile zajmuje bajtów. Każda komórka to jeden bajt. Popatrz sobie na length in bytes: http://www.c64-wiki.com/index.php/INC

arecki

  • Gość
ile to bajtów?
« Odpowiedź #6 dnia: 19 Stycznia 2014, 21:21 »
no mi chodzilo generlnie o zasadę ; opcody 6502 są jedno bajtowe, jezeli do tego mamy bajt danyh lub adres to dojda jeszcze bajt lub dwa. Jedyna zmylka moze byc przy warunkowych skokach typu BNE, tam adres jest relatywny i jednobajtowy

a INC fakytcznie operuje tylko na pamieci

bluemetal

  • Gość
ile to bajtów?
« Odpowiedź #7 dnia: 19 Stycznia 2014, 21:34 »
Fajnie że rozwinąłem dyskusje. Tak, haczyk był przy INC,
brakuje operandu w zadaniu (używa się jeszcze tego określenia?)

A odpowiedzi to:

LDA #0 = 2 bajty
STA 1000 = 3 bajty
BRK = 1 bajt
INC - jak wyżej (haczyk)
RTS. = 1 bajt (tylko co oznacza ta kropka?)

Odpowiedź przytaczam za autorem książki.

Niestety muszę powtórzyć sobie jeszcze Basic zanim wezmę się do asemblera,
trochę zajmie zanim przetrawię i zrozumiem całość zagadnienia, dzięki za
szybką odpowiedź.

Offline BagoZonde

  • Level 6
  • ******
  • Wiadomości: 1055
    • http://www.commocore.com
ile to bajtów?
« Odpowiedź #8 dnia: 19 Stycznia 2014, 21:45 »
Zmyłki z BNE się nie dopatrzyłem ;). Jak wspomniałeś, BNE cechuje się relatywnym adresowaniem czyli adres zajmuje jeden bajt. Ogólnie rzecz ujmując, wykonuje więc skok w obrębie 128 bajtów w górę lub w dół.

bluemetal

  • Gość
ile to bajtów?
« Odpowiedź #9 dnia: 19 Stycznia 2014, 21:47 »
Od czego zależy kierunek BNE? i jak się to odnosi do kolejności w programie,
czy można to przyrównać do GOTO?

arecki

  • Gość
ile to bajtów?
« Odpowiedź #10 dnia: 19 Stycznia 2014, 22:03 »
wielbark2005:
W zadaniu chodziło o liczbę bajtów poszczególnych rozkazów, a nie sumę
wszystkich instrukcji. (to tak gwoli wyjaśnienia)

w gruncie rzeczy chodzi o to samo ( bo po co inaczej w ogóle się tym zajmować?)
Tak czy inaczej każdy rozkaz asemblera to bajt plus dodatkowe bajty danych lub adresów
Jeśli znamy rozmiar danego polecenia to wiemy o ile zwiększy się licznik rozkazów i pod jakim adresem znajdziemy następne polecenie.

inna sprawa jak nam się "omsknie" adres skoku np o jeden bajt, to może się okazać że to co była np. stałą w danym poleceniu zostanie zinterpretowane jako rozkaz i w najlepszym wypadku skończy się to zawieszeniem programu \"\"

wielbark2005: rozumiem że to twoje pierwsze podejście do nauki jakiegokolwiek assemblera?

arecki

  • Gość
ile to bajtów?
« Odpowiedź #11 dnia: 19 Stycznia 2014, 22:37 »
BNE bardziej przypomina strukturę

if a=0 then goto ...

a skoczy tam gdzie chcesz, pod warunkiem ze nie dalej niz +/-128 bajtow

bluemetal

  • Gość
ile to bajtów?
« Odpowiedź #12 dnia: 19 Stycznia 2014, 23:11 »
Tak to moje pierwsze podejście...

Offline Kisiel

  • Level 7
  • *******
  • Wiadomości: 11447
  • Number 7 in all users competition...
    • http://wiki.projekt64.filety.pl/doku.php
ile to bajtów?
« Odpowiedź #13 dnia: 20 Stycznia 2014, 00:17 »
arecki:
o może się okazać że to co była np. stałą w danym poleceniu zostanie zinterpretowane jako rozkaz

czasami tak się robi bit $a901
idz wyprostowany wśród tych co idą na kolanach

...w przypadku checi zakupu UK1541,GA,MA,T8500,T7501 prosze o kontakt na Facebooku, haslo: UK1541....