【クレクレ】CWC サーチ方法解説【卒業】at GAMEURAWAZA
【クレクレ】CWC サーチ方法解説【卒業】 - 暇つぶし2ch562:名無しさん@お腹いっぱい。
11/10/25 15:48:56.50 minoAVwz
>>554
空きアドレスに倍加したい数値を格納してそれを読み込んで乗算命令でn倍するのがよろしいかと
nの値を格納する空きアドレスを0x1000とすると
t2レジスタをn倍させたいとする

lui t0, $0880
lw t1, $1000(t0) //空きアドレス0x1000から n 倍したい値を t1 にロード(32bit)
beq t1, zero, END // t1 = 0(0倍)の時プログラム終了
nop //遅延スロット
mult t1, t2 // t1 * t2 を計算して結果をHI(上位 32bit )、LO(下位 32bit )レジスタに格納
mflo t4 //計算結果の下位 32bit を t4 レジスタに格納
mfhi t3 //計算結果の上位 32bit を t3 レジスタに格納
sw t4, $1004(t0) //計算結果確認用(上位 32bit )、0x1004にストア
sw t3, $1008(t0) //計算結果確認用(下位 32bit )、0x1008にストア
move t2, t3 // n 倍した結果の下位 32bit の値を倍加する前の値に上書き


または空きアドレスからロードしないで直接倍加する方法
addiu t1, zero, $nnnn // t1 に倍加したい n の値を代入
beq t1, zero, END // t1 = 0(0倍)の時プログラム終了
lui t0, $0880 //計算結果出力用にアドレスセット
mult t1, t2 // t1 * t2 を計算して結果をHI(上位 32bit )、LO(下位 32bit )レジスタに格納
mflo t4 //計算結果の下位 32bit を t4 レジスタに格納
mfhi t3 //計算結果の上位 32bit を t3 レジスタに格納
sw t4, $1004(t0) //計算結果確認用(上位 32bit )、0x1004にストア
sw t3, $1008(t0) //計算結果確認用(下位 32bit )、0x1008にストア
move t2, t3 // n 倍した結果の下位 32bit の値を倍加する前の値に上書き

これでシフト命令では無理だった奇数倍にも対応出来る


次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch