Используйте упрощение, чтобы использовать наименьшее количество регистров - PullRequest
0 голосов
/ 25 сентября 2019

Я пытаюсь переопределить программу mips, используя упрощение, чтобы использовать наименьшее количество временных регистров.

#Input:
#  a, b, c, d
#Register Association
#   s0 = a
#   s1 = b
#   s3 = c
#   s4 = d
###########################################
#Output:
# $t0 = a + a
# $t0 = a + a
# $t1 = b + c
# $t2 = a + a
# $t1 = b + c
# t3 = d - a
# t5 = a - b 
# t6 = a - b - d - a

# ВЫЧИСЛЕНИЕ s0, s1, s2

move $t0, $s0
add $t0, $t0, $t0 #t0 = s0 + t0 = 2a
add $t0, $t0, $t0 #t0 = s0 + t0 = 4a
add $t1, $s1, $s3 #t1 = s1 + s3 = b + c
add $t2, $s0, $s0 #t2 = s0 + s0 = 2a 
add $t1, $t1, $t2 #t1 = t1 + t2 = b +c + 2a

sub $t3, $s4, $s1 #t3 = s4 + s1 = d - b
sub $t5, $t0, $t1 #t5 = t0 + t1 = 4a - b + c + 2a 
sub $t6, $t5, $t3 #t6 = t5 + t3 = (4a - b + c + 2a) - (d  - b)

move $s0, $t6
...