Re: [理工] 计算机组织 资料转移指令

楼主: A4P8T6X9 (残废的名侦探)   2014-07-09 11:23:08
※ 引述《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上,就是答
案所展现的样子。
作者: hot4894 (hot4894)   2014-07-09 13:16:00
请问一下为什么(2)a是FFFFFF80阿不是直接把00000080存进去吗?
作者: john35452 (小杰)   2014-07-09 16:53:00
80在二进制中是负数,所以要作sign extension注意在这边填的80是十六进制,不是十进制
作者: hot4894 (hot4894)   2014-07-09 23:55:00
喔喔懂了感谢~

Links booklink

Contact Us: admin [ a t ] ucptt.com