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.. ).
Oznámení
Sbalit
Aktuálně žádná oznámení.
Assembler - všeobecná logika
Sbalit
X
-
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ář:
-
O: Assembler - všeobecná logika
Dobru knihu najdes aj na AP.
Vložit komentář:
-
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ář:
-
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ář:
-
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ář:
-
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ář:
-
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ář:
-
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
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ář:
-
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ář:
-
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ář:
-
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ář:
-
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ář:
-
O: Assembler - všeobecná logika
Bolo to v tom nastavení farieb, ale to chovanie miatlo... . Díky!
Vložit komentář:
-
O: Assembler - všeobecná logika
Skontroluj nastavenie farieb. Alebo napis program a spusti kompilaciu.
Len pre kontrolu
Vložit komentář:
Vložit komentář: