[理工] 计组-load store 内存与暂存器位址

楼主: mpyh12345 (嘉义金城武)   2021-08-04 23:27:55
先上题目,图源是mage的笔记(应该是)
https://imgur.com/FRxPh40
感觉应该是蛮基本的问题但是读到有点昏头想上来求救一下
想请问:
(1)
上半部那边,lb from 100,意思是把address 100那个byte的内容抓出来读进右边暂存器,
所以暂存器那边,最右边就是low byte,所以后面三个byte就补sign。
然后sb to 100,意思就是把暂存器里面的low byte存回去内存address 100的地方
这部分的理解不知道对不对。
(2)
然后是下半部的部分,这里开始有点乱掉...
如果今天指令是lh from 100/sh to 100,那内存跟暂存器的关系是怎么对应的?
还请版上大神帮我解惑 感谢
作者: kkk99923 (sakamama)   2021-08-04 23:51:00
(1)对的,(2)先说sh to 100:store half-word也就是存两个bytes到addr.100的位址 由于采用Big-endian(最大字节放在最低内存位址)所以会是[15:8]先放在100,[7:0]放在101;反之lh form 100就是从100的位址读取两个bytes放到register,再用有号数(1/0)扩充至32bit.
楼主: mpyh12345 (嘉义金城武)   2021-08-05 22:13:00
没考虑到顺序问题 感谢
作者: hankchang805 (ISO_SwaggyHank)   2021-08-06 21:13:00
补充一下这个也会因为endian不同而有不同的结果唷

Links booklink

Contact Us: admin [ a t ] ucptt.com