Wpis z mikrobloga

Czy ktoś może sprawdzić poprawność moich odpowiedzi na poniższe zadanie?
Cyfry szesnastkowe W, X, Y i Z są równe trzeciej, czwartej, piątej i szóstej cyfrom numeru albumu zdającego, zwiększonym o 6.
1. Dla programu poniżej, dodającego dwie liczby 2-bajtowe, odpowiedzieć na pytania:

mov a,r7
add a,r5
mov r7,a
mov a,r6
addc a,r4
mov r6,a

a) w jakich binarnych sposobach kodowania mogą być przedstawiane dodawane liczby,
b) gdzie są umieszczone młodsze i starsze bajty obu dodawanych liczb,
c) dlaczego zastosowano dwie różne instrukcje dodawania,
d) jak zmienić program aby można było zastosować jednakowe instrukcje dodawania,
e) gdzie jest zapisywany młodszy i starszy bajt wyniku,
f) jakie są zakresy wartości liczb wejściowych i wyniku dla każdego sposobu kodowania dodawanych liczb,
g) w jaki sposób można sprawdzić prawidłowość wyniku przy różnych binarnych sposobach kodowania liczb.

Odpowiedzi;
a) Naturalny kod binarny NBC i uzupełnień do dwóch U2.
b) Młodsze bajty umieszczone są w rejestrach r7 i r5 a starsze w r6 i r4.
c) Druga instrukcja to dodawanie z przeniesieniem które może wystąpić przy wykonywaniu pierwszego dodawania.
d) nie wiem :(
e) Młodszy bajt zapisywany jest w rejestrze r0 a starszy w r1
f) Tu nie jestem pewny bo ogólnie zakres liczby 16b dla kodu NBC to 0-65535 i wydaje mi się, że mamy taki sam zakres liczb wejściowych jak i wyniku. Dla U2 zakres wyniósłby -32768 do 32767
g) Prawidłowość wyniku oceniamy przez sprawdzenie bitu przeniesienia po dodaniu starszych bajtów liczb dwubajtowych.

#assembler #8051 #mikrokontrolery