2016-10-28 5 views
0

私はクラスプロジェクトに取り組んでいますが、私は何をするには、 "整数を入力してください: (+、*、 - 、/)」というメッセージがポップアップしたときに表示されます。誰かがこのコードでpleaselookして、私が間違っていることを教えてもらえますか?最初の命令が印刷されますが、文字入力のエラーメッセージが表示されます。私のQTSPIMシミュレータは、このコードを実行するとエラーと表示されます

が本当に入力1の整数と1つのオペレータへの質問はどのような、私はこのことができます願ってい

.data 
prompt: .asciiz "Please enter an integer\n" 
message: .asciiz "Please enter an operator (+, - , * , /):" 
usercharacter: .space 2 
.text 
.globl main 

main: 
li $v0, 4   #system call code for printing a string is 4 
la $a0, prompt  #adress of string is argument 0, to print string 

syscall    # telling the system to execute the action 

li $v0, 5    # system call for reading and displaying input 
syscall    
move $t1, $v0    # store input one into register $a1 

li $a0, message 
li $v0, 4 
syscall 

la $a0,usercharacter 
li $a1, 2  #allocating a space for 2 caracters 
li $v0 12 
syscall 

li $v0, 4   #system call code for printing a string is 4 
la $a0, prompt  #adress of string is argument 0, to print string 

syscall    # telling the system to execute the action 

li $v0, 5    # system call for reading and displaying input 
syscall     
move $t2,$v0    #print the prompt message for the user to input 
li,$v0,10 
syscall 
+1

_ _ **何**エラーメッセージ "私はERROメッセージを取得しますか"?また、システムコール12( 'read_character')を使っているところでは、あなたが何をしているのか誤解していると私は信じています。 – Michael

+0

エラーメッセージは「0x0040003cで非命令を実行しようとしています」です。私のコードがしようとしているのは、ユーザーから文字を読み込むことです。私はどこかでそのコードが12であると読んでいます。私はそれを正しく使っていないかもしれません。それをどう使うか教えていただけますか?お返事をありがとうございます。 – TINA15

+0

あなたが投稿したコードは、それが組み立てられるようには見えません。たとえば、「メイン」というラベルはありません。 SPIMで利用可能なシステムコールについては、[こちらを参照](https://www.doc.ic.ac.uk/lab/secondyear/spim/node8.html)を参照してください。 – Michael

答えて

0

それを感謝

(+、 - 、*、/)した後、第2 integer.Hereがありますコード。

.data 

input1: .asciiz "Please enter an integer: " 
input2: .asciiz "Please enter an operator(+, -, *, /): " 
input3: .asciiz "Enter second value: " 
newline: .asciiz "\n" 

.text 
.globl main 
main: 

li $v0, 4 
la $a0, input1 
syscall       #printing input 1 

li $v0, 5 
syscall 
           #reading and storing first value 
move $t1, $v0 

li $v0, 4 
la $a0, input2 
syscall       #printing input 2 

li $v0, 12 
syscall       #reading operator 
move $t9, $v0     #storing operator 

li $v0, 4 
la $a0, newline 
syscall 

li $v0, 4 
la $a0, input3 
syscall       #printing input 3 
li $v0, 5 
syscall 
            #reading and storing second value 

exit: 
li $v0, 10 
syscall        # ending main 

おかげ

関連する問題