wir mit einem 32-Bit-Code zum Beispiel starten: "AA BB CC DD" (Little Endian)Schreiben Sie diese Übung in weniger als 4 Zeilen Montage AT & T
wir "AA DD CC BB" als Endergebnis (Big Endian wollen). Ich habe es geschafft, es in 8 Zeilen zu schreiben, mit% ebx als Eintrag und% ecx als Ausgang. Der Lehrer erwähnte, dass es möglich ist, dies in weniger als 4 Zeilen zu schreiben, wobei 3 die Aufzeichnung ist. Ich war neugierig zu sehen, wie es verkürzt werden kann.
mov %R1, %ebx
mov %bx, %cx
shl $16, %ecx
mov %cl, %dl
mov %bl, %cl
mov %bh, %dh
shr %16, %edx
and %edx, %ecx
Ja tun, es ist möglich, dies mit drei Befehle zu tun. Aber ich unterlasse es, sadistisch zu sein. Ich möchte auch nicht, dass du deine Kommilitonen absetzt oder dass du willst, dass du vorzeitig auf das Lernen von Assembly verzichtest. ** Montage macht Spaß '**. Studieren Sie die Anweisungen der 'x86'-Assembly und Sie werden wahrscheinlich eine bessere Lösung finden. Hier finden Sie einen guten [Startpunkt] (http://www.felixcloutier.com/x86). – zx485
Vielleicht irre ich diese Frage, aber ich sehe nicht, wie AA DD CC BB die Big-Endian-Form von AA BB CC DD ist. –
@Michael Petch: Du siehst es nicht, weil es nicht da ist. Es ist Big-Endian konvertiert zu Little-Endian ** 'ROR'ed um ein Byte **. – zx485