好的,所以我有一个任务,我必须找到并打印素数。
我已经完成了,但现在我需要将结果打印到文件中。
长话短说,如何将整数打印到文件?
长篇故事
我可以将整数和字符串打印到控制台,所以我有这样的输出:
1.) 2
2.) 3
3.) 5
...
我可以将字符/字符串打印到文件中,但我可以打印的是:
.)
.)
.)
....
有没有办法在MIPS程序集中将intger转换或存储到字符串?我的任务不是做一个MIPS版本iota,所以如果有一个简单的输出整数到文件,我会很感激任何见解。
我已阅读此页:MIPS File I/O Example
这就是我学习如何将字符串打印到文件中,但是我找不到任何关于如何打印在程序中调用的intger的内容。我自昨晚以来一直在寻找一个简单的解决方案,但它让我感到厌烦。
这是第一个MIPS分配,我们必须编写一个c程序然后将其翻译成MIPS程序集,所以我没有太多的经验,所以任何帮助都会受到赞赏。
提前致谢。
以下是我想要处理的代码部分,因为您可以看到我正在尝试在文本文件中镜像控制台上的desiplayed。我正在使用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:
答案 0 :(得分:0)
大会就是欣赏高级节目。您应该尝试将整数逐个转换为字符并打印它们。为此,您可以将此伪代码转换为程序集(k是整数):
while(k){
char c = 0x03|((k%10)&0x0f);
push(c);
k=k/10;
}
while(c=pop()){
printf("%c",c);
}