返回列表 发帖

关于eip的疑惑

我想问下,eip是不是就是程序计数器呢,还是它的一部分呢?
再有就是,“每次cpu读取指令到指令缓冲区,相应的eip寄存器的值增加,增加大小的就是读取指令的字节大小(也可以说是长度)”,这个指令的字节大小是按照上次读取的指令字节大小来增加呢,还是按照即将读取的指令字节的大小。如果是按照上次读取的指令字节的大小来增加eip的值,那么这样的设计是不是很不合理,因为其一,如果读取不是顺序读取,那么这个eip的增加就没用啊,其次如果是顺序读取,那怎么能够保证按照上次的指令字节的大小,来读取下个指令就完全能够完整读取到下个指令呢(意思是下个指令比上个指令字节长)。如果是按照即将下次的指令字节的大小来增加eip的值,那么,这个又是靠什么来实现的,也就是eip怎么知道下次读取的指令字节的大小呢。难道是每次读取的指令字节的大小都一样的?长的程序的指令,被分成等同的几个2字节的指令来读取吗?

返回列表