Oznámení

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

Assembler - všeobecná logika

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

    #16
    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.
    Amiga - PMD 85

    Komentovat


      #17
      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 Lisiak4; 03.11.2015, 10:57:47.
      Amiga - PMD 85

      Komentovat


        #18
        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.
        MiST | Amiga 600 Furia EC020 | Amiga 1200 ACA 1231 | Sharp MZ800 | ZX Spectrum 48k | Didaktik M | Didaktik Gama | C64 U1541II | Atari 800XL | Atari 130XE U1MB+SIDE2.

        Komentovat


          #19
          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!
          Amiga - PMD 85

          Komentovat


            #20
            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!
            Amiga - PMD 85

            Komentovat


              #21
              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. )
              MiST | Amiga 600 Furia EC020 | Amiga 1200 ACA 1231 | Sharp MZ800 | ZX Spectrum 48k | Didaktik M | Didaktik Gama | C64 U1541II | Atari 800XL | Atari 130XE U1MB+SIDE2.

              Komentovat


                #22
                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)
                Amiga - PMD 85

                Komentovat


                  #23
                  O: Assembler - všeobecná logika

                  Dobru knihu najdes aj na AP.

                  http://www.amigaportal.cz/extra/ke-s...ssembler-68000
                  MiST | Amiga 600 Furia EC020 | Amiga 1200 ACA 1231 | Sharp MZ800 | ZX Spectrum 48k | Didaktik M | Didaktik Gama | C64 U1541II | Atari 800XL | Atari 130XE U1MB+SIDE2.

                  Komentovat


                    #24
                    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.
                    Amiga - PMD 85

                    Komentovat


                      #25
                      O: Assembler - všeobecná logika

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

                      http://mrjester.hapisan.com/04_MC68/

                      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.. ).
                      Amiga 1200T (E/Box)+BlizzardPPC 603p/363+060/66+BVision PPC+256MB+KS3.1+Cocolino+Lyra 2+Fast Ata MK-IV+320GB WD Blue 3200AAJB PATA HDD(PFS3)+dvdrw+dvd+cf2ide
                      Amiga 1200+BlizzardPPC 603e/210+040/25+128MB+KS3.1+CF4GB(PFS3)

                      Komentovat


                        #26
                        O: Assembler - všeobecná logika

                        Tak som sa dočítal, že staršie A500 vedeli adresovat len 0,5 MB CHIP. Tak by ma zaujímalo, že keď sa programuje pre A500/A600, či sa v rámci komatibility pracuje vačšinou s možnosťou adresácie 0,5 MB alebo 1 MB CHIP kďe by tento program potom na A500 s obmedzenou adresáciou 0,5 MB CHIP nepracoval, aj keby daná Amiga mala 1 MB RAM, kde by rozšírenie o 0,5 MB RAM nebo o pamať typu CHIP... . V Amiga Review tento typ pamaťe nazvali ako 0,5 MB FAKE-FAST .
                        Amiga - PMD 85

                        Komentovat


                          #27
                          O: Assembler - všeobecná logika

                          Čo je to datový typ .s?

                          príklad:
                          BRA.s

                          Pokiaľ to teda datový typ je, lebo inak sú len B W a L, ale píše sa to na rovnakom mieste... .
                          Amiga - PMD 85

                          Komentovat


                            #28
                            O: Assembler - všeobecná logika

                            Autorem citovaného textu je Lisiak4 Přejít na původní příspěvek
                            Čo je to datový typ .s?

                            príklad:
                            BRA.s

                            Pokiaľ to teda datový typ je, lebo inak sú len B W a L, ale píše sa to na rovnakom mieste... .
                            .s jako SHORT branch (range: -128, +127 byte)
                            Naposledy upravil ExiE; 10.02.2016, 23:47:21.

                            Komentovat


                              #29
                              O: Assembler - všeobecná logika

                              Hledal jsem i v té knize od Krále (špatně samozřejmě) v elektronické podobě pomocí vyhledávání řetězce ".s" a našlo mi to jen zdrojové kódy, kde se to hned použilo, ale nic jiného. Ten rozsah si pohlídáš v asm s příznaky procesoru, tedy není to pro mne logické vysvětlení. Tohle v asm uděláš 1 byte + příznaky. Nepotřebuješ určovat, jestli se jedná o rozsah -128 až 127, nebo 0 až 255. Navíc je vzpomenuto že buď .W nebo .S. A WORD má 2 BYTE, tedy rozsah je větší. Ale to je jedno, nějak bylo a nějak bude. Jo a když jsme u té knihy, dnes jsem se stal její vlastníkem .
                              Amiga - PMD 85

                              Komentovat


                                #30
                                O: Assembler - všeobecná logika

                                zkusme projit to BRA tedy aspon jak ja to chapu, coz muze byt taky blbe
                                BRA (BRanch Always) nepodmineny prikaz skoku

                                BRA.size <label>
                                size muze byt pro 68000 Byte nebo Word, pro 68020+ to muze byt i Long
                                aby to bylo zmatenejsi tak nektere assemblery pouzivaji BRA.s a jine BRA.b

                                technicky je to neco jako If (true) then PC + d -->; PC
                                tj. skok jen v urcitem rozsahu od aktualni hodnoty registru PC

                                kdyz je to .s, tak ta pridana hodnota muze byt jen byte velka a vzdycky signed!. Dopredu se tedy muzes posunout maximalne 126 bytu (0x7E) a dozadu 128 bytu (x080). [tady jsem se predtim seknul]

                                pro .w je to 32766 (0x7EFE) dopredu a 32768 (0x8000) dozadu
                                Naposledy upravil ExiE; 11.02.2016, 12:12:58.

                                Komentovat

                                Zpracovávám...
                                X