主题:两个16位寄存器来访问1M的内存空间 问题
bidong
[专家分:0] 发布于 2009-09-02 10:31:00
各位老师,请问“存储器分段的内存管理方法怎么实现用两个16位寄存器来访问1M的内存空间?”请知情者详细解答,谢谢![em2]
回复列表 (共3个回复)
沙发
我是大喊三 [专家分:3010] 发布于 2009-09-05 12:14:00
CS和IP吧.CS左移四位再+IP,就形成20位的物理地址(16位机有20位地址线),就刚好能访问1MB的内存.
板凳
强强 [专家分:4740] 发布于 2009-09-19 06:24:00
16位寄存器最多访问64K地址空间,20位地址线能提供1M地址空间,想用16位寄存器访问1M空间就想出了内存分段的方法.
物理地址(最多1M)=段地址*16+偏移地址
汇编里左移一位相当于乘2,左移4位相当于乘16
也就是说每16字节为一段,一共有64K段
当你提供了段地址与地址计算机会用地址加法器求物理地址,也可以直接求出物理地址访问
3 楼
miaoyong [专家分:760] 发布于 2009-10-01 23:04:00
任意2个寄存器都可以,我觉得可以在教材程序动态,静态重定位章节里看看!换有,结合操作系统
看看,存储管理这一章节,例如:经典的页式存储!怎么用简单高效的方法,访问更大的存储空间!
我也得去复习一下啊!
我来回复