Aiopr 发表于 2020-4-11 23:15:39

汇编作业题求助

一个段不是最大容量不是64kb吗?,就是65536bit,这道题的(4)小题说N个字节,也就是8N bit,那么答案不应该是(8N)/(65536)向上取整吗?答案给出的解析里面,16代表啥呢?http://p2.so.qhmsg.com/t02565e8e0b45d25d71.jpg

人造人 发表于 2020-4-12 02:06:02

本帖最后由 人造人 于 2020-4-12 02:08 编辑

假设有 a、b、c 三个段
假设段 a 的段地址是 0,段 a 中有一个字节
那么段 b 的段地址是多少?很明显,至少也得是 1,因为 0 已经分配给段 a 了,段 b 的段地址肯定是不能为 0 了,如果段 a、b、c 紧挨着的话,段 b 的段地址就是 1
段 b 中有 17 个字节,偏移地址从 0 ~ 10h(包括 10h)
那么段 b 中第 0 个字节的物理地址是多少?
段 b 的段地址是 1,第 0 个字节的偏移地址是 0, 1:0 = 1 * 16 + 0 = 16 = 10h
段 b 的第 0 个字节的物理地址是 10h
段 a 紧挨着段 b,那么段 a 的实际物理地址空间就是
0:0 0:1 0:2 0:3 0:4 0:5 0:6 0:7 0:8 0:9 0:a 0:b 0:c 0:d 0:e 0:f
物理地址空间当然就是(上面是段+偏移的形式)
0 1 2 3 4 5 6 7 8 9 a b c d e f
f 的下一个地址是 10h,10h是段 b 的第 0 个字节,段 a 和 段 b 是紧挨着的,所以 10h 之前的内容都是段 a 的,段 a 中确实只定义了 1 个字节,但是其他 15 个字节没办法分配给其他段了
因为不能用段地址 0
请问,如何用段地址 + 偏移的形式表示物理地址 1 ?
只能是 0:1,只有这一种
请问,如何用段地址 + 偏移的形式表示物理地址 10h ?
0:10h                            0 * 16 + 16 = 16 = 10h
1:0   这个没有问题吧? 1 * 16 + 0 = 16 = 10h

如果要分配物理地址 10h,段地址 0,已经分配给其他段了,那么还可以使用段地址 1

我不知道这么说你能不能理解,如果你理解了,那么你也能写出段 c 中第 0 个字节的物理地址

人造人 发表于 2020-4-12 02:13:55

段 c 中第 0 个字节的地址是 3:0
3 * 16 + 0 = 48 = 30h
请问为什么不能是段地址 2,而是 3 ?

Aiopr 发表于 2020-4-12 10:17:19

a中一个字节,占据了0:0到0:f ,b中17个字节,大于了16,所以需要占据,1:0到2:f ,那么c开始的物理地址应该是3:0吗?

Aiopr 发表于 2020-4-12 10:17:54

人造人 发表于 2020-4-12 02:13
段 c 中第 0 个字节的地址是 3:0
3 * 16 + 0 = 48 = 30h
请问为什么不能是段地址 2,而是 3 ?


a中一个字节,占据了0:0到0:f ,b中17个字节,大于了16,所以需要占据,1:0到2:f ,那么c开始的物理地址应该是3:0吗?

人造人 发表于 2020-4-12 10:47:54

Aiopr 发表于 2020-4-12 10:17
a中一个字节,占据了0:0到0:f ,b中17个字节,大于了16,所以需要占据,1:0到2:f ,那么c开始的物 ...


页: [1]
查看完整版本: 汇编作业题求助