问题:某单元的逻辑地址是2345H:6789H求其物理地址?????
这个问题是要分情况的,不同架构类型的CPU,其寻址方式是不同的,楼主应该指明其硬件环境。 在Intel架构的CPU中,一个逻辑地址的前半部分表示段值,后半部分表示偏移量。
(1)、如果在80x86实模式下,2345h这个段值是段基址,它的物理地址 PA = 2345h * 10h(16d)+ 6789h = 29bd9h; (2)、如果是基于80x86保护模式,则要经过逻辑地址到线性地址的转换,再通过线性地址计算出物理地址。此时段寄存器中的段值是段选择子,它要在GDT或LDT中查找该段的起始地址,再与6789h相加就得到线性地址。如果此时未启动分页,那么这个线性地址也就是物理地址;如果启用分页管理,则用高20位查找页目录表和页表,低12位为页内偏移。 不过总体来说,无论是实模式还是保护模式,PA = 2345h * 10h(16d)+ 6789h = 29bd9h都适用。