Memory 如果8086的CS寄存器的值为0xA000,则相关段的物理地址范围是多少?

Memory 如果8086的CS寄存器的值为0xA000,则相关段的物理地址范围是多少?,memory,memory-address,cpu-registers,x86-16,segment,Memory,Memory Address,Cpu Registers,X86 16,Segment,正如标题所述,如果8086的CS寄存器的值为0xA000,我想知道相关段的物理地址范围是多少?左移4位 0xa0000+应用的任何值 因为cpu寄存器和其他值是16位的,所以您得到0xAxxxx,其中xxxx是16位的值。也就是说,段寄存器指定可以寻址的64k。通过这样的窗口设置,您可以获得20位的物理地址空间 有关更多信息,请参阅。从前,这是一种普遍的教学方式,但我想现在更难找到了。也许你可以通过亚马逊市场找到一些旧书。经过一番研究,我发现这是对这个问题的正确答案: 0xA0000+0xFFF

正如标题所述,如果8086的CS寄存器的值为0xA000,我想知道相关段的物理地址范围是多少?

左移4位

0xa0000+应用的任何值

因为cpu寄存器和其他值是16位的,所以您得到0xAxxxx,其中xxxx是16位的值。也就是说,段寄存器指定可以寻址的64k。通过这样的窗口设置,您可以获得20位的物理地址空间


有关更多信息,请参阅。从前,这是一种普遍的教学方式,但我想现在更难找到了。也许你可以通过亚马逊市场找到一些旧书。

经过一番研究,我发现这是对这个问题的正确答案:

0xA0000+0xFFFF=0xAFFF(段的最高物理地址)

0xA0000+0x0000=0xA0000(段的最低物理地址)


所以物理地址的范围是0xA0000-0xAFFFF。

对不起,我更改了我的问题,我实际需要的是相关段的物理地址的范围。顺便问一下,值/偏移量来自哪里?可寻址范围为64K。偏移量是指您所做的任何表示CS基准的操作。跳转到一个绝对地址。为什么我会得到否决票,这是一个合理的问题。