作者A4P8T6X9 (残废的名侦探)
看板Grad-ProbAsk
标题Re: [理工] 计算机组织 资料转移指令
时间Wed Jul 9 11:23:08 2014
※ 引述《lineup730 (lineup)》之铭言:
: 想要请问以下这个练习
: http://ppt.cc/2Az0
: 1.平时我们储存在暂存器中的资料,不是应该是一个"值(value)"吗? 为什麽这题题目
: 叙述是说"the register $t1 contains address 0x1000 0000"暂存器包含一个记忆
: 体位址?
存的东西会因为解释不同而代表不同意义,比方说也可以 add $t3 $t1 $t1,则 $t1 中
的 0x1000 0000 就变成值了,而在本题的使用方法则当作 address 用。
: 2.第一小题题目中,最後一段提到 Assume that the memory location pointed to $t2
: is initializes to 0xFFFF FFFF
: 小弟不太懂题目这里说的,将$t2初始化成 0xFFFF FFFF是什麽意思?题目一开始不是
: 有说$t2的位址是 0x1000 0010了吗? 还是这个初始化的意思就是把 $t2改成
: 0xFFFF FFFF?
这个的意思是,把 $t2 中的记忆体位址指向之内容改成 0xFFFF FFFF,换句话说就是
0x1000 0010 中存 0xFFFF FFFF。
: 3.另外书上有对於lb、sb 这两个指令的说明
: lb:(load byte)指令会从记忆体载入一个位元组资料至所指定暂存器最右边的位元组,
: 而暂存器左边的bits则视记忆体载入的这个位元组资料是正数还是负数,若正数则
: 填0,若为负数则填1。
: sb:(store byte)指令会将所指定暂存器最右边的位元组存入记忆体。
: 关於以上这两个指令的叙述,小弟看了许久还是不了解他的意思!
: 想要麻烦大大们,希望可以指导小弟 第一小题(a、b)该如何解?(希望有详细解题步骤)
首先,记忆体是 byte 指向的,也就是说 1000 0000 -> 12
1000 0001 -> 34
1000 0002 -> 56
1000 0003 -> 78
所以,从 1000 0000 这个位址取一个 byte 相当於拿到 12,然後把它存到 $t0 的最右边
之後把 $t0 中的值,换句话说,就是 0000 0012,存到 $t2 指向之位址,(a)中是 sw 也
就是存一个 word,把整个 0000 0012 存进去,所以答案就是 0000 0012。
而 (b) 中,是存一个 byte 到指定的 address,根据上面的记忆体指向,$t2 所指向的其
实是,第一个 FF,相当於把 $t0 中之最右边的 byte (12),存到 第一个 FF上,就是答
案所展现的样子。
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 221.120.0.137
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/Grad-ProbAsk/M.1404876191.A.148.html
1F:→ hot4894:请问一下为什麽(2)a是FFFFFF80阿 07/09 13:16
2F:→ hot4894:不是直接把00000080存进去吗? 07/09 13:17
3F:推 john35452:80在二进位中是负数,所以要作sign extension 07/09 16:53
4F:→ john35452:注意在这边填的80是十六进位,不是十进位 07/09 16:56
5F:→ hot4894:喔喔懂了感谢~ 07/09 23:55