昨天在使用Debug工具的时候,想看看BIOS第一条指令的跳转之后是如何的。
在16位80x86的机器上,机器上电,第一条指令的地址在FFFF:0000处。我想尽管我在Win7的cmd命令中的虚拟8086环境下,但在这环境里应该和实际的实模式是差不多的,比如BIOS的所在的位置什么的。
于是使用debug
放心的输入-u ffff:0000
随便一看,恩,第一条指令的确是一个长跳转。再仔细一看,不对头啊,怎么还有FFFF:0011及之后的东东呢?按道理讲应该最后顶多是ffff:000f啊。
然后用d命令一看
前面5个字节的长跳转指令,跟着一些BIOS的信息,比如出厂时间等等,然后还真的有FFFF:000F之后的东西啊。
后来想想,难道地址回绕了?溢出之后当从0000:0000开始算起了?
那看一下0000:0000吧
![](http://hi.csdn.net/attachment/201109/11/1745677_1315704697jkiJ.jpg)
发现不对啊,似乎对应不起来,然后就搞不懂了。在网上搜索一番,发现了这个帖子。
转载上来(转载的内容是考虑的FFFF:FFFF的回绕,其实应该从FFFF&