加算と減算
ALUと演算結果
コンピュータの日本語訳は「電子計算機」です
その名が表すように、コンピュータの本質は計算機です
2進数を計算し、その結果を所定の場所に返すというものがコンピュータの基本動作です
CPUは機械の頭脳といわれますが、実際に計算を行うのはレジスタなどではなく
そのデータをCPU内部のALUという演算装置にとり込んで行われます
ALUが演算を行い、その結果をレジスタと状態をフラグレジスタに返します
フラグレジスタの状態とその利用方法は、フロー制御を行う時に説明します
この場は、基本的な演算の行い方を理解しましょう
加算命令をおこなう場合はADDを用います
また、減算を行う場合はSUB命令になります
ADDは、第一オペランドに対象レジスタ、第二オペランドに加算する数を指定します
演算結果は、常にディスティネーションオペランドに格納されます
-A 100
15F2:0100 MOV AX , 10
15F2:0103 MOV DX , 20
15F2:0106 ADD AX , DX
15F2:0108 SUB DX , 5
15F2:010B
-G =100 10B
AX=0030 BX=0000 CX=0000 DX=001B SP=FFEE BP=0200 SI=0000 DI=0000
DS=15F2 ES=15F2 SS=15F2 CS=15F2 IP=010B NV UP EI PL NZ AC PE NC
実行してレジスタの値を確認すると、演算されていることが理解できます
ADD AX , DX は、AXレジスタの内容とDXの内容を加算します
その結果は、第一オペランドで指定されたAXレジスタに格納されます
AXの内容は10、SUBは20なのでその結果は30になっています
SUB DX , 5 は、DXレジスタの内容を 5 減算し、結果がDXレジスタに格納されます
実行後、DXレジスタが1Bになっていることが確認できます