修改CS、IP指令

  • 事实:执行何处的指令,取决于CS:IP
  • 应用:可以通过改变CS、IP中的内容,来控制CPU要执行的目标指令
  • 问题:如何改变CS、IP的值?
  • 方法1:Debug中的R命令可以改变寄存器的值 – rcs、rip

    Debug 是调试手段,并非程序方式!

  • 方法2:用指令修改

    mov cs:2000
    mov ip:0000
    8086CPU不提供对CS和IP修改的指令!
    汇编 -2.5 - jmp
    ip希望是cpu自增长机制改变

转移指令jmp

  • 同时修改CS、IP的内容
    jmp段地址:偏移地址
    jmp 2AE3:3
    jmp 3:0B16
    功能:用指令总给出的段地址改变CS,偏移地址修改IP
  • 仅修改IP的内容
    jmp某一合法寄存器
    jmp ax(类似于mov IP,ax 当然,这条“类似”的指令是不存在的)(这里ax存的是下一条指令的偏移地址)
    jmp bx
    功能:用寄存器中的值改变IP

问题分析

汇编 -2.5 - jmp
假设,从20000H开始,执行的序列是:
汇编 -2.5 - jmp

  1. mov ax,6622
  2. jmp 1000:3
  3. mov ax,0000
  4. mov bx,ax
  5. jmp bx
  6. mov ax,0123H
  7. mov ax,0000
  8. mov bx,ax
  9. jmp bx

汇编 -2.5 - jmp
汇编 -2.5 - jmp

汇编 -2.5 - jmp
汇编 -2.5 - jmp

相关文章:

  • 2021-06-24
  • 2022-12-23
  • 2021-12-18
  • 2022-12-23
  • 2021-10-09
  • 2021-10-19
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-05-26
  • 2022-12-23
  • 2021-12-04
  • 2021-07-15
  • 2021-07-23
相关资源
相似解决方案