-
        

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 17

Thema: 2xbit dividieren durch 2x8bit

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    02.02.2005
    Ort
    Hamburg
    Alter
    34
    Beiträge
    176

    2xbit dividieren durch 2x8bit

    Anzeige

    Nabend liebe Gemeinde!!

    Ich habe lange gesucht, aber leider nichts gefunden .
    Ich möchte in Assembler eine Zahl die in
    r16 und r17 steht, durch eine zahl die in r18 und r19 steht teilen.
    z.b. 60000/20000

    Ich habe einfach keine ahnung wie ich da überhaupt vorgehen muss.
    Finde auch leider nichts dazu.
    mit welchem register muss ich was machen?

    mfg, Philipp

    DANKESCHÖN!!!!!!!!!

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von SprinterSB
    Registriert seit
    09.06.2005
    Ort
    An der Saar
    Beiträge
    2.801
    Schon mal Rechnen mit 3 Registern gelesen? Das ist fast das gleiche Thema.
    Disclaimer: none. Sue me.

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    02.02.2005
    Ort
    Hamburg
    Alter
    34
    Beiträge
    176


    Ja, ich bin sogar der Verfasser des Rechnen mit 3 Registern.
    Allerdings wurde es immer mit sehr viel code erklärt, was mich doch
    verwirrt hat.
    Habe daher immernoch das gleiche Problem mit rechnen von Dualzahlen
    die über 1 Register hinausgehen.

  4. #4
    RN-Premium User Begeisterter Techniker
    Registriert seit
    30.04.2004
    Alter
    40
    Beiträge
    245
    Ist dir lieber, wenn wir dir code ohne Erklärung schicken? Ich denke, dort wurde alles ausführlich in verschiedenen Varianten erklärt.
    lg
    Alex

  5. #5
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    02.02.2005
    Ort
    Hamburg
    Alter
    34
    Beiträge
    176
    Hi Alex

    erst nochmal vielen vieln Dank für dir Mühe!!!
    Nein, das bei dem Code Erklärungen dabei waren war super,
    nur konnte ich die langen Code`s nicht ganz nachvollziehen.
    Ist es vielleicht bei 2x8bit / 2x8bit leichter zu verstehen?
    Ich möchte nämlich gerne einen Tacho für mein Hamsterrad programmieren . der Kilometerzähler davon funktioniert schon .

    Gruß, Philipp

  6. #6
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    02.02.2005
    Ort
    Hamburg
    Alter
    34
    Beiträge
    176
    Es wäre auch sehr hilfreich wenn ich wüsste wie man das ganze
    schriftlich auf dem Papier realisiert.

    Kennt ihr vielleicht eine Adresse wo dies erklärt ist?

    Danke!!

  7. #7
    Erfahrener Benutzer Robotik Einstein Avatar von SprinterSB
    Registriert seit
    09.06.2005
    Ort
    An der Saar
    Beiträge
    2.801
    Also auf Papier fängst du am besten mit normaler Division an, wie du sie in der Grundschule gelernt hast. Einfach mit Dezimalzahlen. Das passende Untereinanderschreiben ist ein Shift im Dezimalsystem um x Stellen, also Multiplikation mit 10^x.

    Mit Binärzahlen geht es genauso... Ein Shift (Schieben) um x Stellen ist da ne Multiplikation mit 2^x.
    Disclaimer: none. Sue me.

  8. #8
    Erfahrener Benutzer Robotik Einstein Avatar von SprinterSB
    Registriert seit
    09.06.2005
    Ort
    An der Saar
    Beiträge
    2.801
    Code:
    Beispiel: 
    
    1111
    ----
     110
    
    Der Nenner wird erst nach links geschoben, bis das obere Bit mit dem Zähler übereinstimmt:
    
    1111        Q=0
    ----
    1100
    
    Der Nenner ist kleiner als der Zähler, passt also genau 1x rein und kann abgezogen werden.
    Aber wir ziehen nicht den Nenner ab, sondern 2^1 mal den Nenner, weil wir ihn einmal
    nach links geschoben haben. Diese 2 wird zum Quotenten Q dazugezählt,
    also Bit 1 von Q gesetzt
    
    
    0011       Q=10
    ----
    1100
    
    Der Nenner kann jetzt nicht mehr reinpassen (wegen Zweiersystem) und wird 1 nach rechts geschoben
    
    0011       Q=10
    ----
     110
     
    er passt nicht rein, Bit 0 von Q bleibt also 0
    
    Bei einer Ganzzahldivision sind wir schon fertig. Der Quotient ist 2 und der Rest ist 3 (Zähler)
    Test: 15 = 2*6+3
    
    Wenn wir aber weitermachen:
    
    0011       Q=10
    ----
      11
      
    Passt der Nenner wieder rein. Wir sind jetzt bei Bit -1 von Q, also bei der ersten Nachkommastelle.
    Nenner abziehen und Bit -1 von Q setzen, bzw 2^(1/2) zu Q addieren:
    
    0000       Q=10.1
    ----
      11
    
    Wir sind fertig, weil der Rest 0 ist: Q=2.5
    Test: 15 = 2.5*6
    Disclaimer: none. Sue me.

  9. #9
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    02.02.2005
    Ort
    Hamburg
    Alter
    34
    Beiträge
    176
    Dank für das Bsp,

    Aber ich dachte eigentlich an eine Schriftl. Lösung von 2X8 / 2X8 Bit.
    z.b.

    11101010, 01100000 = 60000
    ------------------------------------
    10011100, 00100000 = 20000

    Aus der Division der Beiden Zahlen (2x8 Bit / 2x8 Bit) sollte 3 rauskommen.

    Nur wie stelle ich das am besten an?


    Trotzdem vielen vielen dank für eure Mühen !!!!!!!

  10. #10
    Erfahrener Benutzer Robotik Einstein Avatar von SprinterSB
    Registriert seit
    09.06.2005
    Ort
    An der Saar
    Beiträge
    2.801
    Für mehr bits geht es doch genauso. Wenn du das kleine Beispiel verstanden hast, wirst du es auch mit grösseren Zahlen verstehen.

    20000 = 01001110 00100000, vielleicht war das dein Fehler?
    Disclaimer: none. Sue me.

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •