6.シフト演算命令

  

CASLではビットシフトを行う演算命令が用意されています。

 シフト演算を組み合わせることによって掛け算や割り算を行うことができます。

 

(1)SLA命令 算術左シフトを行う命令。

記述方法

ラベル

SLA

r,アドレス[,x]

符号ビットはそのままで、rの中のデータをアドレスで指定したビット数、左にシフトします。
空いたビットには0が入ります。

プログラム例.
(DATAの中身を2ビット左シフトする。8×4を行う)

PRG_SLA

START

 

 

LD

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

 

SLA

GR0,2 ;左へ2ビットシフトする

 

ST

GR0,ANS ;結果をANSに格納

 

RET

;プログラム終了

DATA

DC

#0008 ;データを定義

ANS

DS

1

 

END

 

 メニューへ戻る

 

(2)SRA命令 算術右シフトを行う命令。

記述方法

ラベル

SRA

r,アドレス[,x]

符号ビットはそのままで、rの中のデータをアドレスで指定したビット数、右にシフトします。
空いたビットには符号ビットと同じものが入ります。

プログラム例.
(DATAの中身を2ビット右シフトする。8÷4を行う。)

PRG_SRA

START

 

 

LD

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

 

SRA

GR0,2 ;右へ2ビットシフトする

 

ST

GR0,ANS ;結果をANSに格納

 

RET

;プログラム終了

DATA

DC

#0008 ;データを定義

ANS

DS

1

 

END

 

  メニューへ戻る

 

(3)SLL命令 論理左シフトを行う命令。

記述方法

ラベル

SLL

r,アドレス[,x]

符号ビットを意識せず、rの中のデータをアドレスで指定したビット数、左にシフトする。
空いたビットには0が入ります。

プログラム例.
(DATAの中身を2ビット左シフトする。)

PRG_SLL

START

 

 

LD

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

 

SLL

GR0,2 ;左へ2ビットシフトする

 

ST

GR0,ANS ;結果をANSに格納

 

RET

;プログラム終了

DATA

DC

#0008 ;データを定義

ANS

DS

1

 

END

 

 メニューへ戻る

 

(4)SRL命令 論理右シフトを行う命令

記述方法

ラベル

SRL

r,アドレス[,x]

符号ビットを意識せず、rの中のデータをアドレスで指定したビット数、左にシフトする。
空いたビットには0が入ります。

プログラム例.
(DATAの中身を2ビット右シフトする。)

PRG_SRL

START

 

 

LD

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

 

SRL

GR0,2 ;右へ2ビットシフトする

 

ST

GR0,ANS ;結果をANSに格納

 

RET

;プログラム終了

DATA

DC

#0008 ;データを定義

ANS

DS

1

 

END

 

 メニューへ戻る

  

 

 

 

 

---

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