Menu
CoddyTech

Rejestry a pamięć

Część sekcji Podstawy ścieżki Assembly w Coddy. Lekcja 3 z 45.

Dowiedziałeś się już o dwóch miejscach, w których dane mogą być przechowywane w komputerze:

  • Rejestry: małe schowki wewnątrz procesora
  • Pamięć (RAM): ogromna siatka ponumerowanych komórek poza procesorem

Ale dlaczego są dwa miejsca? Dlaczego procesor nie przechowuje wszystkiego w pamięci?

Odpowiedzią jest szybkość. Rejestry są niezwykle szybkie, ponieważ znajdują się wewnątrz procesora. Pamięć jest wolniejsza, ponieważ znajduje się na zewnątrz. Procesor może uzyskać dostęp do rejestru w jednym cyklu, ale dostęp do pamięci trwa znacznie dłużej.

Porównanie obok siebie:

CechaRejestryPamięć (RAM)
LokalizacjaWewnątrz CPUPoza CPU
SzybkośćNiezwykle szybkie (1 cykl)Wolniejsza (wiele cykli)
Liczba miejsc do przechowywaniaBardzo niewiele (16-32 w x86-64)Miliony lub miliardy
Rozmiar każdego miejsca8 bajtów (64 bity)1 bajt
Jak uzyskujesz do nich dostępPo nazwie (rax, rbx, rcx...)Po adresie (1000, msg, buffer)
Ulotna?Tak (dane znikają po wyłączeniu zasilania)Tak (dane znikają po wyłączeniu zasilania)

Najważniejsza zasada w asemblerze:

Instrukcja może używać najwyżej jednego argumentu z pamięci. Aby połączyć dwie wartości, które znajdują się w pamięci, najpierw załaduj jedną z nich do rejestru.

Rejestry to także miejsce, w którym przechowujesz wartości, z którymi pracujesz, ponieważ każdy dostęp do pamięci jest powolny.

Trzyetapowy schemat, którego będziesz stale używać:

KrokCo się dziejePrzykład
1. LOADSkopiuj dane z pamięci do rejestrumov rax, [count]
2. WORKWykonaj działanie na rejestrzeadd rax, 5
3. STORESkopiuj wynik z powrotem do pamięci (jeśli to konieczne)mov [result], rax

Co się stanie, jeśli zapomnisz o tej regule?

Jeśli spróbujesz dodać dwie liczby, które znajdują się w pamięci, asembler zgłosi błąd. Procesor nie może tego zrobić. Najpierw musisz załadować jedną z nich do rejestru.

Spróbuj swoich sił

Ta lekcja nie zawiera wyzwania z kodem.

quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Podstawy

Poćwicz samodzielnie: Edytor online Assembly