译码器译码发现是0F,不是单字节指令,还需要继续分析后面的字节,继续取第二个字节:
但注意,第二个字节是位于不可执行的页面,CPU检查发现后会抛出页错误异常:
如果我们发现CPU抛了异常,并且异常的地址指向了第二个页面的地址,那么我们可以断定:这条指令的长度肯定不止一个字节。
既然不止一个字节,那就往前挪一下,放两个字节在可执行页面,从第三个字节开始放在不可执行页面,继续这个过程。
译码器译码发现是0F,不是单字节指令,还需要继续分析后面的字节,继续取第二个字节:
但注意,第二个字节是位于不可执行的页面,CPU检查发现后会抛出页错误异常:
如果我们发现CPU抛了异常,并且异常的地址指向了第二个页面的地址,那么我们可以断定:这条指令的长度肯定不止一个字节。
既然不止一个字节,那就往前挪一下,放两个字节在可执行页面,从第三个字节开始放在不可执行页面,继续这个过程。
Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.