Asembler dla poczātkujācych (1) ------------------------------- PROGRAM ASEMBLUJĀCY -- No, no... kurs asemblera. A moūe lepiej by sobie strzeliź krótki programik w AMOS-ie? -- W czym? -- Widzisz, AMOS-a mam i znam, a tego caīego asemlera... Bartek Pampuch -- Spoko, kolego. Wszystko ci wytīumaczė. Najpierw musisz zdobyź odpowiednie oprogramowanie. -- Jak to. Workbench nie wystarcza? -- Workbench? A jak w nim napiszesz kod śródīowy? -- A cóū to takiego: kod śródīowy? -- Jest to tekst, zawierajācy rozkazy dla komputera. Rozkazy te pisane sā w jėzyku, zwanym asemblerem. -- Coō takiego mógībym napisaź jakimō edytorem. -- A nie sādzisz, ūe komputer nie zrozumie tak napisanego tekstu? -- To na co komu ten kod śródīowy, skoro komputer go nie rozumie? -- Istniejā programy (zwane asemblerami), zamieniajāce kod śródīowy na jėzyk rozumiany przez Amigė. -- A czy nie mógībym pisaź programu bezpoōrednio w tym jėzyku, rozumianym przez Amigė? -- Owszem, mógībyō, ale napisanie prostego programiku zajėīoby Ci ze 3 lata, a w dodatku musiaībyō wszystko pisaź tylko za pomocā dwóch liczb (0 i 1). -- A jak siė nazywa ten asembler, zamieniajācy kod śródīowy na program? -- No, takich asemblerów jest wiele, ale wydaje mi siė, ūe najlepszy jest ASM-One. Po kilku dniach... -- Kupiīem sobie ASM-One'a, lecz gdy go uruchamiam, wypisuje mi: 'ALLOCATE Fast/Chip/Publ/Abs>'. Co teraz mam zrobiź? -- Moūesz nacisnāź [Enter]. -- OK. Nacisnāīem i pojawiī siė napis: 'WORKSPACE (Max.1101) KB>'. -- ASM-One pyta Ciė w tym momencie, ile pamiėci ma przeznaczyź na Twój program? -- Wpisaīem 3000 i nic siė nie staīo. -- A to dlatego, ūe wpisaīeō liczbė wiėkszā niū ta w nawiasie. Oznacza ona iloōź wolnej pamiėci. Miaīeō wolne 1101 KB, a chciaīeō uūywaź 3000 KB. Poniewaū byīo to niemoūliwe, nic siė nie staīo. -- Mogīem wiėc podaź liczbė z zakresu od 1 do 1101? -- Tak, ale gdybyō wpisaī 1, to nie byībyō w stanie utworzyź programu, zajmujācego nawet tylko jednā linijkė. Najlepiej wpisywaź liczbė od 200 do 500. -- A co teraz? -- Teraz moūesz wejōź do edytora tekstu (za pomocā klawisza [Esc]). -- Co mam zrobiź, gdy juū do niego wejdė? -- Moūesz wpisaź swój kod śródīowy. -- A kiedy juū go napiszė? -- Wtedy musisz wyjōź z edytora tekstu (tak samo jak do niego wchodziīeō, czyli za pomocā klawisza [Esc]) ... -- Ale wyjōcie z edytora wymaūe z pamiėci caīy mój kod śródīowy. -- Nie, nie. Jego zawartoōź nie zostanie utracona. Jak chcesz to sprawdziź, to napisz kilka liter, wyjdś z edytora i ponownie do niego wejdś (pamiėtaj, klawiszem [Esc]), a zobaczysz, ūe wszystko, co napisaīeō, ciāgle siė w nim znajduje. -- Jak po napisaniu kodu śródīowego i wyjōciu z edytora zapisaź program na dysk? -- To zaleūy, czy chcesz zapisaź kod śródīowy (który bėdziesz mógī w przyszīoōci wczytaź i ewentualnie poprawiź), czy teū program, który bėdziesz mógī uruchomiź z Workbencha albo CLI. -- Najpierw chcė, oczywiōcie, zapisaź kod śródīowy. -- Dobrze. Upewnij siė wiėc, czy wyszedīeō z edytora. Jeōli tak, to wpisz literė 'w'. Nastėpnie zostaniesz poproszony o podanie nazwy. Pod niā zapisany zostanie Twój kod śródīowy. -- A jak zapisaź program, który bėdzie moūna uruchomiź? -- Najpierw musisz wpisaź literė 'a'. ASM-One zamieni wtedy twój kod śródīowy na jėzyk rozumiany przez Amigė. -- A co, jeōli w programie bėdā bīėdy? -- Wtedy ASM-One wyōwietli liniė, w której znalazī bīād. Bėdziesz mógī go poprawiź, wracajāc do edytora. Póśniej bėdziesz musiaī ponownie wpisaź literė 'a'. -- A co mam zrobiź, kiedy zlikwidujė juū wszystkie bīėdy lub ich wcale nie bėdzie? -- Jeūeli po wpisaniu 'a' program napisze 'No Errors', moūesz wpisaź 'wo'. Zostaniesz poproszony o podanie nazwy. Bėdzie pod niā zapisany wykonywalny program. -- A co mam zrobiź, aby uruchomiź mój program spod ASM-One'a? -- Aby to zrobiź, musisz wpisaź 'j' zamiast 'wo'. -- A czy bėdė mógī wczytaź kod śródīowy po wyīāczeniu lub zresetowaniu komputera? -- Aleū naturalnie. Kiedy uruchomisz ASM-One'a i podasz iloōź pamiėci (przypominam -- najlepiej od 200 do 500, chyba ūe piszesz bardzo duūy program), wpisz literė 'r'. Jako nazwė podaj tė, pod którā zapisaīeō swój kod śródīowy. Nastėpnie wejdś ([Esc]) do edytora, a kod śródīowy juū tam bėdzie. Teraz moūesz zmodyfikowaź swój program lub go zasemblowaź i zapisaź (za pomocā 'a' i 'wo'). -- Czy moglibyōmy jeszcze raz wszystko podsumowaź, abym nie zapomniaī? -- Oczywiōcie. Uruchomimy jeszcze raz ASM-One'a, a Ty pokaūesz, czego siė nauczyīeō? -- Naciskam [Enter]; wpisujė liczbė 300 (mogė innā, lecz nie wiėkszā niū ta w nawiasie); naciskam [Enter]; wchodzė do edytora klawiszem [Esc] i wpisujė... co wpisaź? -- A, niech bėdzie: move.l #1234,d0 rts -- A co oznaczajā poszczególne rozkazy? -- To na razie nieistotne. Moūesz to bezmyōlnie przepisaź. -- Dobrze. Wpisujė..... Skoļczyīem. Teraz naciskam [Esc], aby wyjōź z edytora, i wpisujė literė 'a', aby zasemblowaź program i co to? Pojawiī siė komunikat '** Illegal Operator' i '1 move.l #1234,d0'. Do kitu ten Twój ASM-One, skoro nie rozumie nawet takiego krótkiego programu. -- Niemoūliwe. Komputer bīėdów nie popeīnia (no, chyba ūe IBM z Pentium). To Ty popeīniīeō bīād! Rozkazy 'move.l' i 'rts' wpisaīeō na samym poczātku linijki. Zapamiėtaj, ūe przed kaūdym rozkazem musi siė znajdowaź co najmniej jedna spacja albo tabulator. Wejdś ponownie do edytora i napraw swój bīād. -- Dobra. Wchodzė za pomocā [Esc] do edytora; wpisujė przed 'move.l' i przed 'rts' kilka spacji; wychodzė z edytora i wpisujė 'a'. Na ekranie mamy: 'Pass 1..', 'Pass 2' i 'No Errors'. WOW! Napisaīem program! Teraz zapiszė go jako 'Program1'. Wpisujė wiėc 'wo' i jako nazwė podajė 'Program1'. Zapiszė teū na wszelki wypadek kod śródīowy. Wpisujė 'w' i jako nazwė... Co wpisaź jako nazwė?" -- Przyjėīo siė, ūe nazwy kodów śródīowych sā takie same jak nazwy programów, tylko dodatkowo zawierajā rozszerzenie '.asm'. -- Dobra, wiėc jako nazwė podajė 'Program1.asm'. Jak teraz wyjōź z ASM-One'a ? -- Wpisz '!' (wykrzyknik). -- Wpisujė; naciskam [Enter]. Co my tu mamy? "Are you sure?" (Czy jesteō pewien?) Wybieram YES i... BRAWO! Wróciīem do Workbencha Uruchamiam teraz CLI i z niego mój program. I co?... Nic? Co siė, do licha, dzieje?!" -- Spoko majonez. Wszystko w porzādku. Ten program nie daje po prostu ūadnego rezultatu (chyba, ūe uruchomiībyō go z ikony lub przez 'Execute command...'. Wypisaīoby wtedy 'Program1 failed returncode 1234'). -- To ja juū bėdė leciaī, bo mi zupa stygnie, ale dziėki za rady. -- Nie ma sprawy. Wpadnij do mnie za miesiāc. Najlepiej wtedy, gdy wyjdzie nowy numer Magazynu AMIGA. -- Oīkej, a czego mnie nauczysz? -- No, za miesiāc to juū nauczė Ciė pisaź pierwsze programy. -- Ōwietnie. To do przyszīego numeru MA. -- Do przyszīego.