缺失值(MIPS)

时间:2017-12-31 07:38:23

标签: assembly mips qtspim

我想使用功能进行添加。我使用 MIPS-Simulator 例如:函数中的a + b和a + c。 我的代码如下:

  

.data

     

x:.word 5

     

y:.word 2

     

k:.word 9

     

nl:.asciiz" \ n"

     

的.text

     

.globl main

     

主要:

     

addi $ sp,$ sp,-12

     

sw $ ra,0($ sp)

     

sw $ s0,4($ sp)

     

sw $ s1,8($ sp)

     

jal C

     

移动$ s0,$ v0#我的期望= s0 中保存 $ v0 的值,同时 7

     

移动$ s1,$ v1#我的期望= s1 中保存 $ v1 的值,同时 14

     

li $ v0,1#打印值$ s1

     

移动$ a0,$ s0#我的期望没有实现:(

     

系统调用

     

li $ v0,4

     

la,$ a0,nl#只是换行符

     

系统调用

     

li $ v0,1#打印值$ s1

     

移动$ a0,$ s1#我的期望没有实现:(

     

系统调用

     

li $ v0,10

     

系统调用

     

lw $ ra,0($ sp)

     

lw $ s0,4($ sp)

     

lw $ s1,8($ sp)

     

addi $ sp,$ sp,12

     

jr $ ra

     

C:

     

addi $ sp,$ sp,-12

     

sw $ ra,0($ sp)

     

sw $ t1,4($ sp)

     

sw $ t2,8($ sp)

     

lw $ t1,x

     

lw $ t2,y

     

jal A

     

移动$ v0,$ v0#结果将 7 并保存在 $ v0 中,因为 x + y = 5 + 2 = 7 < /强>

     

li $ v0,0

     

lw $ t1,x

     

lw $ t2,k

     

jal A

     

移动$ v1,$ v0#结果将 14 并且还会保存在 $ v1 中,因为 x + k = 5 + 9 = 14

     

lw $ ra,0($ sp)

     

lw $ t1,4($ sp)

     

lw $ t2,8($ sp)

     

addi $ sp,$ sp,12

     

jr $ ra

     

A:这里将是一个附加功能

     

添加$ v0,$ t1,$ t2

     

jr $ ra

功能 A和C 已设置且无法删除,因此功能A 注册 $ v0 它也已经设定好了。当我运行我的代码时,结果将是:

  

14

     

14

应该产生价值:

  

7

     

14

问题:我做了什么?我的代码中缺少什么?

P.S:要更清楚地理解,请在我的代码中查看我的评论。

0 个答案:

没有答案