操作系统

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标志位等,都能够恢复到目标指令序列上次执行到这个位置时候的状态

原文地址:https://www.cnblogs.com/jay--zhang/p/7421560.html