作者jojoboy0115 (jojo)
看板Grad-ProbAsk
标题[理工] 张凡 计组 28页练习
时间Fri Jul 20 22:12:51 2018
https://imgur.com/cvU02Yj
题目如图
请问在(1)时,
a.
lb $t0,0($t1)→这时候$t0的值是0x00000012
sw $t0,0($t2)→这时候0x10000010 地址的值就变成0x00000012
是这样吗?
我想问
b.
lb $t0,0($t1)→这时候$t0的值也是0x00000012
sb $t0,0($t2)→这时候0x10000010 地址的值为什麽就变成0x12FFFFFF ?
我看课本写 sb(store byte) 指令会将所指定暂存器最右边的位元组存入记忆体
怎麽会出现FF? 如果是题目上 Assume that the memory..... $t2
is initialized to 0xFFFFFFFF 那在 a.的时候的值 为什麽不是 0xFFFFFF12?
再麻烦各位先进解答疑惑,先谢谢大家~
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 125.224.101.19
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Grad-ProbAsk/M.1532095974.A.FD8.html
1F:→ y2j60537: a是sw 一次store一个word(4个byte) 所以ffffffff会被覆 07/20 22:30
2F:→ y2j60537: 盖过去 b则是sb 一次store一个byte 所以会将最右边的 07/20 22:30
3F:→ y2j60537: 一个byte:12 存入t2 一样遵守big endian 所以t2记忆体 07/20 22:30
4F:→ y2j60537: 位置最小的byte:最左边的ff 会被12覆盖 07/20 22:30
5F:推 hamt5821: 因为sb只写入了一个byte啊 07/20 22:38
6F:推 EXPCDR: a.对的是这样。b.因为a的sw是一次放一个word也就是4个byt 07/21 08:09
7F:→ EXPCDR: es所以将暂存器的16进位8个数字全数放入记忆体位址0x1000 07/21 08:09
8F:→ EXPCDR: 0010因而将原记忆体内容全部覆盖 07/21 08:09
9F:→ jojoboy0115: 谢谢楼上各位的解说! 07/23 20:44
10F:推 ironkkai: (2)a.有打错吗?是0x00000080吗 07/28 19:04