8086CPU给出物理地址的方法

2024-12-19 00:43:06
推荐回答(1个)
回答1:

一个寄存器16位,访问的最大内存太小,只有111111111111111(二进制)=64K(十进制)是吧,怎么办?幸亏CPU提供了一种机制:物理内存(实际地址)=段基址*16+偏移地址来增大内存访问(虽然很少人用汇编出这么大的程序,也要预防万一),你看CPU是这样的:段基址*16,段寄存器是16位,乘以16(十六进制)=10000(二进制)=1左偏移4位,这时你看一下,若段基址为64K(十进制)=111111111111111(二进制)乘以16,就是左偏移4位,就等于1111111111111110000(二进制)=1024k(十进制)=1M了。看见了吧,增加这机制很有好处,访问的地址大了!虽然这很不现实,但是,CPU增加这种特性,对于数据访问很方便的!