3.演算命令

  

CASLでは算術命令、論理命令がそれぞれ用意されています。

 

 

(1)ADDA 算術の加算命令

 

記述方法

 

ラベル

ADDA

r,アドレス[,x]

 

rに格納されている値にアドレス番地の内容を加算し、rへ格納します。
式であらわすと、r = r + アドレス番地の中身 となります。

プログラム例.

 

PRG_ADDA

START

 

 

 

LD

GR0,DATA1 ;レジスタへデータを読み込む

 

 

ADDA

GR0,DATA2 ;GR0へDATA2の中身を加算

 

 

ST

GR0,ANS    ;結果をANSへ格納

 

 

RET

;プログラム終了

 

DATA1

DC

1 ;データを定義

 

DATA2

DC

2 ;データを定義

 

ANS

DS

1 ;データ格納領域を確保

 

 

END

 

 

  メニューへ戻る

 

 

(2)ADDL命令 論理加算命令

 

記述方法

 

ラベル

ADDL

r,アドレス[,x]

 

rに格納されている値にアドレス番地の内容を加算し、rへ格納します。
r = r + アドレス番地の中身 という式と同様の動作をします。

ADDA命令との違いは、符号(+ , -)なしとして処理します。
つまりマイナスは考えないということです。

プログラム例.

 

PRG_ADDL

START

 

 

 

LD

GR0,DATA1 ;レジスタへデータを読み込む

 

 

ADDL

GR0,DATA2 ;GR0へDATA2の中身を加算

 

 

ST

GR0,ANS    ;結果をANSへ格納

 

 

RET

;プログラム終了

 

DATA1

DC

1 ;データを定義

 

DATA2

DC

2 ;データを定義

 

ANS

DS

1 ;データ格納領域を確保

 

 

END

 

 

  メニューへ戻る

 

 

(3)SUBA命令 算術減算命令

 

記述方法

 

ラベル

SUBA

r,アドレス[,x]

 

r = r – アドレスの中身
という式と同等の動作をします。

プログラム例.

 

PRG_SUBA

START

GO から処理開始

 

DATA1

DC

3 ;データ定義

 

DATA2

DC

1 ;データ定義

 

ANS

DS

1 ;データ定義

 

GO

LD

GR2,DATA1 ;GR2にDATA1の中身を読み込む

 

 

SUBA

GR2,DATA2 ;GR2からDATA2の中身を減算

 

 

ST

GR2,ANS    ;結果をANSへ格納

 

 

END

 

 

  メニューへ戻る

 

 

(4)SUBL命令 論理減算命令

 

記述方法

 

ラベル

SUBL

r,アドレス[,x]

 

r = r –アドレスの中身
という式と、同等の動作をします。

プログラム例.

 

PRG_SUBL

START

GO から処理開始

 

DATA1

DC

3 ;データ定義

 

DATA2

DC

1 ;データ定義

 

ANS

DS

1 ;データ定義

 

GO

LD

GR2,DATA1 ;GR2にDATA1の中身を読み込む

 

 

SUBL

GR2,DATA2 ;GR2からDATA2の中身を減算

 

 

ST

GR2,ANS    ;結果をANSへ格納

 

 

END

 

 

  メニューへ戻る

 

 

(5)AND命令 論理積命令

 

記述方法

 

ラベル

AND

r,アドレス[,x]

 

rとアドレスの中身で論理積を行い、結果をrへ格納します。

プログラム例(DATAの中身の1ビット目の情報を取り出すプログラム例)

 

PRG_AND

START

GO から処理開始

 

DATA

DC

#FFFF ;データ定義

 

MASK

DC

#0001 ;データ定義

 

ANS

DS

1 ;データ定義

 

GO

LD

GR2,DATA1 ;GR2にDATAの中身を読み込む

 

 

AND

GR2,MASK  ;GR2とMASKの中身で論理積を行う

 

 

ST

GR2,ANS    ;結果をANSへ格納

 

 

END

 

 

  メニューへ戻る

 

 

(6)OR命令 論理和命令

 

記述方法

 

ラベル

OR

r,アドレス[,x]

 

rとアドレスの中身で論理和を行い、結果をrへ格納します。

プログラム例(DATAの中身とMASKの中身を重ねあわせるプログラム例)

 

PRG_AND

START

GO から処理開始

 

DATA

DC

#0FF0 ;データ定義

 

MASK

DC

#3001 ;データ定義

 

ANS

DS

1 ;データ定義

 

GO

LD

GR2,DATA1 ;GR2にDATAの中身を読み込む

 

 

OR

GR2,MASK  ;GR2とMASKの中身で論理和を行う

 

 

ST

GR2,ANS    ;結果をANSへ格納

 

 

END

 

 

  メニューへ戻る

 

 

(7)XOR命令 排他的論理和命令

 

記述方法

 

ラベル

XOR

r,アドレス[,x]

 

rとアドレスの中身で排他的論理和を行い、結果をrへ格納します。

プログラム例(DATAの中身をビット反転させるプログラム例)

 

PRG_AND

START

GO から処理開始

 

DATA

DC

#1010 ;データ定義

 

MASK

DC

#FFFF ;データ定義

 

ANS

DS

1 ;データ定義

 

GO

LD

GR2,DATA1 ;GR2にDATAの中身を読み込む

 

 

XOR

GR2,MASK  ;GR2とMASKの中身で排他的論理和を行う

 

 

ST

GR2,ANS    ;結果をANSへ格納

 

 

END

 

 

  メニューへ戻る

 

 

 

 

 

 

 

---

トップページWhatsNewCASL2000CASL入門コーナーメール