内存,高分求解答

时间:2022-02-25 05:49:03
问题有许多,每个问题都有相当的分值,希望大家能帮帮我:
1、假定微机的RAM是32M字节数,则最后一个字节的八位十六进制数的地址是多少?

2、段和偏移量来标志地址,那18A3:5B27食指段的起始地址为18A30,这里为什么在对末尾多了个0?

3、在一个8086程序中,假定数据段寄存器DS的段号为23D1,且一条指令在该数据段的偏移量为7B86处取出一个字,则这个取出的字的五位十六进制数地址是多少?

4、在一个8086程序中,假定代码段寄存器CS包含的段号为014C,且指令指针的IPde内容为15FE,则下一条待取指令的五位十六进制数的地址是多少?


每题15分,谢谢帮我解答!

11 个解决方案

#1


1.0x01FFFFFF
2.段的起始地址要求在16字节的边界上对齐,因此最低4位始终为0
  为了节省空间在保存时省略了末尾的0
3.0x2B896
4.0x02ABE

#2


第一题:1F40000

#3


2楼的兄台,可以给个说明么?
我这样只要答案也没意思

#4


32M = 2^15
地址:0x7ffff-8

#5


还是不太懂,为什么是2的15次方?
那后面的问题呢?

#6


2、段和偏移量来标志地址,那18A3:5B27食指段的起始地址为18A30,这里为什么在对末尾多了个0?

段+偏移量来标志地址 的计算方式就是这样的:
段地址*16 + 偏移量 = 物理地址;

*16 的原因是 段地址总是在 16字节边界上进行分段的,
结果段地址的末位总是0。
在 16 位系统下, 无法表示 20 位的地址值,
于是通过分段,并舍弃末位,只保留高四位得到的结果。

#7


还是不太懂,为什么是2的15次方?
--------
位数决定内存的最大容量,也就是最大地址
32位机器最大内存支持2^32
32M的15位刚好

#8


还有3,4的问题?
期待...

#9


32M是2^25吧
并且地址是按字节连续的
不是按位连续的
所以不用减8

第二题jixingzhong(瞌睡虫·星辰)已经说的很清除了
后面两题套前面的公式就行了

#10


八位十六进制数的地址说明lz用的是32位机,则内存可寻址空间为2^32=4G。则第32m处的内存地址为 0x 01ff ffff;


#11


2、段和偏移量来标志地址,那18A3:5B27食指段的起始地址为18A30,这里为什么在对末尾多了个0?
============================================
16位寄存器,解决20位地址线,所以才分两个

#1


1.0x01FFFFFF
2.段的起始地址要求在16字节的边界上对齐,因此最低4位始终为0
  为了节省空间在保存时省略了末尾的0
3.0x2B896
4.0x02ABE

#2


第一题:1F40000

#3


2楼的兄台,可以给个说明么?
我这样只要答案也没意思

#4


32M = 2^15
地址:0x7ffff-8

#5


还是不太懂,为什么是2的15次方?
那后面的问题呢?

#6


2、段和偏移量来标志地址,那18A3:5B27食指段的起始地址为18A30,这里为什么在对末尾多了个0?

段+偏移量来标志地址 的计算方式就是这样的:
段地址*16 + 偏移量 = 物理地址;

*16 的原因是 段地址总是在 16字节边界上进行分段的,
结果段地址的末位总是0。
在 16 位系统下, 无法表示 20 位的地址值,
于是通过分段,并舍弃末位,只保留高四位得到的结果。

#7


还是不太懂,为什么是2的15次方?
--------
位数决定内存的最大容量,也就是最大地址
32位机器最大内存支持2^32
32M的15位刚好

#8


还有3,4的问题?
期待...

#9


32M是2^25吧
并且地址是按字节连续的
不是按位连续的
所以不用减8

第二题jixingzhong(瞌睡虫·星辰)已经说的很清除了
后面两题套前面的公式就行了

#10


八位十六进制数的地址说明lz用的是32位机,则内存可寻址空间为2^32=4G。则第32m处的内存地址为 0x 01ff ffff;


#11


2、段和偏移量来标志地址,那18A3:5B27食指段的起始地址为18A30,这里为什么在对末尾多了个0?
============================================
16位寄存器,解决20位地址线,所以才分两个