POMOC!!! 5 wierszy kodu do wyjaśnienia

tomaszp85

Użytkownik
Dołączył
Styczeń 26, 2013
Posty
4
Witam,
Szykuje mi się egzamin z przedmiotu s. wbudowane. Czy mógłby ktoś mi pomóc w opisaniu poniższego kodu?:

MOV R0,#30H
MOV R2,#5
DATA: MOV @R0,#0
INC R0
DJNZ R2,DATA

1 wiersz: Na R0 umieść liczbę 30?
2 wiersz: Na R2 umieść liczbę 5?

Czemu w 1 wierszu z H a w 2 wierszu bez H?
Z góry dziękuję za pomoc!
 

codex

Użytkownik
Dołączył
Październik 30, 2012
Posty
25
1. W rejestrze R0 umieść wartość 30H czyli dziesiętne 48
literka H na końcu liczby informuje, że jest to wartość hexadecymalna. Brak literki oznacza, że to wartość dziesiętna.
 

tomaszp85

Użytkownik
Dołączył
Styczeń 26, 2013
Posty
4
Dzięki wielkie!
Rozumiem jeszcze wiersz 3 INC R0 - zwiększ R0 o 1.
Nie wiem co dzieje się w wierszu 3 i 5. DATA: MOV @R0,#0 DJNZ R2,DATA rozumiesz może?
 

marccinn

Użytkownik
Dołączył
Grudzień 5, 2007
Posty
19
Wiersz 3: DATA to etykieta instrukcji (będzie nam potrzebna w wierszu 5, o tym za chwilę). Sama instrukcja powoduje wpisanie do pamięci wartości 0 - adres komórki pamięci jest zapisany w R0 (to mówi symbol @ przed nazwą rejestru R0).
Wiersz 5: Literka D w tej instrukcji jest skrótem od Decrement; cała instrukcja powoduje zmniejszenie rejestru R2 o 1 i jeżeli wynikiem NIE jest 0, wtedy skaczemy do instrukcji, która jest podpisana etykietą DATA. Jeśli nowa wartość R2 to jednak będzie 0, wtedy nigdzie nie skaczemy i jest wykonywana następna instrukcja.
 
Do góry Bottom