逻辑地址和物理地址如何转换?
2 个回答
一句话来说:逻辑地址左移四位加偏移地址就是物理地址(题主随便翻一本微机原理都有)
具体怎么操作,这里给个实例:
首先要清楚一点,逻辑地址=段地址:偏移地址
具体运算:段地址×16(左移四位,也就是2的四次方,相当于乘16)+偏移地址= 物理地址(可以理解为段地址末尾补一个零)
举例:逻辑地址是1000H:0001H
那么物理地址为1000H×16+0001H=10001H
做题的小技巧就是因为地址本身一般都是十六进制数,所以你只需要把段地址左移一位(这里的位是数学上的个十百千位,不是二进制的01位)末尾补0再和偏移地址加起来就是物理地址了
存储器的物理地址:CPU寻找某个地址单元时(简称寻址)需要给出该单元的20位地址编码。
存储器的逻辑地址:由段基址(段寄存器的内容)和偏移地址两部分构成。
CPU将1MB的存储空间分成若干个逻辑段,每个逻辑段对应一片连续的存储空间,其长度任意,但最大不超过64KB。
当要访问逻辑段内的某一单元时,只要给出逻辑段的起始地址以及该单元与起始地址之间的距离(又称偏移量,或偏移地址,以字节数计量),即可确定其物理地址。
逻辑段可在整个1MB存储空间内浮动,即可重定位在不同的位置,但逻辑段的起始地址必须能被16整除,即段起始地址必须是XXXX0H的形式。
段起始地址的高16位称为段基址,它在访问存储器之前被置于某个段地址寄存器中。
CPU访问存储器时,根据所执行的操作,选择某个段寄存器,将其中的内容左移4位形成20位地址的高16位(低4位自动添0),然后通过20位地址加法器再与16位偏移量相加,形成对应的物理地址。