我在单周期MIPS处理器上做一个作业,我对附加指令有点困惑。
在这个网站上,作为我的参考,作者声明立即签名将被扩展
Description:
Adds a register and a sign-extended immediate value and stores the result
in a register
Operation:
$t = $s + imm; advance_pc (4);
Syntax:
addiu $t, $s, imm
Encoding:
0010 01ss ssst tttt iiii iiii iiii iiii如果我有以下说明
lui $3,0x1001
addiu $3,$3,0x8010我创建了我的数据路径,这个符号扩展了我将得到的
$3 := 0x1001_0000
$3 := 0x1001_0000 + 0x1111_8010 = 0x1000_8010但根据PCSpim的说法,这是不正确的,我应该
$3 := 0x1001_8010 我不明白为什么我需要签署extend,从我所理解的情况来看,如果我做了类似addiu $1, $1, -10的事情,它应该被视为addiu $1, $1, 10,因为它是没有签名的。
那么,为什么它说我应该签署-延长即时价值?
发布于 2016-07-19 07:23:07
在spim中,
addiu $3,$3,0x8010是一个伪操作,并被认为是由于0x的原因,addiu指令由于符号扩展而不能执行的无符号加法的愿望。
因此,spim生成:
ori $1,$0,0x8010
addu $3,$3,$1在mars中,顺序是:
lui $1,0
ori $1,$1,0x8010
addu $3,$3,$1https://stackoverflow.com/questions/38451154
复制相似问题