Rejestry
Rejestry: ręce procesora
Najpierw: czym jest bit? Bit to pojedyncze 0 lub 1, najmniejsza jednostka informacji, jaką komputer może przechować. Złóż 32 takie bity razem i masz liczbę 32-bitową, która może liczyć od 0 do około 4 miliardów. Każdy rejestr i każde miejsce w pamięci w RISC-V przechowuje jedną liczbę 32-bitową.
Rejestr to niewielkie miejsce przechowywania wewnątrz procesora, które przechowuje jedną liczbę 32-bitową. RISC-V udostępnia 32 rejestry. Ponieważ znajdują się w rdzeniu procesora, użycie rejestrów jest znacznie szybsze niż pamięci głównej, o rzędy wielkości. Kilka z nich pokryje większość tego, co napiszesz: t0 do t2 (wartości tymczasowe), a0 do a2 (argumenty i wyniki), zero (zawsze 0), sp (wskaźnik stosu) oraz ra (adres powrotu).
# Wypisz liczbę 42, a następnie zakończ.# a7 wybiera usługę, a a0 przenosi wartość.li a7, 1 # usługa 1 = drukuj liczbę całkowitąli a0, 42 # wartość do wydrukowaniaecall # zrób toli a7, 10 # usługa 10 = wyjścieecall
oznacza load immediate (załaduj natychmiast) i umieszcza stałą w rejestrze. wybiera usługę 1, która wypisuje liczbę całkowitą. umieszcza liczbę do wypisania w a0. przekazuje sterowanie do systemu, który wypisuje wartość w a0. Następnie wybiera usługę zakończenia, a kończy program. Naciśnij Run, potem zmień 42 i uruchom program ponownie.
Ustawienie a7 na 1 powoduje, że następne ecall wypisze liczbę.
pc, skrót od program counter (licznik programu), przechowuje adres aktualnie podświetlonej linii. Ta liczba to wszystko, co procesor wie o swojej pozycji w programie: pobiera instrukcję spod adresu w liczniku programu, wykonuje ją, a następnie dodaje cztery do licznika programu, aby dotrzeć do następnej instrukcji. Rejestr otrzymuje swoją wartość, gdy wykona się w jego linii, a wynik pojawia się dopiero, gdy uruchomi się pierwszy .