Asembler w kodzie linuxa

Marcin Dłubakowski

m.dlubakowski@students.mimuw.edu.pl

Wiktor Filip

w.filip@students.mimuw.edu.pl

Paweł Findeisen

p.findeisen@students.mimuw.edu.pl

Dariusz Pelowski

pelowski@students.mimuw.edu.pl


Spis treści
Asembler - ale po co?
Zalety i wady
Pozytywne cechy Asemblera
Negatywne cechy Asemblera
Oszacowanie
Jak unikać Asemblera
Ogólne wskazówki do osiągnięcia wydajnego kodu
Języki z kompilatorami optymalizującymi
Jak przyspieszyć nasz kod?
Analizowanie kodu genrowanego przez kompilator
Linux i asembler
The Executable and Linking Format - ELF
Rejestry
Składnia AT&T
Ogólne zasady
Adresowanie pamięci (wirtualnej)
Język niskopoziomowy dla procesorów SPARC
Wprowadzenie
Składnia
Dyrektywy
Rejestry
Operacja set
Operacja load i store
Dodawanie i odejmowanie
Operacja mov
Rejestry warunkowe i rozgałęzienia
Okna rejestrów
Nakładanie się okien rejestrów
Operacje save i restore
Wstawki asemblerowe (inline assembly)
Przykłady
Program w asemblerze
Hello world! dla procesora SPARC
Operacje niepodzielne
Operacje bitowe
Wzajemne wykluczanie
Wirujące blokady
Semafory
Parametry funkcji systemowych
Funkcje systemowe
Ładowanie systemu
Bootsect
Setup
Startup_32 - dekompresja jądra
Startup_32 - przygotowanie środowiska dla jądra
LILO
Asembler inaczej
Linki do innych stron