Assembly 用mips求解二次函数

Assembly 用mips求解二次函数,assembly,mips,Assembly,Mips,我想用mips汇编做一个简单的程序来学习语言。我有函数ax²+bx。用户必须输入a、b和函数域。我想打印函数为零的值,但只打印域的整数。我认为最简单的方法是循环[x1,x2]中的所有整数并打印函数=0的值。我得到一个错误“未知系统调用268501060” 你试过调试它吗?单步执行,直到命中得到错误的系统调用,然后,查看$v0中的值。@ErikEidt我刚刚做了并修复了错误,但结果仍然是错误的,所以我想我弄乱了环井,这就是调试。直到每件事都是对的,它才起作用。但至少你取得了一些进展。 .d

我想用mips汇编做一个简单的程序来学习语言。我有函数ax²+bx。用户必须输入a、b和函数域。我想打印函数为零的值,但只打印域的整数。我认为最简单的方法是循环[x1,x2]中的所有整数并打印函数=0的值。我得到一个错误“未知系统调用268501060”


你试过调试它吗?单步执行,直到命中得到错误的系统调用,然后,查看$v0中的值。@ErikEidt我刚刚做了并修复了错误,但结果仍然是错误的,所以我想我弄乱了环井,这就是调试。直到每件事都是对的,它才起作用。但至少你取得了一些进展。
    .data
msg_read_a: .asciiz"dwse arithmo a:"
msg_read_b: .asciiz"dwse arithmo b:"
msg_read_x1: .asciiz"dwse diastima x1:"
msg_read_x2: .asciiz"dwse diastima x2:"

riza: .asciiz"h sunartish mhdenizetai sto: \n"

.text 
main:

li $v0,4
la $a0,msg_read_a    #α
syscall
li $v0,5
syscall
move $t0,$v0

li $v0,4
la $a0,msg_read_b    #β
syscall 
li $v0,5
syscall
move $t1,$v0

li $v0,4
la $a0,msg_read_x1    #διαστημα χ1
syscall
li $v0,5
syscall
move $t2,$v0

li $v0,4
la $a0,msg_read_x2     #διαστημα χ2
syscall
li $v0,5
syscall
move $t3,$v0

    move $t4, $t2 #πρωτο χ για επαναληψη
    
    
while:
    beq $t4, $t3, exit
    
    mul $t6,$t4,$t4  #x^2
    mul $t7,$t0,$t6 #a*x^2
    mul $t6,$t1,$t4   #b*x
    
    add $t8, $t7, $t6 #τ8 τελικη τιμη συναρτησης
    
    beq $t8,0,isioi #if(t8=0)
    
    isioi:
    li $v0, 1
    la $v0, riza
    syscall
    move $a0, $t8
    li $v0, 1
    syscall
    add $t4, $t4, 1
    j while
    
exit: 
    li $v0, 10
     syscall