Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Mnozenie pisemne(asembler)

maxibaca 19 Cze 2011 20:31 1917 3
  • #1 19 Cze 2011 20:31
    maxibaca
    Poziom 2  

    Witam, muszę napisać kalkulator mnożący dwie liczby, jedną podaną przez użytkownika drugą (3 cyfrową)zapamiętaną w programie. Wymyśliłem, że liczbę podawaną przez użytkownika będę zapisywał na stosie jako cyfry, i mnożył cyfry przez każdy czynnik z 2 liczby, dokładnie jak w mnożeniu pisemnym. Niestyty pojawił się problem.

    Kod: asm
    Zaloguj się, aby zobaczyć kod


    Ze stosem nie mam problemu, i na razie chciałbym pomnożyć podaną cyfrę przez liczbę 132, czyli cyfry 1,3,2(zapamietane w WAL_1,WAL_2, WAL_3). Przy mnożeniu przez 2 czynnik mam problem, po dodaniu reszty z poprzedniego czynnika(w tym przypadku 0 i dalej zostaje 3) wynik mnożenia 5*3(przy wpisaniu 5 do programu) nie jest 15. Proszę o pomoc, ewentualnie sugestie jak można by taki kalkulator zrobić.

    0 3
  • #2 20 Cze 2011 07:18
    94075
    Użytkownik usunął konto  
  • #3 20 Cze 2011 22:41
    kemot55
    Poziom 30  

    Jeden z argumentów może przekroczyć 256 (liczba ma być 3-cyfrowa) więc nie ma jednego rozkazu mnożenia w 8051.

    Wracając do tematu. Rozumiem, że stały czynnik zapisany w pamięci (u Ciebie WAL _1...WAL3) nie przekracza 03E8h tak? A ile cyfr ma ta druga liczba (jaki ma być jej zakres)? Jeżeli byłaby ograniczona do dwóch cyfr to mnożenie jest banalne z tym, że ja bym przeliczył WAL_1...3 na liczbę 2-bajtową i (odpowiednio 2 cyfry na jeden bajt).

    0
  • #4 21 Cze 2011 07:10
    94075
    Użytkownik usunął konto