乗算のプログラム(乗算の基礎)

最終更新日:2019.07.09

掲載開始日:2001.09.04

by M.Yanaka

例題3.Aレジスタの内容を10倍する.ただし,Aレジスタの内容は25以下で
あるものする(積は250以下なので,8ビットに納まる).

;例題3の解答例1				by M.Yanaka		2018.07.20
;								2001.09.04
;	乗算の基礎(10倍)
;
	ORG	0
START:
	CLRW			; Wレジスタは0で初期化する.
;
	RLF	30H,F		; ファイルレジスタ30Hの被乗数を左シフトして2倍にする.
	ADDWF	30H,W		; Wレジスタ ← 被乗数の2倍.
	RLF	30H,F		; レジスタ30H ← 被乗数の4倍.
	RLF	30H,F		; レジスタ30H ← 被乗数の8倍.
	ADDWF	30H,W		; Wレジスタ ← 被乗数の10倍.
	RET
;
;例題3の解答例2				by M.Yanaka		2018.07.20
;								2001.09.04
;	乗算の基礎(10倍)
;
	ORG	0
START:
	MOVF	30H,W		; ファイルレジスタ30Hの内容をWレジスタへコピーする.
;
	RLF	30H,F		; ファイルレジスタ30H ← 被乗数の2倍.
	RLF	30H,F		; ファイルレジスタ30H ← 被乗数の4倍.
	ADDWF	30H,F		; ファイルレジスタ30H ← 被乗数の5倍.
	RLF	30H,F		; ファイルレジスタ30H ← 被乗数の10倍.
	RET