• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Przypisanie wartości rejestrów do zmiennej DD - asembler tasm (16bit)

VPS Starter Arubacloud
0 głosów
1,379 wizyt
pytanie zadane 11 kwietnia 2016 w Assembler przez noname375 Początkujący (300 p.)
Próbuję czegoś takiego "mov   Wynik, dx:ax" Wynik to zmienna typu double word a wynik mnożenia które chce zapisać jest w dx i ax, jak to wykonać poprawnie?

1 odpowiedź

+1 głos
odpowiedź 11 kwietnia 2016 przez bumpMind Gaduła (4,260 p.)

Spróbuję Ci pomóc przez ogólne zobrazowanie tego co chcesz zrobić.

Po pierwsze jest to system 16 bitowy zatem rejestry przechowują po tyle właśnie bitów czyli po 2 Bajty w każdym rejestrze. Dalej mnożąc dwie liczby 2 Bajtowe wynik otrzymasz na 4 Bajtach czyli w dwóch rejestrach dx i ax, przy czym warto podkreślić że starsze bity wyniku (te o większych wagach) wylądują w rejestrze dx a młodsze w ax.

Zatem zmienna wynik powinna posiadać w pamięci zarezerwowane dla siebie co najmniej 4 Bajty. Precyzując czym tutaj jest zmienna - jest ona swojego rodzaju wskaźnikiem na pierwszy bajt zarezerwowanego miejsca w pamięci (dla tej zmiennej).

Używając instrukcji mov przenosimy(kopiujemy) w tym przypadku zawartość rejestru pod dane miejsce w pamięci. Mając wartości wyniku w dwóch rejestrach musimy kolejno przesyłać je do pamięci, oddzielnie ax i dx. W tym miejscu pojawia się problem gdyż wartości w rejestrach dx i ax to kolejne bajty wyniku działania, zatem przesyłając najpierw starsze lub młodsze bity kolejną część wyniku powinniśmy wysłać o 2 Bajty dalej w pamięci, czyli używając początkowo operacji

  • mov Wynik, %dx

kolejny rejestr ax powinniśmy wpisać pod adresem Wynik + 2 Bajty. To powinno nakierować Cię na właściwe tory ;)

Podobne pytania

0 głosów
0 odpowiedzi 334 wizyt
pytanie zadane 12 marca 2016 w Assembler przez noname375 Początkujący (300 p.)
0 głosów
0 odpowiedzi 34 wizyt
pytanie zadane 1 grudnia 2023 w Assembler przez hutsalo1998 Użytkownik (520 p.)
+1 głos
1 odpowiedź 537 wizyt
pytanie zadane 15 stycznia 2022 w Assembler przez DzikieHarce Użytkownik (690 p.)

92,451 zapytań

141,261 odpowiedzi

319,073 komentarzy

61,853 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...