未満4行のアセンブリにこの練習を書く:「AA BB CC DD」(リトルエンディアン)我々は32ビットのコード例で始まるAT&T
を私たちは「AA DD CC BB」したい最終結果として(ビッグエンディアンを)。 私は8行で記述していますが、エントリとして%ebx、終了として%ecxを使用しています。先生は4行未満でこれを書くことができたと言いました.3行が記録されています。私はそれがどのように短縮できるかを知りたいと思っていました。
mov %R1, %ebx
mov %bx, %cx
shl $16, %ecx
mov %cl, %dl
mov %bl, %cl
mov %bh, %dh
shr %16, %edx
and %edx, %ecx
を行うことができますはい、3つの命令でこれを行うことが可能です。しかし、私はサディスティックではない。私は、あなたの仲間の生徒を捨てることも、あなたは早期に組立を諦めることもしません。 **アセンブリは楽しいです**。 'x86'アセンブリの指示を勉強すれば、おそらくもっと良い解決策が見つかるはずです。ここであなたは良い[出発点](http://www.felixcloutier.com/x86)を見つけるでしょう。 – zx485
私はこの質問を間違って読んでいるかもしれませんが、AA DD CC BBがどのようにAA BB CC DDのビックエンディアン形式であるかわかりません。 –
@Michael Petch:そこにはないので、あなたはそれを見ない。ビッグエンディアンはリトルエンディアンに変換されます** 1バイトでRORされます**。 – zx485