Menu
Coddy logo textTech

Jak działają instrukcje

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

Wiesz, że procesor wykonuje instrukcje jedna po drugiej. Ale skąd procesor wie, którą instrukcję wykonać jako następną? Gdzie przechowywane są instrukcje? I jak właściwie wygląda instrukcja?

Instrukcje są liczbami.

To podstawowa prawda o komputerach. Wszystko jest liczbą. Dane, z którymi pracujesz (takie jak liczba 42), są liczbą. Adres, pod którym znajdują się dane (taki jak 1000), jest liczbą. Same instrukcje (takie jak mov, add, cmp) również są liczbami.

Gdy piszesz kod asemblera, taki jak mov rax, 5, asembler przekształca ten czytelny dla człowieka tekst w liczbę zrozumiałą dla procesora. Ta liczba jest nazywana kodem instrukcji.

Gdzie są przechowywane instrukcje?

Instrukcje są przechowywane w pamięci, tak samo jak dane. Nie ma specjalnego miejsca na instrukcje. Pamięć przechowuje oba rodzaje:

  • Dane (liczby, znaki, tablice)
  • Instrukcje (sam program)

Procesor nie zna tej różnicy. Po prostu odczytuje to, co znajduje się pod adresem pamięci wskazywanym przez licznik programu. Krótko poznasz PC w lekcji 0.1. Teraz czas dokładnie zrozumieć, jak działa.

Licznik programu (nazywany również wskaźnikiem instrukcji) to specjalny rejestr wewnątrz procesora. Jego jedynym zadaniem jest przechowywanie adresu pamięci następnej instrukcji do wykonania.

Cykl pobierania i wykonywania:

Procesor powtarza te trzy kroki w nieskończoność:

KrokCo się dzieje
1. FETCHOdczytaj instrukcję spod adresu w PC
2. EXECUTEWykonaj tę instrukcję
3. ADVANCEPrzenieś PC do następnej instrukcji

Prosty przykład:

Jeśli PC = 1000, procesor:

  • Pobiera instrukcję spod adresu 1000
  • Wykonuje ją
  • Przesuwa PC na następny adres (1000 + rozmiar instrukcji)

Następnie powtarza się z nową wartością PC.

Jak wygląda instrukcja:

Każda instrukcja składa się z dwóch części:

CzęśćCo robiPrzykład
OpcodeCo zrobićmov, add, cmp
OperandyNa czym to zrobićrax, 5, [result]

Niektóre instrukcje mają jeden operand (np. inc rax, aby dodać 1). Niektóre mają dwa (np. mov rax, 5). Niektóre mają trzy (np. add rax, rbx, rcx w niektórych architekturach).

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