Asembler x86/Podstawy: Różnice pomiędzy wersjami

Usunięta treść Dodana treść
Mythov (dyskusja | edycje)
m nawigacja
Mythov (dyskusja | edycje)
m →‎Instrukcje: to miejsce jest bardziej odpowiednie do wyjaśnienia pojęcia ''operand''
Linia 4:
Instrukcje (nie mylić z funkcjami!), których będziemy używać w asemblerze są '''bezpośrednio tłumaczone''' na "język" procesora. Oznacza to, że każda instrukcja, której użyjemy w kodzie, wywołuje konkretną, niepodzielną na mniejsze (przynajmniej w większości przypadków) reakcję procesora. W językach wysokiego poziomu nie operujemy na takim poziomie. Pozornie proste "wyższe" konstrukcje językowe są zamieniane na kilka, kilkanaście instrukcji procesora przez co w efekcie nie mamy bezpośredniej kontroli nad wynikowym kodem. Ograniczenie to nie dotyczy nas, gdy programujemy z użyciem asemblera. Lista instrukcji procesora znajduje się w rozdziale [[../Instrukcje|Instrukcje]]. Jak już pewnie spostrzegłeś jest ich mnóstwo, zapamiętanie wszystkich z nich jest bardzo czasochłonne; najłatwiej przychodzi w praktyce. Każdej instrukcji używa się wg. schematu:
instrukcja parametr1, parametr2, parametr3
Jako parametry (zamiennie możemy je nazywać ''argumentami'' lub ''operandami'') możemy przekazywać rejestry, adresy do pamięci i nazwy symboliczne przy czym ich liczba jest zależna od użytej instrukcji i wacha się w przedziale od 0 do 3 argumentów. Niektóre instrukcje występują w kilku/kilkunastu wersjach o identycznej nazwie z różną ilością parametrów. Instrukcje powinny znajdować się jedynie w obszarach kodu definiujących segmenty. Używanie ich poza nimi może być kłopotliwe.
 
== Etykiety ==