本文へスキップ
BecomeCoder

アセンブリ言語コース · 第2章 基本命令 · レッスン4

add・sub ― 足し算と引き算

導入

四則演算のうち、まずは足し算 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)に上書きされます。
  • incdec は 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