いくつかのコード言語での作業をやめてからしばらくしていました。数日前に学校で私が組み立てを始めたので、いくつかのコード行の背後にあるいくつかの論理を理解し始めます。
実際、私が試みたのは、2つの変数間の単純なADD演算です。私はemu8086を使用してコードをエミュレートしています。なぜ私はそれを理解できないのかをあなたに示します。私は、8ビットの3つの変数、それらのうちの2つを初期化し、私は2番目に最初に追加したい、今すぐアセンブリでの追加操作
stack segment
dw 128 dup(0)
ends
data segment
x DB 3
y DB 5
r DB 0
ends
code segment
mov ah,x
mov al,y
add ah,al
mov r,ah
ends
:
コードは次のようです。
問題は次のようなものです。コードをエミュレートして何が起こっているのかを確認するには、最初の手順はAH=03
でなければなりませんが、CDhを出力するようです理由を得ることができません。 AL
についても同じです。
私は、xとyの代わりにAH
とAL
のレジスタに他のものを書き込むのはなぜですか?
データセグメントを指すように「DS」を設定するのを忘れていると思います。 – Jester
申し訳ありませんが、どうすればいいですか? –