首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 汇编语言 >

关于王爽编译语言段地址*16+偏移地址的理解,请前辈指正

2013-01-05 
关于王爽汇编语言段地址*16+偏移地址的理解,请前辈指正2天前开始学习汇编,看到讲述通过段地址和偏移地址计

关于王爽汇编语言段地址*16+偏移地址的理解,请前辈指正
2天前开始学习汇编,看到讲述通过段地址和偏移地址计算物理地址的时候颇为疑惑。闲暇时候想了一下,是不是可以这样理解,请各位前辈指正一下。因为8086地址总线是20位,所以最大寻址为1M,而寄存器只有16位,所以要使得cpu可以寻到1M的内存,就用用2个寄存器来拼。我想不通的地方是:2个16位的寄存器最大可以拼出64KB*64KB的空间,这空间远远大于1M,这样用两个寄存器不是太浪费了嘛,用于段地址的那个寄存器是不是只用到了高位的4位?也就是说只要分16段(2的4次方)就能寻到1M的内存了。
求前辈指点,3Q
[解决办法]

引用:
引用:理解错了啊。地址以16进制显示的,4位16进制不就是16位的寄存器了吗?
有点不大理解你说的只要分16段是什么意思?
2的4次方只能访问到16个内存单元,一个内存单元是1byte。
我的概念就是一个段分配64KB内存,那只要16个段就能分配到1M的内存,只要16段就可以了,是这样吗?

分别以16个段起始地址寻址1M的内存没有问题。
[解决办法]
一头雾水!看后
看之前还明白呢 
lz意思不清楚!
“那只要16个段就能分配到1M的内存,只要16段就可以了”
[解决办法]
就是把段寄存器左移四位加上偏移地址   这就是Intel的规定 

热点排行