0

我是 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
4

0 回答 0