四則演算

1. 加算

まずは足し算からです。ここでは33 + 2 を実施しています。結果は35ですが、標準出力に表示される内容は”5”となります。
ASCII文字コードで”5”が35と一致するためです。ここで、h(HEX)をつけている意味は16進数と言う意味を持っています。

命令形式)
add AAA BBB ; AAA と BBBを加算して、AAAに格納します。

AAAやBBBはオペランドと呼びます。指定できる内容は、レジスタや値が指定加能です。
別の命令によっては、レジスタ同士が指定可能な場合や、メモリーとメモリーが指定不可の場合が存在します。
このようにオペランドに指定可能な組み合わせの事をアドレッシングモードと呼びます。

   

2. 減算

次に紹介するのは引き算です。33 - 2 の結果を出力しています。こちらも結果は31ですが、出力は”1”と出力します。 加算と同様にASCIIコードでの標準出力のためこのような結果となっています。

命令形式)
sub AAA BBB ; AAA から BBBを引いて、結果をAAAに格納します。

   

3. インクリメント

インクリメントとはある数字に1加算することです。下記コードの例では”1をインクリメントして、結果が2”、”2をインクリメントして、結果が3”になっています。

命令形式)
inc AAA ; AAAに1を加算します(結果はAAAに格納)。

   

4. デクリメント

デクリメントとはある数値から1を減らす事です。下記例では”3をデクリメントして、結果が2”、”2をデクリメントして、結果が1”になっています。

命令形式)
dec AAA ; AAA の値から1を減算します(結果はAAAに格納します)。

   

5. 乗算

次に掛け算です。下記コードでは、3×2の結果の6をまず算出しています。その後、ASCIIコードで出力するために30を加算して、36を算出しています。

命令形式)
mul BBB ; RAX (レジスター)にBBBを掛けて、結果をRAXに格納します。

   

6. 除算

次に割り算です。下記コードでは、6÷2を実施して、3を算出しています。その後、乗算と同様に30hを加算して、33hにしています。

命令形式)
div BBB ; RAX(レジスター)の値をBBBの値で割ります。結果はRAXに格納します。

以上で、基本的な加算、減算、インクリメント、デクリメント、乗算、除算が終了です。