2

いくつかの背景情報: 現在、Intel x86 アセンブリを学習しながら、保護モードでブートローダーを作成しています。最終的な結果は、「BootLoader ASCII スネーク」ゲームになります。

私がやりたいことは、スタックから AL レジスタに値をポップすることです。これによりエラーが発生するため、値を 16 ビット レジスタにポップする必要があると想定します。これにより、16 ビット レジスタの最初の 8 ビットを 8 ビット レジスタにコピーする必要がありますか?

これは私が使用している命令リファレンスです: http://www.mathemainzel.info/files/x86asmref.html

リンクされた参照から、たとえばバイトをワードに変換するための指示が表示されます。すべての変換命令は、下位レジスタから上位レジスタに移動するようです。

4

1 に答える 1

6

実際AXにはAH、レジスタはビット0〜7とビット8〜15ALを表すようにを表します。あなたがすなわちを置く場合。0xef80からそれまでは0xefになり、0x80になります。ALAHAXAHAL

于 2012-06-29T21:14:54.767 に答える