现在的位置: 首页 > 综合 > 正文

理解实模式下的逻辑地址

2018年03月30日 ⁄ 综合 ⁄ 共 387字 ⁄ 字号 评论关闭

80286时cpu里寄存器都是16(可访问0x0000-0xFFFF的内存地址)位的,要访问1MB的内存空间(0x00000-0xFFFFF)是不够的。为此提出了逻辑地址的概念。

逻辑地址是用段寄存器(CS,DS,ES,SS,FS,GS)和偏移地址寄存器(DI,SI,BX,IP)来表示的。将1M的内存分成16个段,每个段为64KB,16X64KB=1MB。

如80000h:0000h可以表示成8000h:0000h,即逻辑地址为20位。

又如CS=8A00h IP=001Bh

那么将要执行的代码地址 8A000h+001Bh=8A01Bh,所以有时段的地址不一定0000,1000,2000...;F000开头的。

只有是在1M地址内,段的开始地址segstart和偏移量offset必须满足:

1> segstart+offset<=0xFFFFFh

2> offset <=0xFFFFh

抱歉!评论已关闭.