Oznámení

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

Assembler - všeobecná logika

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

  • 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ář:


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

    Autorem citovaného textu je Lisiak4 Přejít na původní příspěvek
    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... .
    Tomu nerozumiem, mne to po TAB zacne hned pisat Ciernou.

    Vložit komentář:


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

    Pre spresneneie, najake moje nastavenia.


    Klikni pro plné zobrazení obrázku

Jméno: Pic1.jpg
Počet zobrazení: 1
Velikost: 120,8 KB
ID: 108662

    Klikni pro plné zobrazení obrázku

Jméno: Pic2.jpg
Počet zobrazení: 1
Velikost: 108,8 KB
ID: 108663

    Klikni pro plné zobrazení obrázku

Jméno: Pic3.jpg
Počet zobrazení: 1
Velikost: 81,4 KB
ID: 108664

    Vložit komentář:


  • Lisiak
    odpověděl
    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ář:


  • ObiWanKen
    odpověděl
    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ář:


  • Lisiak
    odpověděl
    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ář:


  • Lisiak
    odpověděl
    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ář:

Zpracovávám...
X