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.段的起始地址要求在16字节的边界上对齐,因此最低4位始终为0
为了节省空间在保存时省略了末尾的0
3.0x2B896
4.0x02ABE
#2
第一题:1F40000
#3
2楼的兄台,可以给个说明么?
我这样只要答案也没意思
我这样只要答案也没意思
#4
32M = 2^15
地址:0x7ffff-8
地址:0x7ffff-8
#5
还是不太懂,为什么是2的15次方?
那后面的问题呢?
那后面的问题呢?
#6
2、段和偏移量来标志地址,那18A3:5B27食指段的起始地址为18A30,这里为什么在对末尾多了个0?
段+偏移量来标志地址 的计算方式就是这样的:
段地址*16 + 偏移量 = 物理地址;
*16 的原因是 段地址总是在 16字节边界上进行分段的,
结果段地址的末位总是0。
在 16 位系统下, 无法表示 20 位的地址值,
于是通过分段,并舍弃末位,只保留高四位得到的结果。
段+偏移量来标志地址 的计算方式就是这样的:
段地址*16 + 偏移量 = 物理地址;
*16 的原因是 段地址总是在 16字节边界上进行分段的,
结果段地址的末位总是0。
在 16 位系统下, 无法表示 20 位的地址值,
于是通过分段,并舍弃末位,只保留高四位得到的结果。
#7
还是不太懂,为什么是2的15次方?
--------
位数决定内存的最大容量,也就是最大地址
32位机器最大内存支持2^32
32M的15位刚好
--------
位数决定内存的最大容量,也就是最大地址
32位机器最大内存支持2^32
32M的15位刚好
#8
还有3,4的问题?
期待...
期待...
#9
32M是2^25吧
并且地址是按字节连续的
不是按位连续的
所以不用减8
第二题jixingzhong(瞌睡虫·星辰)已经说的很清除了
后面两题套前面的公式就行了
并且地址是按字节连续的
不是按位连续的
所以不用减8
第二题jixingzhong(瞌睡虫·星辰)已经说的很清除了
后面两题套前面的公式就行了
#10
八位十六进制数的地址说明lz用的是32位机,则内存可寻址空间为2^32=4G。则第32m处的内存地址为 0x 01ff ffff;
#11
2、段和偏移量来标志地址,那18A3:5B27食指段的起始地址为18A30,这里为什么在对末尾多了个0?
============================================
16位寄存器,解决20位地址线,所以才分两个
============================================
16位寄存器,解决20位地址线,所以才分两个
#1
1.0x01FFFFFF
2.段的起始地址要求在16字节的边界上对齐,因此最低4位始终为0
为了节省空间在保存时省略了末尾的0
3.0x2B896
4.0x02ABE
2.段的起始地址要求在16字节的边界上对齐,因此最低4位始终为0
为了节省空间在保存时省略了末尾的0
3.0x2B896
4.0x02ABE
#2
第一题:1F40000
#3
2楼的兄台,可以给个说明么?
我这样只要答案也没意思
我这样只要答案也没意思
#4
32M = 2^15
地址:0x7ffff-8
地址:0x7ffff-8
#5
还是不太懂,为什么是2的15次方?
那后面的问题呢?
那后面的问题呢?
#6
2、段和偏移量来标志地址,那18A3:5B27食指段的起始地址为18A30,这里为什么在对末尾多了个0?
段+偏移量来标志地址 的计算方式就是这样的:
段地址*16 + 偏移量 = 物理地址;
*16 的原因是 段地址总是在 16字节边界上进行分段的,
结果段地址的末位总是0。
在 16 位系统下, 无法表示 20 位的地址值,
于是通过分段,并舍弃末位,只保留高四位得到的结果。
段+偏移量来标志地址 的计算方式就是这样的:
段地址*16 + 偏移量 = 物理地址;
*16 的原因是 段地址总是在 16字节边界上进行分段的,
结果段地址的末位总是0。
在 16 位系统下, 无法表示 20 位的地址值,
于是通过分段,并舍弃末位,只保留高四位得到的结果。
#7
还是不太懂,为什么是2的15次方?
--------
位数决定内存的最大容量,也就是最大地址
32位机器最大内存支持2^32
32M的15位刚好
--------
位数决定内存的最大容量,也就是最大地址
32位机器最大内存支持2^32
32M的15位刚好
#8
还有3,4的问题?
期待...
期待...
#9
32M是2^25吧
并且地址是按字节连续的
不是按位连续的
所以不用减8
第二题jixingzhong(瞌睡虫·星辰)已经说的很清除了
后面两题套前面的公式就行了
并且地址是按字节连续的
不是按位连续的
所以不用减8
第二题jixingzhong(瞌睡虫·星辰)已经说的很清除了
后面两题套前面的公式就行了
#10
八位十六进制数的地址说明lz用的是32位机,则内存可寻址空间为2^32=4G。则第32m处的内存地址为 0x 01ff ffff;
#11
2、段和偏移量来标志地址,那18A3:5B27食指段的起始地址为18A30,这里为什么在对末尾多了个0?
============================================
16位寄存器,解决20位地址线,所以才分两个
============================================
16位寄存器,解决20位地址线,所以才分两个