Ich habe eine Frage bezüglich der MULU-Anweisung. Eine Sache, die ich bemerkt habe, ist, dass ich den Wert 000FFFFF in einem Datenregister habe. Und dann nehme ich an, ich möchte ein anderes F einfügen, so dass es 00FFFFFF enthält. Was ich in der Regel tun, ist das Datenregister multiplizieren mit 16 wie folgt:68000 Assembly: Multiplikation ergibt ein seltsames Ergebnis
MULU #16, D4
Und dann füge ich eine weitere F durch den Befehl tun ADD (so erhalte ich 00FFFFFF). Aber wenn ich wieder bei 000FFFFF multipliziere, enden alle Bits innerhalb des Datenregisters auf Null (00000000). Danach multipliziere ich 000FFFF0 und dann folgt der Rest. Ich verstehe immer noch nicht den Grund dafür. Ich schaute this example auf und ich finde, dass es funktionieren sollte. Ich habe auch bemerkt, dass die Extend, Carry und Zero Bits alle auf true gehen, wenn ich einfach 1 zu 000FFFFF
Was bedeutet _ „Aber wenn ich multipliziert wieder auf 000FFFFF“ _ bedeuten? Zeigen Sie uns die genaue Reihenfolge der Anweisungen. Warum verschiebst du nicht einfach um 4 nach links, anstatt um 16 zu multiplizieren? – Michael
Sie haben Recht. Ich hätte die Multiplikation nicht verwenden sollen. Stattdessen ist das Verschieben um 4 nach links eine nette Lösung. Problem gelöst. –