導入
四則演算のうち、まずは足し算 add と引き算 sub。どちらも「書き込み先に対して計算し、結果を書き込み先に残す」動きをします。
説明
mov eax, 7 ; eax = 7
add eax, 3 ; eax = eax + 3 → 10
sub eax, 4 ; eax = eax - 4 → 6
inc eax ; eax = eax + 1 → 7(+1専用の命令)
dec eax ; eax = eax - 1 → 6(-1専用の命令)
add eax, 3は「eax = eax + 3」。結果は左側(eax)に上書きされます。inc/decは 1 だけ増減する専用命令で、ループなどで多用します。- 掛け算は
imul、割り算はidivという別の命令があります(使い方はやや特殊)。
高級言語の x = x + 3; が、add 1命令に対応するイメージです。
やってみよう(トレース)
次の実行後、eax はいくつ?
mov eax, 20
sub eax, 5
add eax, 10
dec eax
答え: 20 − 5 + 10 − 1 = 24。