A.D.Danilecki, Poznan, Polska
Politechnika Poznanska, Wydzial Informatyki i Zarzadzania
W tej chwili adanilecki _malpa_ cs.put.poznan.pl
Z wykorzystaniem wielu listow z uwagami od wielu autorow
Krótki wstęp do programowania z wykorzystaniem inline assemblera x86



Autor : M. Rozycki From macro@amg.gda.pl Thu Jan 14 13:53:03 1999 Path: news.man.poznan.pl!news.task.gda.pl!amedec!macro From: "Maciej W. Rozycki" < macro@amg.gda.pl > Newsgroups: pl.comp.os.linux Subject: Re: Assembler SPRAC, Motorola, x86 Date: Wed, 13 Jan 1999 15:42:10 +0100 Organization: Medical University of Gdansk Lines: 47 Message-ID: <Pine.OSF.4.05.9901131520310.26473-100000@amedec.amg.gda.pl> References: <77cui6$lc0$1@sunflower.man.poznan.pl> 77hmar$4hp$10@sunrise.pg.gdaReply-To: "Maciej W. Rozycki" <macro@amg.gda.pl > NNTP-Posting-Host: amedec.amg.gda.pl Mime-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Trace: korweta.task.gda.pl 916238531 10610 153.19.64.1 (13 Jan 1999 14:42:11 GX-Complaints-To: abuse@task.gda.pl NNTP-Posting-Date: 13 Jan 1999 14:42:11 GMT In-Reply-To: <77hnhf$2ll$1@sunflower.man.poznan.pl> Xref: news.man.poznan.pl pl.comp.os.linux:45032
On 13 Jan 1999, Arkadiusz Danilecki wrote: - Ha, ha. Myslisz ze mam w domu SPARCA albo motorole? A jesli mozna w - gcc generowanie asma na okreslona maszyne, to skad bede wiedzial do
Oczywiscie, ze mozna -- skompiluj sobie asembler (binutils) i kompilator skrosny. Nalezy dac opcje --target skryptowi `./configure'. Dodatkowo, w przypadku gcc/egcs, potrzebne sa dodatkowe dzialania, ktore sa opisane w `info gcc'. Jesli chcesz tworzyc programy, ktore mozna bedzie uruchamiac pod jakims systemem operacyjnym, to bedziesz tez potrzebowal odpowiednich bibliotek (przede wszystkim libc) dla poszczegolnych platform -- mozna uzyc gotowych binariow (np. RPM), ale trzeba je recznie zainstalowac w innych katalogach. Jesli programy maja byc przeznaczone dla systemow wbudowanych, to byc moze obejdziesz sie bez bibliotek.

- czego jest jakas instrukcja, albo jakis rejestr?
Na RISCach wiekszosc rejestrow jest "do wszystkiego". Np. MIPS R3000 ma 32 rejestry staloprzecinkowe, z ktorych wszystkie zachowuja sie tak samo we wszystkich rozkazach, z dwoma wyjatkami -- r0 przy odczycie zawsze zwraca zero, a zapis jest ignorowany oraz r31, w ktorym umieszczany jest adres powrotu po wykonaniu rozkazow typu jal (odpowiednik call na ia32). Wykorzystanie poszczegolnych rejestrow jest okreslone przez specyfikacje MIPS ABI (Application Binary Interface) i do niej nalezy sie stosowac w przypadku typowych zastosowan, ale ograniczen sprzetowych nie ma. Ta specyfikacja mowi m.in., ktory z rejestrow ma sluzyc jako wskaznik stosu, wskaznik ramy, wskaznik danych lokalnych, ktore maja byc zachowane przez wolajacego, ktore przez wolanego, etc. Sprzet nie narzuca zadnych ograniczen w tym wzgledzie.

- PS : asm pod x86 w gcc juz zaczalem lapac, chodzi mi o informacje o - asmie na inne maszyny, opisy instrukcji rejestrow, architektury - itp....
Musisz poszukac w sieci dokumentacji odnosnie poszczegolnych procesorow np. u producentow. Tam tez pewnie znajdziesz specyfikacje ABI, ktore umozliwia Ci tworzenie poprawnych zrodel (Linux jest zgodny z poszczegolnymi ABI). -- + Maciej W. Rozycki, Technical University of Gdansk, Poland + +--------------------------------------------------------------+ + e-mail: macro@ds2.pg.gda.pl, PGP key available +