logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

assembler - dzielenie binarne w assemblerze, prośba o wyjaśnienie.

nemesis666 01 Gru 2013 01:08 2433 5
REKLAMA
  • #1 13011433
    nemesis666
    Poziom 2  
    Posty: 4
    Witam, mam prośbę do kogoś kto zajmuje się assemblerem o wyjaśnienie mi pewnego problemu. A mianowicie muszę wykonać dzielenie binarne, znalazłam w książce w sumie to co mnie interesuje lecz nie bardzo rozumiem dlaczego to działa. W załączniku znajduje się ten fragment wraz z kodem którego nie rozumiem. assembler - dzielenie binarne w assemblerze, prośba o wyjaśnienie.

    1. Który bajt jest bardziej znaczący a który mniej? (od lewej strony czy prawej)
    2. Dlaczego dzielnik musi przewyższać wartość bardziej znaczącego bajtu w akumulatorze by program działał?
    Mógłby ktoś zobrazować mi to na jakimś konkretnym przykładzie/liczbie?
  • REKLAMA
  • #2 13016114
    Dżyszla
    Poziom 42  
    Posty: 7075
    Pomógł: 1095
    Ocena: 224
    Może inaczej podejdę - przyjrzyj się następującemu schematowi blokowemu, który jest na stronie: http://forum.dzyszla.aplus.pl/topic127.html - może będzie jaśniej :)
  • REKLAMA
  • #3 13016610
    nemesis666
    Poziom 2  
    Posty: 4
    ogólną zasadę działania znam, nie znam aby odpowiedzi na 2 pytania które zadałam :P
  • REKLAMA
  • #4 13016671
    Dżyszla
    Poziom 42  
    Posty: 7075
    Pomógł: 1095
    Ocena: 224
    1. Dla liczb całkowitych w przypadku x86 jest to naturalny zapis, a więc od lewej (M) do prawej (L). Choć zasadniczo nic nie stoi na przeszkodzie stworzyć program wg logiki odwróconego zapisu ;) Nie wiem, dla jakiego procesora Ty piszesz.

    2. W zasadzie to nie musi. Porównaj z moim schematem. Przyznam szczerze, że nie umiem zobaczyć, dlaczego tutaj to sprawdzanie jest na początku. Pewnie z debuggerem byłoby łatwiej :)
  • REKLAMA
  • #5 13016742
    the_fifth_horseman
    Poziom 32  
    Posty: 2088
    Pomógł: 76
    Ocena: 16
    nemesis666 napisał:
    1. Który bajt jest bardziej znaczący a który mniej? (od lewej strony czy prawej)
    Nie dostaniesz jednoznacznej odpowiedzi. Ich adresacja zależy od architektury systemu. Poczytaj: http://en.wikipedia.org/wiki/Endianness

    Natomiast nie ma problemu z uzyskaniem jego wartości programowo. Przepisz wartość do któregoś z rejestrów - dla rejestru xX, xL to jego mniej znaczący bajt.

    A drugie pytanie - spróbuj wykonać te operacje na kartce: raz dla przypadku który spełnia ten warunek, raz dla takiego który go nie spełnia.
  • #6 13016845
    nemesis666
    Poziom 2  
    Posty: 4
    robię to dla procesora 6502.
REKLAMA