在一段没有任何跳转指令的程序中,超出64K的部分将不会被执行 如果指令中没有跳转指令,段地址就不会改变,而偏移地址就会随着指令的执行进行自动修改,虽然内存没有段的概念,但是cpu在执行的过程中,是遵循"段地址*16+偏移地址"来确定物理地址的,当偏移地址达到最大值时(这时候该段的大小不一定是64k)段地址仍旧不变,而偏移地址会继续自动修改,这时候偏移地址就会出现所谓的"溢出"现象,而不会继续往下执行超出最大偏移地址的那部分内存单元.
------------------
回复:
可以通过mov指令修改cs的值,如:mov bx,2000H ; mov cs,bx,这样没有jmp指令也可以执行超过64K的代码。 |