MUL 命令 (Multiple Accumulator)
アキュムレータの値をYレジスタの値で乗算し、結果をYAペアに返します。

MUL オーバーロード
オペコード 構文 アドレッシングモード バイト数 命令サイクル
CF
MUL YA
Multiple
1
9
 

フラグ変化
n-----z-

n: 積のMSBがセットされる
z: Yレジスタが0の場合にセットされる

解説
MUL命令はアキュムレータとYレジスタの積をYAペアに返します。
ステータスフラグは演算後のYレジスタの値のみによって決まります。

; MUL Sample

; #$12 * #$35 (= #$03BA)

MOV	A, #$12	; ***-*-**
MOV	Y, #$35	; n**-*-z*
MUL	YA	; n**-*-z*	A: 12 Y: 35
***		; n**-*-z*	YA: 03BA

; #$10 * #$20 (= #$0200)

MOV	A, #$10	; ***-*-**
MOV	Y, #$20	; n**-*-z*
MUL	YA	; n**-*-z*	A: 10 Y: 20
***		; n**-*-z*	YA: 0200	(Accumulator is zero, but zero flag is not set.)

; #$05 * #$10 (= #$0050)

MOV	A, #$05	; ***-*-**
MOV	Y, #$10	; n**-*-z*
MUL	YA	; n**-*-z*	A: 05 Y: 10
***		; n**-*-Z*	YA: 0050	(Result is not zero, but zero flag is set because Y-register is zero.)

参照