Oznámení

Sbalit
Aktuálně žádná oznámení.

Assembler - všeobecná logika

Sbalit
X
 
  • Filtr
  • Čas
  • Zobrazit
Vymazat vše
new posts

  • DJM
    odpověděl
    O: Assembler - všeobecná logika

    Nahodou som nasiel celkom peknu stranku kde mas popis 68k instrukcii.



    Paci sa mi vzhlad stranky - tmave pozadie, paradny font a pekne farby. Dobre sa mi to cita, co o niektorych strankach nemozem povedat ( napr. blede pismena na bielom pozadi so skaredym fontom,atd.. ).

    Vložit komentář:


  • Lisiak
    odpověděl
    O: Assembler - všeobecná logika

    Viem, ale teraz som slušne pracovne zasekaný, takže keď mám 1, alebo 2 dni voľna, tak za ten čas 30 minút až 2 hodiny. Teraz si postupne rozoberám ten príklad vypísania textu v AMIGA REVIEW 6.

    Vložit komentář:


  • ObiWanKen
    odpověděl
    O: Assembler - všeobecná logika

    Dobru knihu najdes aj na AP.

    Vložit komentář:


  • Lisiak
    odpověděl
    O: Assembler - všeobecná logika

    Dnes som si urobil malú exkurziu po nejakej teórii. Našlo mi to rozne príručky v angličtine od 200 do 600 strán buď priamo pre 020ku, alebo rozne procesory. Nejaká dobrá literatura okrem tej v AR? Som zmierený s angličtinou. Samozrejme toto je predbežný prieskum. Vyhovoval by mi nejaký stručný prehľad inštrukcií pre 020ku a potom názorný popis toho, čo to robí a na čo sa to dá použiť/praktický príklad. Odkiaľ čarpá naša početná assemblerovská slovensko, slovensko slovenská amigistická komunita informácie?

    Dnes som v Amiga Review objavil okrem článkov "Assembler a systém" (3. až 11. číslo) aj článok "No system programování" (16. až 21. číslo)

    Vložit komentář:


  • ObiWanKen
    odpověděl
    O: Assembler - všeobecná logika

    Tie znamienka musis mat skor v hlave, pre cpu su to vsetko len cisla o velkosti B,W,L. Ja osobne ani znamienka nepouzivam, nepotrebujem.
    Maximalne zaporne hodnoty v tabulkach. Na zaciatok sa skor orientuj na podmienky (BEQ,BNE,BPL,BMI,BGT,BLT) a cykly (DBRA) a bitove operacie (AND,OR,BSET,BTST).

    Samozrejme ked uz budes mat MOVE v malicku ))

    Po par dnoch zistis ze uz "vies" assembler a zacne ta pokusat Hardware. Testovanie LMB,RMB,Joystick atd.
    Ako som uz povedal viackrát: Naucit sa assembler je to najlahsie, urobit v nom nieco je tazsie.
    Nepotrebujes premenne, dekleracie, nic. Si len Ty,CPU,Pamat a HW. ))

    Vložit komentář:


  • Lisiak
    odpověděl
    O: Assembler - všeobecná logika

    Šmarjá, asi mi to už klaplo na mozog. To ako bol pojatý ten článok v Amiga Review ma strašne doplietlo, keď som sa snažil prácu so znamienkom a bez znamienka stále chápať ako 2 rozne príklady. Viem že vo vysvetlení tu to bolo písané, ale aj tak ma to úplne zmagorilo. To je tak krásne vymyslené! Tá práca s číslom s a bez znamienka!

    Vložit komentář:


  • Lisiak
    odpověděl
    O: Assembler - všeobecná logika

    Sakra, mám za to, že som to skúšal a hodilo mi to chybu, teda som použil nejaký zlý zápis. OK!

    Vložit komentář:


  • ObiWanKen
    odpověděl
    O: Assembler - všeobecná logika

    Na nulovanie SR staci: MOVE.W #$0000,CCR

    Tvoj priklad ti nemeni SR pretoze pouzivas len

    ADD D0,D1

    a assembler takto zapisanu instrukciu kompiluje ako Word. Teda ADD.W D0,D1
    Nauc sa vzdy zapisovat o aku velkost sa jedna. Takze si to zmen na ADD.B D0,D1 a mas to aj so stavom SR.

    Vložit komentář:


  • Lisiak
    odpověděl
    O: Assembler - všeobecná logika

    OK,

    Vrátme sa k 2 príkladu z Amiga Review.
    Rozumiem tomu, že keď pretečie zásobník, že sa začne počítať znova od spodnej hranice ako mi to vysvetlil DJM (u -255ky som použil Lisiakovu logiku ). Zatiaľ neviem, ako povedať assembleru, že má pracovať so záporným číslom a teda s polovičným rozsahom (na to kľudne časom prídem ale riešim iné). Tomu prvému príkladu, kde je práca so záporným číslom použitá mám za to že rozumiem. No ale v druhom príklade pracujeme s rozsahom 0-255 a keď pripočítame k číslu 126 číslo 3, tak sme stále v rozsahu a výsledok je 129 bez príznaku.

    V ASM-PRO sú príznaky v mieste SR zobrazené takto "_ _ ..._ _... _ _ _ _ _" - tých 5 posledných podtržítok by malo patriť k 5 príznakom (X, N, Z, V, C). Pokiaľ mi stačí toto sledovať, tak keď pripočítam k číslu 254 číslo 3 pomocou ADD:

    Code:
    MOVE.B #$FE, D0
    MOVE.B #$3, D1
    ADD D0,D1; Lisiakova logika
    Tak sa mi zobrazí príznak N, teda "_ _... _ _..._ N _ _ _".
    Pracujem teda s ASM-PRO.

    Dajú sa vymazať tie registre aj nejako cez editor? Zatiaľ to robím pomocou MOVE, že do nich dám späť 0. Pred tým som vypínal a zapínal Assembler .
    Naposledy upravil Lisiak; 03.11.2015, 11:57:47.

    Vložit komentář:


  • Lisiak
    odpověděl
    O: Assembler - všeobecná logika

    Je zaujímavé, že záporné čísla začínaju v druhej polovine celkového rozsahu hexa. Najnižšie číslo je ako prvé v tejto druhej polovine a ide to až do -1, čo je samozrejme FFFFFFFF.

    Vložit komentář:


  • Lisiak
    odpověděl
    O: Assembler - všeobecná logika

    OK, je tam chyba. Najmenšie záporné číslo, ktoré sa nám vojde do datového registru je:
    -2,147,483,648

    Vložit komentář:


  • ObiWanKen
    odpověděl
    O: Assembler - všeobecná logika

    Je jedno co sa pise.

    V assemblery chod do príkazového riadku a zadaj:

    ? $7fffffff

    Vypise ti výsledok vo formate -> HEX DEC ASCI BIN. A toto cislo je aj najvacsie kladne cislo. Bit 31 je 0.

    Potom zadaj:
    ? $80000000

    a dostanes najmensie zaporne cislo, aj ked to vyzera na zapornu nulu.
    A zistis ci je chyba v AR alebo nie.
    Naposledy upravil ObiWanKen; 02.11.2015, 12:26:08.

    Vložit komentář:


  • Lisiak
    odpověděl
    O: Assembler - všeobecná logika

    Jen by mne něco zajímalo. Pokud pracujeme v rámci 1 byte se záporným číslem, máme k dispozici rozsah:
    -128 až 127

    Jeden datový registr je nám schopen uložit číslo maximálně o rozsahu 4 byte. To je když nepracujeme se záporným číslem:
    0 až 4,294,967,295 (to je OK)

    Pokud ale pracujeme se záporným číslem a tohle info je uvedeno v článku o Assembleru v Amiga Review tak pracujeme s maximálním rozsahem:
    -2,147,483,647 až +2,147,483,647
    tedy rozsah byl ukrácen o jedničku. Dle toho, jak se s záporným číslem pracuje v rozsahu 1 byte (tedy -128 až 127) by jsem čekal, že rozsah v rámci 4 byte bude:
    -2,147,483,648 až +2,147,483,647

    Né že by se v programování muselo pracovat zrovna s číslem -2,147,483,648 .
    Je tahle info z Amiga Review v pořádku? Nejaký logický důvod, proč tomu tak je, proč je práce se záporným číslem v rozsahu 4 byte ponížena o 1, když tomu tak s prací v rozsahu 1 byte není?

    Vložit komentář:


  • Lisiak
    odpověděl
    O: Assembler - všeobecná logika

    Bolo to v tom nastavení farieb, ale to chovanie miatlo... . Díky!

    Vložit komentář:


  • ObiWanKen
    odpověděl
    O: Assembler - všeobecná logika

    Skontroluj nastavenie farieb. Alebo napis program a spusti kompilaciu.
    Len pre kontrolu

    Vložit komentář:

Zpracovávám...
X