zoukankan      html  css  js  c++  java
  • 操作系统

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

  • 相关阅读:
    POJ 1981 Circle and Points (扫描线)
    UVA 1514 Piece it together (二分图匹配)
    CodeForces 140D New Year Contest
    HDU 4863 Centroid of a Tree
    HDU 4865 Peter's Hobby
    HDU 4870 Rating
    HDU 4864 Task
    CodeForces 766E Mahmoud and a xor trip
    CodeForces 766D Mahmoud and a Dictionary
    CodeForces 767D Cartons of milk
  • 原文地址:https://www.cnblogs.com/jay--zhang/p/7421560.html
Copyright © 2011-2022 走看看