Dies ist eine Aufgabe, ich weiß nicht, wo ich anfangen soll.Assembly-Prozedur zum Konvertieren von binär/hex in Split-Oktal
Aufgabe:
Ein Byte kann mit drei Oktalziffern dargestellt werden. Die Bits 7 und 6 bestimmen die linke Oktalziffer (die niemals höher als 3 ist); die Bits 5, 4 und 3 sind die mittlere Ziffer; und die Bits 2, 1 und 0 sind die richtige Ziffer.
Zum Beispiel ist 11010110 b ist 11 010 110 b OR 326 Okt. Der Wert eines Wortes wird in getrennter Oktalzahl dargestellt, indem das 2-3-3-System separat auf die höherwertigen und niederwertigen Bytes angewendet wird.
schreiben procesure splitOctal, die ein Wort auf ein stringof wandelt genau 7 Zeichen, die den Wert der Zahl in der Spalte Oktal darstellt; zwei Dreiergruppen, die durch ein Leerzeichen getrennt sind.
Folgen Sie den cdecl-Protokollen. Die Prozedur wird zwei Parameter haben: 1) Der Wortwert (als niederrangiges Wort eines doublewowd übergeben) 2) die Adresse der 7 Byte langen Zielzeichenfolge.
ÄNDERUNGEN: Anstatt den Wert als Wort auf den Stapel zu übertragen, verwenden Sie nur Doppelwörter auf dem Stapel. Drücken Sie also den Wert, um ihn als DOUBLEword in den Stack zu konvertieren
Ich weiß nicht, wo ich anfangen soll, um dies zu erreichen, indem ich Bits und rotierende Bits verschiebe. Vielleicht gib mir etwas Material zum Lesen oder einen kleinen Kickstart?
Was wissen Sie? Zeigt Ihr Lehrbuch, wie man Bits verschiebt und dreht, und wenn ja, was sagt es, dass Sie nicht verstehen? Können Sie die Prozedurdefinition mit Doppelwortstapelparametern erstellen und zumindest zeigen, was Sie wissen? Es kann auch hilfreich sein, wenn Sie angegeben haben, für welche Plattform diese Assembly vorgesehen ist, da sie normalerweise sehr unterschiedlich sind (ich habe mit x86, x64, SPARC, PIC16F, Z80, IBM iSeries MI und einigen anderen gearbeitet). –
Ich glaube, wir verwenden 8086. Ich weiß, wie Bits zu verschieben und zu drehen. Ich verstehe nicht, wie man 3 Bits bekommt, um zu einem bestimmten Register oder Namensspeicher zu gehen. – GeekyDewd