5、什么是8086中的逻辑地址和物理地址?逻辑地址如何转换成物理地址?请将如下逻辑地址用物理地址表达: (1)FFFFh:0 (2)B821h:4567h
时间: 2024-06-04 16:09:56 浏览: 401
在8086处理器中,逻辑地址是由16位段地址和16位偏移地址组成的,总共32位。物理地址是指CPU直接访问内存时真实的内存地址。
逻辑地址通过分段机制转换成物理地址。具体来说,段地址左移4位,然后加上偏移地址就得到了物理地址。
(1) FFFFh:0的物理地址为FFFF0h。
(2) B821h:4567h的物理地址为BCE87h。
计算方法为:(0xB821 << 4) + 0x4567 = 0xBCF87. 然而要注意的是,由于8086处理器是16位的,因此物理地址只有20位(1MB),所以最高4位被丢弃了,得到0xBCE87h。
相关问题
段页式存储管理怎么进行逻辑地址和物理地址之间的转换?请举例说明
段页式存储管理将逻辑地址分为段号和页内偏移量两部分,其中段号用于定位段表中的某个段,页内偏移量用于定位该段中的某个页。而物理地址则分为页框号和页内偏移量两部分。
具体转换过程如下:
1. 将逻辑地址中的段号和页内偏移量分开。
2. 根据段号找到段表中对应的段描述符,其中包含了该段在物理内存中的起始地址以及页表的起始地址。
3. 将逻辑地址中的页号和页内偏移量分开。
4. 根据页表的起始地址和页号找到页表项,其中包含了该页在物理内存中的起始地址。
5. 将页表项中的物理地址和页内偏移量组合成物理地址。
举例说明:
假设逻辑地址为32位,其中高16位表示段号,低16位表示页内偏移量。物理地址也为32位,其中高16位表示页框号,低16位表示页内偏移量。
1. 假设逻辑地址为0x12345678,其中高16位为0x1234表示段号,低16位为0x5678表示页内偏移量。
2. 根据段号0x1234在段表中查找到该段在物理内存中的起始地址为0xABCDEF00,页表的起始地址为0x98765432。
3. 将页内偏移量0x5678分解为高10位和低10位,其中高10位表示页号,低10位表示页内偏移量。
4. 根据页号在页表中查找到相应的页表项,假设该页表项中的物理地址为0x11111111。
5. 将物理地址0x11111111和页内偏移量0x5678组合成物理地址0x11112378。
段页式存储管理怎么进行逻辑地址和物理地址之间的转换?
段页式存储管理是将一个程序的地址空间分成若干段,每个段再分成若干页的方式进行管理。在段页式存储管理中,逻辑地址由段号和页号两部分组成。
逻辑地址到物理地址的转换需要经过两步:
1. 段地址转换:根据逻辑地址中的段号,查找段表,得到该段的起始物理地址。如果段表项不存在,则发生段错误,导致程序中止。
2. 页地址转换:根据逻辑地址中的页号,查找页表,得到该页的物理地址。
这两个步骤可以通过硬件实现,具体实现方式如下:
1. 段地址转换:将逻辑地址中的段号作为段表的索引,从段表中读取对应的段描述符,其中包含了该段的起始地址和长度等信息。根据描述符中的信息,将逻辑地址中的段内偏移量加上段的起始地址,得到该地址在物理地址空间中的地址。
2. 页地址转换:将逻辑地址中的页号作为页表的索引,从页表中读取对应的页描述符,其中包含了该页的起始地址和长度等信息。根据描述符中的信息,将逻辑地址中的页内偏移量加上页的起始地址,得到最终的物理地址。
需要注意的是,在段页式存储管理中,页表和段表都是存放在内存中的数据结构,需要频繁地访问,因此需要使用快速的查找算法,例如哈希表或树形结构。
阅读全文