我是 Mips Assembly 的新手,我想编写一个计算二次函数根的程序。我找到了判别式,但现在我想检查是否 >0、<0 或 =0 并找到 x1,x2。我不知道如何找到判别式的根源。我搜索了 sqrt,但我认为这个版本不支持该命令。我正在使用 qtspim。编辑:根必须是整数
.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:"
akuro: .asciiz"h sunartish den mhdenizetai"
midenizetai: .asciiz"h sunarthsh midenizetai"
.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
mul $t5,$t1,$t1
mul $t6,$t1,0 #b^2
li $t7,4 #+4
mul $t7,$t7,$t6
sub $t8,$t5,$t7 #τ8=διακρινουσα
bgt $t8,0, mega
blt $t8,0, mikro
beq $t8,0, isioi
mega: mul $t5,$t1,-1 #-b
syscall
j exodos
iso: mul $t5,$t1,-1 #-b
mul $t6,$t0,2
div $t7,$t5,$t6
syscall
j exodos
exodos: li $v0, 10
syscall