(1)
每个段的段首址是一个16位的二进制数,从0000 0000 0000 0000到1111 1111 1111 1111,
因此最多可以有2^16个段,而2^10=1K,所以最多可以分为64K个段,又因为储器1MB地址空间,所以每个段为1MB/64K=16B,即每个段均为16个字节
(2)
每个段的段内偏移地址是16位的二进制数,从0000 0000 0000 0000到1111 1111 1111 1111,因此每个段最大的空间是2^16B,即64KB,而分得的段的个数为1MB/64KB=16,所以最少可分为16个段,每个段均为64KB
由于8086/8088寄存器是16位的,能存储的最大值是2的16次方即是2^16=65536=64K
所以1MB地址空间分成64K份,每一份即是16个字节
同样1MB地址空间除以每段64K即为16个段
这段话的关键,首先得明白8086/8088寄存器是16位的(即2个字节)
然后得明白8086是怎样进行寻址的
8086是16位的,他的寻址能力是2的16次方,即64K,所以每个段的最大的范围是0000--FFFF
段寄存器是16位,指针寄存器也是16位
所以可分2的16次方个段,(正确) 每个段为16字???这个是什么意思呀???
段地址最小为0001H,加FFFFH偏移。第2位0002H,加偏移。
所以1M的空间要完全划分的话,最少分16个段,每个段的大小为FFFFH,即64KB。