asm.pdf

(252 KB) Pobierz
Programowanie w asemblerze
Asembler i jego jezyk
˛
Zbigniew Jurkiewicz, Instytut Informatyki UW
4 listopada 2020
Zbigniew Jurkiewicz, Instytut Informatyki UW
Programowanie w asemblerze Asembler i jego jezyk
˛
Asembler
Asembler = program, przetwarzajacy plik zródłowy z
˛
´
tekstem programu w symbolicznym jezyku wewnetrznym
˛
˛
na plik wynikowy, tzw. moduł (ang.
object code).
Moduł zawiera ten sam program w postaci
przetłumaczonej na jezyk maszynowy.
˛
Oprócz pliku wynikowego asembler produkuje jeszcze pliki
´
zawierajace wydruk programu oraz liste odwołan (ang.
˛
˛
cross-references).
W trakcie zaje´ posługiwa´ sie bedziemy głównie
˛c
c ˛ ˛
asemblerem
nasm.
Zbigniew Jurkiewicz, Instytut Informatyki UW
Programowanie w asemblerze Asembler i jego jezyk
˛
Asemblacja
W celu przetłumaczenia programu znajdujacego sie na
˛
˛
pliku
program.asm
nale˙ y napisa´
z
c
bash-2.04$ nasm -f elf program.asm
Zbigniew Jurkiewicz, Instytut Informatyki UW
Programowanie w asemblerze Asembler i jego jezyk
˛
Linkowanie
Poniewa˙ program mo˙ e składa´ sie z kilku modułów,
z
z
c ˛
przed załadowaniem musimy podda´ go (by´ mo˙ e wraz z
c
c
z
innymi modułami) procesowi konsolidacji (zwanemu
potocznie linkowaniem).
W przypadku programu znajdujacego sie w pojedynczym
˛
˛
pliku wynikowym konsolidator wywołujemy przez
bash-2.04$ ld program.o
Zbigniew Jurkiewicz, Instytut Informatyki UW
Programowanie w asemblerze Asembler i jego jezyk
˛
Linkowanie
Konsolidator normalnie tworzy plik wynikowy o nazwie
a.out.
Chcac otrzyma´ plik o innej nazwie, np.
program,
nale˙ y
˛
c
z
u˙ y´ opcji
-o
z c
bash-2.04$ ld -o program program.o
Zbigniew Jurkiewicz, Instytut Informatyki UW
Programowanie w asemblerze Asembler i jego jezyk
˛
Zgłoś jeśli naruszono regulamin