8086汇编:Debug调试,CS=073F, IP=0100,寄存器状态、物理地址计算及逻辑地址唯一性
{"title":"安装Debug,CS=073F,IP=0100,用r命令给出14个寄存器的状态:\u00a0\u00a02)计算当前要执行的指令的物理地址是多少?\u00a0\u00a03)此物理地址对应的逻辑地址是否唯一?请举例说明\u00a0\u00a04)当前代码段最后一个存储单元的物理地址是多少?\u00a0\u00a0提示:用CS和IP的值计算内容:1)使用r命令给出14个寄存器的状态:\nAX = 0000, BX = 0000, CX = 0000, DX = 0000\nSI = 0000, DI = 0000, SP = FFFE, BP = 0000\nCS = 073F, IP = 0100, SS = 0000, DS = 0000\nES = 0000, FLAGS = 0000\n\n2)要计算当前要执行的指令的物理地址,需要将CS(代码段寄存器)左移4位,然后加上IP(指令指针寄存器)的值。在这种情况下,物理地址 = (CS << 4) + IP = (073F << 4) + 0100 = 73F0 + 0100 = 73F00。\n\n3)此物理地址对应的逻辑地址不一定唯一。因为在实模式下,物理地址和逻辑地址是一样的。如果在段内有多个逻辑地址指向同一个物理地址,那么这个物理地址对应的逻辑地址就不是唯一的。\n\n举例说明:假设段内的第一个逻辑地址为0000:0100,第二个逻辑地址为0001:0000,它们都指向同一个物理地址73F00。\n\n4)当前代码段最后一个存储单元的物理地址可以通过将CS左移4位,然后加上FFFF(一个段内最大的偏移地址)来计算。物理地址 = (CS << 4) + FFFF = (073F << 4) + FFFF = 73F0 + FFFF = 83EEF。所以当前代码段最后一个存储单元的物理地址是83EEF。"}
原文地址: https://www.cveoy.top/t/topic/mufl 著作权归作者所有。请勿转载和采集!