首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MIPS ADDIU混淆

MIPS ADDIU混淆
EN

Stack Overflow用户
提问于 2016-07-19 06:38:12
回答 1查看 2.4K关注 0票数 0

我在单周期MIPS处理器上做一个作业,我对附加指令有点困惑。

在这个网站上,作为我的参考,作者声明立即签名将被扩展

代码语言:javascript
复制
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

如果我有以下说明

代码语言:javascript
复制
   lui      $3,0x1001
   addiu    $3,$3,0x8010

我创建了我的数据路径,这个符号扩展了我将得到的

代码语言:javascript
复制
$3 := 0x1001_0000
$3 := 0x1001_0000 + 0x1111_8010 = 0x1000_8010

但根据PCSpim的说法,这是不正确的,我应该

代码语言:javascript
复制
$3 := 0x1001_8010  

我不明白为什么我需要签署extend,从我所理解的情况来看,如果我做了类似addiu $1, $1, -10的事情,它应该被视为addiu $1, $1, 10,因为它是没有签名的。

那么,为什么它说我应该签署-延长即时价值?

EN

回答 1

Stack Overflow用户

发布于 2016-07-19 07:23:07

spim中,

代码语言:javascript
复制
addiu    $3,$3,0x8010

是一个伪操作,并被认为是由于0x的原因,addiu指令由于符号扩展而不能执行的无符号加法的愿望。

因此,spim生成:

代码语言:javascript
复制
ori    $1,$0,0x8010
addu   $3,$3,$1

mars中,顺序是:

代码语言:javascript
复制
lui    $1,0
ori    $1,$1,0x8010
addu   $3,$3,$1
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38451154

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档