Versuchen Schreiben konvertieren es in C oder einer anderen Sprache (verwende keine C-Bibliotheken für den Großteil des Codes, nur einfache Sprache).
Ich nehme an, dass Sie ASCII-Werte aufnehmen und ASCII-Werte ausgeben?
Blick auf eine ASCII-Diagramm ist die ASCII für 0 0x30, die auch 48 dezimal oder binär 0b00110000 1 0x31 ist, 2 ist 0x32, und so weiter, in binär:
0 0b00110000
1 0b00110001
2 0b00110010
3 0b00110011
4 0b00110100
5 0b00110101
6 0b00110110
7 0b00110111
8 0b00111000
9 0b00111001
Wenn Sie wollten um die Zahlen 9 und 8 hinzuzufügen, möchten Sie wahrscheinlich 0x09 und 0x08 in Ihren Registern nicht 0x39 und 0x38. 0x09 + 0x08 = 0x11 0x39 + 0x38 = 0x71
0x11 0b00010001
0x71 0b01110001
Es könnte schwierig sein, zuverlässig die richtigen Bits aus dem Ergebnis zu extrahieren, wenn Sie von ascii, bevor irgendetwas zu tun konvertieren nicht. nicht schlecht mit Zusatz, du könntest dich durch deinen Weg hacken, aber in die Multiplikation kommen, usw., es könnte weniger schön sein. Sie müssen das selbst herausfinden.
Dann müssen Sie aus dem binären Ergebnis zurück zu ASCII, ich nehme an, Sie möchten das Ergebnis in ASCII drucken?
Wie erhalten Sie von 0x11, die 17 Dezimal zu Ascii 0x31, 0x37? Wenn dich jemand fragt, wie viele Füße in 78 Zoll sind, wie lautet die Antwort? Du beginnst, indem du die Füße durch 12 dividierst, rechts, du bekommst 6 mit einem Rest von 6, was 6 Fuß 6 Zoll entspricht. Wie viele Stunden, Minuten, Sekunden sind in 4000 Sekunden? 4000/3600 = 1 Rest 400, 400/60 = 6 Rest 40, 1:06:40. Und wenn ich fragen sollte, ob ich die Zahl 123 habe, wie extrahiere ich die Hunderter, Zehner und Einsen mathematisch (so dass ich jedem 0x30 hinzufügen und sie als ASCII ausdrucken kann).
So Zugabe von 9 und 8 Sie wahrscheinlich 0b00111001 bekommen und 0b00111000 und ein Pluszeichen und ein Gleichheitszeichen als Eingänge, müssen Sie 0x00111001 in 0x00001001 und 0x00111000 in 0x00001000 drehen, bevor die Zugabe dann drehen Sie das Ergebnis 0x00010001 in 0x00000001 tun (Zehner) und 0x00000111 (Einsen) und dann etwas tun, um vor dem Ausdrucken 0x00000001 in 0x00110001 (Zehner) (ASCII) und 0x00000111 in 0x00110111 (Einsen) (ASCII) zu ändern.
Hausaufgaben sollten als Hausaufgabe getaggt werden :) – DipSwitch
_Ich muss es tun, indem ich 30h zu jeder Zahl hinzufüge, dann Subtrahieren kann mir jemand es erklären? _ ← Etwas sagt mir, dass Sie diesen Code nicht geschrieben haben. – ninjalj