Skocz do zawartości

[ASM] Rejestr 8bit na 16bit


Rekomendowane odpowiedzi

Opublikowano

Siemka mam pytanie jak przepisać wartość z rejestru 8 bitowego na rejestr 16 bitowy coś w tym stylu:

 

mov ax, al

 

Chodzi mi o to, że chcę ustawić sobie podzielnik, a z tego co doczytałem to podzielnikiem jest rejestr ax, czyli robie takie coś

 

mov ax, [liczba]

 

Gdzie 'liczba' jest w rejestrze 8 bitowym, a ax jest 16 bitowym i tu mi wyskakuje błąd. No i właśnie nie wiem jak przypisać tą wartość z 'liczba' do rejestru ax.

 

Nie wiem czy to jest zrozumiałe co napisałem :D, ale nie wiem jak to dokładniej opisać bo dopiero co zacząłem się go uczyć.

Opublikowano

Nie znam się na asemblerze, ale AX składa się z AL i AH

AH - starsze 8 bitów (najbardziej znaczące)

AL - młodsze 8 bitów (najmniej znaczące)

 

Więc zapisując cokolwiek do rejestru AL lub AH, zmieniasz po prostu starsze lub młodsze bity rejestru AX, zatem nie ma sensu przerzucać tych samych danych w to samo miejsce.

 

Reasumując: Zapisujesz 8-bitową liczbę do rejestru AL, a rejestr AH zerujesz. Liczbę tą (wyrażoną w 16 bitach) możesz wtedy spokojnie odczytać z rejestru AX.

Opublikowano

Rzeczywiście :D w końcu mi się udało dzięki za pomoc.

 

 

A wie ktoś może jak wypisać liczbę 8 bitową na ekran w postaci dziesiętnej? :D

  • 4 tygodnie później...
Opublikowano

Wiem, że odkopuje ale piszę na przyszłość dla potomnych.

Mając bajtową cyfre w AX musisz dzielic przez dziesięc i wyswietlać reszte w odwrotnej kolejności.

Wyświetlając reszte dodajesz 30 co daje nam cyfre z kodu ASCII.

Potem przerwanie/outportb i masz cyferke wyświetloną.

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...