Skocz do zawartości

Zarchiwizowany

Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.

zizou666

Assembler - metoda Bootha

Polecane posty

Witajcie. Mam zrobić na jeden przedmiot na studiach projekt w assemblerze. Jest to mnożenie 2 liczb binarnych całkowitych metodą tradycyjną i Bootha. O ile tradycyjną zrobiłem, to z ta drugą mam problem. A mianowicie wydaje mi się, że nie miałbym trudności, gdyby nie to, że nie do końca rozumiem algorytm Bootha. W necie wszystkie przykłady (czy na wikipedii czy gdziekolwiek) opierają się na mnożeniu liczb ułamkowych. A ja jakoś nie potrafię przełożyć tego na liczby całkowite. Otóż na razie tak to sobie wyobrażałem (program pisze na ARM-ach, gdzie mamy do czynienia z rejestrami 32 bitowymi, powiedzmy jednak, że ograniczę sie do 16 bitów dla każdej liczby):

- podaję w programie 2 liczby binarne

- zamieniam je na reprezentacje w kodzie U2 (tutaj bez problemów)

- teraz badam pary bitów mnożnika i w zależności od tego jakie kombinacje cyfr mam to wykonuję odpowiednio:

- para (10): odejmowanie mnożnej od aktualnego iloczynu (czyli moge to zrealizować jako dodawanie liczby przeciwnej w kodzie U2)

i przesuwanie wyniku w prawo (tutaj mam problem, nie wiem czy mam gubić bity, które wypadają z prawej strony i co mam wpisywać z

dla tych przychodzących z lewej i wreszcie, co robic z bitem najbardziej znaczącym, pomijać?)

- para (01): dodawanie mnożnej (to samo co wyzej tylko bez negacji) i przesuwanie (ten sam problem co wyżej)

- para (00 lub 11): tylko przesuwanie (więc równiez ten problem...)

- przechodzę do następnej pary (01, 12, 23 itd) bitów mnożnika i powtarzam całą operację.

Generalnie jak widać, nie wiem co robić kiedy przesuwam mój aktualny iloczyn. Na kartce mi to nie bardzo wychodziło więc raczej ciężko z implemetacją. Assemblera wydaje mi się że troche ogarniam i jeśli bym już wiedział co mam zrobić to powinno się udać.

Nie wiem czy tu na forum są jacyś spece od tego języka, a w tym rpzypadku może tyleż bardziej od logiki matematycznej. Jeśli ktoś podał by mi jakiegoś linka to algorytmu Bootha dla liczb całkowitych bądź wyjaśnił działanie tego algorytmu dla owych liczb to byłbym bardzo wdzięczny. Z góry dzięki za pomoc.

Link do komentarza
Udostępnij na innych stronach



  • Kto przegląda   0 użytkowników

    • Brak zalogowanych użytkowników przeglądających tę stronę.
×
×
  • Utwórz nowe...