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!
Oznámení
Sbalit
Aktuálně žádná oznámení.
Assembler - všeobecná logika
Sbalit
X
-
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ář:
-
O: Assembler - všeobecná logika
Autorem citovaného textu je Lisiak4 Přejít na původní příspěvekAno všimol som si, že používaš 2 krát TAB, ale pletie ma, že keď začnem písať návestie ktoré je v bielej farbe ako u Teba a dám TAB, prejde sa v editore na čiernu farbu - tak ako u Teba. Ale keď nenapíšem návestie a dám TAB ostane mi farba písma biela, ako keby sa stále jednalo o návestie... .
Vložit komentář:
-
-
O: Assembler - všeobecná logika
Ano všimol som si, že používaš 2 krát TAB, ale pletie ma, že keď začnem písať návestie ktoré je v bielej farbe ako u Teba a dám TAB, prejde sa v editore na čiernu farbu - tak ako u Teba. Ale keď nenapíšem návestie a dám TAB ostane mi farba písma biela, ako keby sa stále jednalo o návestie... .
Vložit komentář:
-
O: Assembler - všeobecná logika
Farby si nastavujes v Preferences/Syntax colors, mozno mas nastavene ine ako je na mojom obrazku. Preto ine farby.
V zaklade:
V prvom stlpci (celkom vlavo) pises navestia.
Dalej ked stlacis TAB pises instrukcie, mozes pouzit aj 2xTAB alebo aj 3xTAB.
Ja osobne pouzivam 2xTAB.
Aj rozlisenie nastavujes v Preferences, ako aj typ CPU a dalsie veci.
Ak chces potom zapisat nastavenie, kliknes na SAVE/USE alebo z príkazového riadku zadas WP (Write Preferences).
Vložit komentář:
-
O: Assembler - všeobecná logika
Jak donutím ten editor v Asm-Pro, aby mi psal zdrojový text, tedy text černým písmem, když nechci uvést návěstí? Mezery tabulátorem dělám. Ale bez návěstí mi vždy začne psát bílý text co je asi špatně. A po startu Asm-Pro musím pořád odkliknout rozlišení. To se nedá nějak obejít, aby jsem nemusel udělat ten 1 klik? Je to prkotina, ale ptám se.
Vložit komentář:
-
O: Assembler - všeobecná logika
Dočítam si to čo je v Amiga Review a budem sa snáď hrať ďalej (a možno aj skor a nebudem čítať do konca). Ale neboj Obi, pokiaľ sa budem hrať ďalej k tomu tvojemu príkladu sa vrátim! Vďaka! Beriem to všetko, ako to príde a sa mi chce. Teraz už som kaput. Som chorý a mám migrénu už o moc viac nedám.
Vložit komentář:
Vložit komentář: