0

在查看我过去的试卷时卡在一个问题上。问题是“以下说明有什么问题,如果有的话?”

.text
   dadd r2,r0,10
   j r3
   dsub r4,r1,N(r0)
4

1 回答 1

1

这取决于您使用的汇编程序。但是,如果我们假设您使用的是严格按原样查看指令的汇编程序:

dadd r2,r0,10

这些dadd指令将三个寄存器作为其操作数。对于r2,r0,10您将使用的操作数daddi(双字添加立即数)。


j r3

j指令需要一个绝对地址(即j some_label)。对于寄存器间接跳转,您将使用该jr指令。


dsub r4,r1,N(r0)

dadd,dsub也将三个寄存器作为其操作数。据我所知,没有任何变体dsub接受内存位置作为其操作数之一。该指令必须一分为二(例如ld r4,N(r0),后跟dsub r4,r1,r4)。

于 2013-08-19T10:46:41.043 回答