こんな感じ
;GR1 x
;GR2 y
;GR0 SUM=x*y
;符号無し乗算,オーバーフロー検査なし
MULT START
PUSH 0,GR1
PUSH 0,GR2
LAD GR0,0 ;SUM=0
CPL GR1,ZERO
JZE EXIT ;x=0なら終了
TEST CPL GR2,ZERO
JZE EXIT ;yが0になったら終了
SRL GR2,1 ;最下位ビットがOVビットに入る
JOV ADD ;yの最下位ビットが立っているか?
JUMP SHIFT
ADD ADDL GR0,GR1 ;SUM=SUM+x
SHIFT SLL GR1,1 ;x=x*2
JUMP TEST
EXIT POP GR2
POP GR1
RET
ZERO DC 0
END
お礼
回答ありがとうございます。 あと カウンタを使った掛け算でどの数字を入れても出来るようにするにはどうしたらいいのでしょうか? 何も知らなくてすいません。