作者yoz4ni (yoooooz)
看板Grad-ProbAsk
标题[理工] 计组p28
时间Sat Oct 19 15:13:08 2019
想请问一下b的栏位要怎麽看
以第一个为例,载入1个byte时00010010是+18 所以之後左边要补零$t0 ->0x00000012
写入1个byte时把最右边的1byte(12)存入$t2,所以变成0xFFFFFF12
不知道哪个部分理解错了
谢谢
https://i.imgur.com/shly5Dt.jpg
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 140.125.222.162 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Grad-ProbAsk/M.1571469190.A.4EA.html
2F:→ tayashot: 忆体位址低的载入$t0暂存器最右边,所以store byte把$t 10/19 18:55
3F:→ tayashot: 0暂存器存入记忆体时也要从记忆体低的位址开始存,你会 10/19 18:55
4F:→ tayashot: 写这样是因为从高的记忆体位址开始存,把记忆体位址画 10/19 18:55
5F:→ tayashot: 出来就比较好懂了° 10/19 18:55
6F:→ tayashot: 可以把它想成是little endian的存取方式 10/19 19:05
7F:→ tayashot: 如果图片看不清楚我可在传一张清楚一点的 10/19 19:24
8F:推 mi981027: 与其说sb从低位开始存,不如说 0x1000 0010本来就是指某 10/19 20:20
9F:→ mi981027: 一个"byte"的位置了 10/19 20:20
10F:→ mi981027: 如果今天指定0x1000 0011那就会存到他的下一个byte 10/19 20:20
11F:→ mi981027: 另外 MSB从低位记忆体开始存本身就是big endian 10/19 20:20
12F:→ mi981027: 不能想成little endian 加上MIPS也是big endian 10/19 20:20
14F:→ tayashot: 说用little endian会不会比较好记 都是从最右边载入记 10/19 21:19
15F:→ tayashot: 忆体 10/19 21:19
16F:推 mi981027: 哦哦哦懂t大的意思了 是指sb把LSB (12)存到低位记忆体 10/19 21:40
17F:→ mi981027: 的情况像是little endian的存法吗 10/19 21:40
18F:→ mi981027: 不过我倾向於认为sb是把多於1 byte的所有bit忽略就是了 10/19 21:40
19F:→ mi981027: 怕会有混淆哈哈 10/19 21:40
20F:→ yoz4ni: 存到$t0之後要store byte不是要从记忆体低的位址开始吗 10/19 22:21
21F:→ yoz4ni: 那$t0 -> 0x00000012 最低位置不是x之後的2个00吗 10/19 22:23
22F:→ yoz4ni: 高低位置判断有点搞不清楚OAO 10/19 22:25
23F:推 mi981027: 不是欸 是12,你把t0存的数值跟他该放到的地址搞混了 10/19 23:59
24F:→ mi981027: 这里t0里的0x0000 0012是一个数值,他该存到0x0000 0000 10/19 23:59
25F:→ mi981027: 这个地址 10/19 23:59
27F:→ mi981027: 讨论数值的顺序时讲的是MSB, LSB 讨论记忆体位置时才会 10/20 00:04
28F:→ mi981027: 讲高低位 10/20 00:04
29F:推 tayashot: mi大的图解超清楚\⊙▽⊙/~ 10/20 06:32
30F:→ yoz4ni: 所以从记忆体load时是从记忆体低位置载入,存到t0时是变 10/20 15:22
31F:→ yoz4ni: 数值,那如果是lh的话,t0会长怎样啊,是0x00001234罗? 10/20 15:25
32F:→ mi981027: 没错 10/20 16:11
33F:→ yoz4ni: 清楚了 感谢回答(,,・ω・,,) 10/20 22:18