1.寄存器:
CS:EIP寄存器
指令指针寄存器
ip(16位)或eip(32位)专门用来存放下一条即将执行的机器指令的偏移地址
ip的值在执行完一条指令后自动递增,指令的大小不同,其大小是1~6字节。
cs和ip或cs和eip一起构成了下一条即将执行的指令的完整地址。
ip和eip寄存器是唯一即不能直接读出,也不能直接写入的寄存器。
MOV指令
MOV指令是传输指令,MOV就是传送的意思(连续执行),例如我要将一个数据传送到某个寄存器
JMP系列指令
跳转指令: 分为相对转移和绝对跳转。绝对转移是直接跳转到内存地址 。相对跳转是跳转到X字节后的位置在计算时候跳转指令和目的地址的数据都不计算在内
CPU通过CS:EIP寄存器的值确定下一条指令的位置,但是CPU并不允许直接使用MOV指令来更改EIP的值,必须通过JMP系列指令、CALL/RET指令、或INT中断指令来实现代码的跳转;在指令序列间切换的时候,除了更改EIP之外,我们还要保证代码可能会使用到的各个寄存器的值,尤其是栈指针SS:ESP,以及EFLAGS标志位等,都能够恢复到目标指令序列上次执行到这个位置时候的状态