1

わかりましたので、素数を見つけて出力する必要がある課題があります。

これはすでに完了していますが、今度は結果をファイルに出力する必要があります。

簡単に言えば、整数をファイルに出力するにはどうすればよいですか?

長い話

整数と文字列をコンソールに出力できるので、出力は次のようになります。

1.) 2
2.) 3 
3.) 5
...

文字/文字列をファイルに問題なく出力できますが、出力できるのは次のとおりです。

.)
.)
.)
....

MIPSアセンブリで整数を文字列に変換または保存する方法はありますか? 私の課題は MIPS バージョンの iota を実行することではないため、整数をファイルに出力するだけの簡単な方法があれば、洞察をいただければ幸いです。

このページを読みました: MIPS ファイル I/O の例

これが、文字列をファイルに出力する方法を学んだ方法ですが、プログラムで計算された整数を出力する方法については何も見つかりません。昨夜から簡単な解決策を探していましたが、それは私を逃れます。

これは最初の MIPS の割り当てです。ac プログラムを作成し、それを MIPS アセンブリに変換する必要がありました。経験があまりないので、助けていただければ幸いです。

前もって感謝します。


コンソールに表示されている内容をテキスト ファイルに反映させようとしていることがわかるように、ここで作業したいコードの一部を示します。MARS MIPS シミュレーターを使用しています。

FOR:
beq $t0, $t1, EndFOR
IF:
jal test_prime
bne $s1, 1, EndIF
addi $s0, $s0, 1        #Increment 'c'.

#Print 'c', the nth counted place of the found Prime Integer.
li $v0, 1
move $a0, $s0
syscall

sw $s0, buffer($0)

li $v0, 15
move $a0, $s7
la $a1, buffer
li $a2, 1
syscall

#Print '.) '
li $v0, 4
la $a0, dotP
syscall

li $v0, 15
move $a0, $s7
la $a1, dotP
li $a2, 3
syscall


#Print the Prime integer, 'i'.
li $v0, 1
move $a0, $t0
syscall

#Print a New Line.
li $v0, 4
la $a0, newL
syscall

li $v0, 15
move $a0, $s7
la $a1, newL
li $a2, 1
syscall
EndIF:

IF2:
beq $s0, 100, EndFOR        #Once 100 Prime Integers have been found, escape out of the 'For' loop.
EndIF2:             #Not Necessary, but just there to have a complete coding style.

addi $t0, $t0, 1            #Increment 'i'.
j FOR
EndFOR:
4

1 に答える 1

0

アセンブリとは、高度なプログラミングを評価することです。整数を1つずつ文字に変換して印刷してみてください。この目的のために、この疑似コードをアセンブリに変換できます (k は整数です)。

while(k){
    char c = 0x03|((k%10)&0x0f);
    push(c);
    k=k/10;
}
while(c=pop()){
    printf("%c",c);
}
于 2012-09-23T20:16:35.990 に答える