Co to jest asembler?
Asembler jest to język programowania, należący do języków niskiego poziomu. Znaczy to tyle, że jednej komendzie asemblera odpowiada dokładnie jeden rozkaz procesora. Asembler operuje na rejestrach procesora.
A co to jest rejestr procesora?
Rejestr procesora to zespół układów elektronicznych, mogący przechowywać informacje (taka własna pamięć wewnętrzna procesora).
Zaraz podam Wam podstawowe rejestry, na których będziemy operować. Wiem, że ich ilość może przerazić, ale od razu mówię, abyście NIE uczyli sią tego wszystkiego na pamięci Najlepiej zrobicie, czytając poniższą listę tylko 2 razy, a potem wracali do niej, gdy jakikolwiek rejestr pojawi się w programach, które będę później prezentował w ramach tego kursu.
Oto lista interesujących nas rejestrów:
1. ogólnego użytku:
♦ akumulator:
RAX (64 bity) = EAX (młodsze 32 bity) + starsze 32 bity,
EAX (32 bity) = AX (młodsze 16 bitów) + starsze 16 bitów,
AX = AH (starsze 8 bitów) + AL (młodsze 8 bitów)
Rejestr ten służy do wykonywania działań matematycznych, ale często w tym rejestrze będziemy mówić systemowi operacyjnemu, co od niego chcemy.
♦ bazowy:
RBX (64 bity) = EBX (młodsze 32 bity) + starsze 32 bity,
EBX (32 bity) = BX (młodsze 16 bitów) + starsze 16 bitów,
BX = BH (starsze 8 bitów) + BL (młodsze 8 bitów)
Ten rejestr jest używany np. przy dostępie do tablic.
♦ licznik:
RCX (64 bity) = ECX (młodsze 32 bity) + starsze 32 bity,
ECX (32 bity) = CX (młodsze 16 bitów) + starsze 16 bitów,
CX = CH (starsze 8 bitów) + CL (młodsze 8 bitów)
Tego rejestru używamy np. do określania ilości powtórzeń pętli.
♦ rejestr danych:
RDX (64 bity) = EDX (młodsze 32 bity) + starsze 32 bity,
EDX (32 bity) = DX (młodsze 16 bitów) + starsze 16 bitów,
DX = DH (starsze 8 bitów) + DL (młodsze 8 bitów)
W tym rejestrze np. przechowujemy adresy różnych zmiennych.
♦ rejestry dostępne tylko w trybie 64-bitowym:
0 8 rejestrów 8-bitowych: R8B.....R15B
0 8 rejestrów 16-bitowych: R8W,..., R15W 0 8 rejestrów 32-bitowych: R8D,..., R15D
11