Sie möchten mit ihnen zusammen arbeiten? Es ist einfach
Nehmen wir an, Sie haben die Nummer 2643 - in der Basis 10. Wenn Sie es in zwei Hälften teilen, werden Sie etwas wie 26 und 43 haben, richtig? Nun, du weißt, wenn du mit zwei multiplizierst, musst du von rechts nach links multiplizieren und tragen. Also mach das - multipliziere die rechte Seite, und wenn es einen Überlauf gibt, füge das zur linken Seite hinzu und multipliziere dann die linke Seite.
Zum Beispiel:
(37 82) *2 -> ((37*2) + overflow) + 64 -> (74 + 1) 64 -> 75 64
Sehen Sie, wie das funktioniert? Gleiches gilt für die Teilung - müssen Sie tragen? Stiehl vom höheren Bit. Möchten Sie Zahlen addieren oder subtrahieren? Nicht so schwer!
Binärzahlen funktionieren auf die gleiche Weise.
(01110110 10110011) * 10 = (0) <- 1110110(1) <- 01100110
Grundsätzlich Sie das untere Ende berechnen, dann das obere Ende berechnen, dann gelten Sie den Überlauf.
Welche Architektur und Assembler? –
Es gibt nichts zu konvertieren. Beginnen Sie einfach, das Registerpaar als ein Paar zu behandeln, das eine 16-Bit-Zahl darstellt. Wie die Mathematik funktioniert, hängt davon ab, welche Anweisungen Sie auf Ihrer Plattform zur Verfügung haben. – harold
Keine Ahnung. Ich arbeite mit einem Embedded-System-Programmierer. Er sagt, er ist begrenzt. Er kann mir ein Hex-Byte schicken. Und dann noch ein Hexadezimalbyte. Und ich sollte in der Lage sein, diese in eine 16-Bit-Nummer zu verwandeln. Aber ich bin mir nicht sicher wie. –