MIPS程序设计
我对大学过去的一篇论文中的一个问题感到非常困惑。详情如下: 执行以下MIPS后,寄存器$s1中的值是多少 汇编代码MIPS程序设计,mips,Mips,我对大学过去的一篇论文中的一个问题感到非常困惑。详情如下: 执行以下MIPS后,寄存器$s1中的值是多少 汇编代码 li $t0, 0x1 li $s0, 0x0 li $s1, 0xa5a5a5a5 loop: and $t1, $t0, $s1 beq $t1, $zero, skip addi $s0, $s0, 1 skip: sll $t0, $t0, 1 # Shift left logical bne $t0,
li $t0, 0x1
li $s0, 0x0
li $s1, 0xa5a5a5a5
loop: and $t1, $t0, $s1
beq $t1, $zero, skip
addi $s0, $s0, 1
skip: sll $t0, $t0, 1 # Shift left logical
bne $t0, $zero, loop
(a) 0x10
(b) 0xA5A5
(c) 0x0
(d) 0x5A5A
(e) 0x1
给出的答案是A——据我所知,s1美元的价值在最初申报后没有改变——那么情况如何呢?我原以为是B?这显示了QTSpim:
这显示了PCSpim:
是的,给出的答案是B,因为,
$s1
仅用于在$s1
和$t0
之间进行和操作,$s1
没有改变。意识到我做了一些愚蠢的事情-给出的“正确”答案实际上是A。但肯定是B,对吗?也许是考试中的一个输入错误,这个问题应该是问$s0
的最终值(看起来应该是0x10)?