- 1 名前:デフォルトの名無しさん [2006/05/24(水) 01:43:34 ]
- アセンブラ全般に関するスレッドです。
【前スレ】 アセンブラ… ヽ(゚∀゚)ノフォーウ! pc8.2ch.net/test/read.cgi/tech/1132761638/ 過去ログは>>2辺り
- 191 名前:あや [2006/06/25(日) 13:18:40 ]
- こんにちは!
今学校でMIPSのシミュレータを勉強してます★ それで、「N掛けるNの掛け算表表示プログラム」 を出力するプログラム(Nは入力して与える)を書けという課題を出されたのですが、 全くわかりません>< 誰か助けてください! 先生がくれたメインルーチン部分は
- 192 名前:あや [2006/06/25(日) 13:19:28 ]
- #timesTable.asm-- N掛けるNの掛け算表表示プログラム、Nは入力して与える。
#使用レジスタ $v0 - syscallパラメータ 及び 戻り値 # $a0 - syscallパラメータ 及び サブルーチンprintValue呼び出し用引数1 # $a1 - サブルーチンprintValue呼び出し用引数2 # $s0 - 掛け算用の変数1 # $s1 - 掛け算用の変数2 # $s2 - カウントダウンループ制御用変数、$s0と対で、$s0が1増えると$2が1減る # $s3 - カウントダウンループ制御用変数、$s1と 対で、$s1が1増えると$3が1減る # $s4 - いくつまで表を出力するかをいれておくための変数 # $t0からt4までをテンポラリレジスタとして利用
- 193 名前:あや [2006/06/25(日) 13:20:44 ]
- .text
main: li $v0,5 #整数入力のためにシステムコール番号 syscall #5を$v0に格納 move $s4 $v0 #大きさを$s4に格納する li $s0,1 move $s2,$s4 #外側の変数を初期化する loop1: li $s1,1 move $s3,$s4 #内側の変数を初期化する loop2: move $a0 $s0 move $a1 $s1 jal printValue #値を出力するサブルーチンを呼び出す jal print SP addi $s1,$s1,1 #掛ける数を増やす addiu $s3,$s3,-1 #ループ変数を減らす bne $s3,$zero,loop2 #ループ変数が0になるまでループする jal printfCRLF #改行を出力する addi $s0,$s0,1 #掛ける数を増やす addiu $s2,$s2,-1 #ループ変数を減らす bne $s2,$zero,loop1 #ループ変数が0になるまでループする li $v0,10 syscall #プログラム終了 です。誰かわかる人いませんか?
- 194 名前:マイク ◆yrBrqfF1Ew mailto:sage [2006/06/25(日) 14:12:45 ]
- >全くわかりません><
>誰か助けてください! 俺もよくわからないから 今度デートしようよ。
- 195 名前:あや [2006/06/25(日) 14:25:13 ]
- わからないならやだーー笑。
- 196 名前:デフォルトの名無しさん mailto:sage [2006/06/25(日) 14:25:54 ]
- あやちゃんのフルネームは
綾小路源五郎
- 197 名前:あや [2006/06/25(日) 15:12:20 ]
- みんな使えない!!
パソコンに関してはすごいのかと思ったらぜんぜんじゃんか!
- 198 名前:マイク ◆yrBrqfF1Ew mailto:sage [2006/06/25(日) 15:16:01 ]
- #printValueの中身は引数かけて表示
#printSPはスペース表示 #printCRLFは改行表示 .data SPACE: .asciiz " " CRLF: .asciiz "\r\n" .text printValue: mult $t0, $a0, $a1 li $v0, 1 move $a0 $t0 syscall jr $ra printSP: li $v0, 4 la $a0, SPACE syscall jr $ra printCRLF: li $v0, 4 la $a0, CRLF syscall jr $ra
- 199 名前:デフォルトの名無しさん mailto:sage [2006/06/25(日) 15:37:21 ]
- お題はプログラムを出力するプログラムじゃないの?
- 200 名前:デフォルトの名無しさん mailto:sage [2006/06/25(日) 16:16:58 ]
- >>197
馬鹿だなあ お前のようなネカマに使われたくないだけだよ(w
- 201 名前:あや [2006/06/25(日) 19:30:05 ]
- >198
ありがとうございます♡→ܫ←♡ まだ動かないですけど、かなり助かりました! mult $t0, $a0, $a1 ^ のところでsyntax errorが出るんですよね〜↓ なんでだろう? でもマイクさんすごいです!!
- 202 名前:デフォルトの名無しさん mailto:sage [2006/06/25(日) 19:53:52 ]
- ♡→ܫ←♡
- 203 名前:デフォルトの名無しさん mailto:sage [2006/06/25(日) 19:59:27 ]
- → ←
ܫ ♡ ♡ ܫ ♡
- 204 名前:あや [2006/06/25(日) 20:32:54 ]
- (´^ิu^ิ`)
- 205 名前:デフォルトの名無しさん mailto:sage [2006/06/25(日) 21:06:24 ]
- 「mult」ってアセンブラ命令なのか?
- 206 名前:デフォルトの名無しさん mailto:sage [2006/06/25(日) 21:30:25 ]
- >190
お前は俺の言っている意味が全然解ってない。 メモリアクセス>>(超えられない壁)>>HDDアクセス>>>回線 だと言っている。 リクエスト数が多いなら、IOアクセス量の問題だから なおの事アセンブラ化での高速化では解決しない。 更に言うなら、そんなシステムをデバッグの困難なアセンブラで書き起す事自体がネタとしか思えない。
- 207 名前:マイク ◆yrBrqfF1Ew mailto:sage [2006/06/25(日) 21:43:13 ]
- >>201
じゃmultをmulに変えてみてくれ。 >でもマイクさんすごいです!! 感謝の気持ちは電話番号でのみ受け取るよ。
|

|