汇编03

作者: guanjianhe | 来源:发表于2018-05-14 09:16 被阅读0次
  • 8086CPU在访问内存时要由相关部件提供内存单元的段地址和偏移地址,送入地址加法器合成物理地址。

  • 段地址在8086CPU的段寄存器中存放。8086CPU有4个段寄存器:CS、DS、SS、ES。

  • CS和IP是8086CPU中两个最关键的寄存器,它们指示了CPU当前要读取指令的地址。CS为代码段寄存器,IP为指令指针寄存器,从名称上我们可以看出它们和指令的关系。

  • 在8086PC机中,任意时刻,设CS中的内容为M,IP中的内容为N,8086CPU将从内存M×16+N单元开始,读取一条指令并执行。也可以这样表述:8086机中,任意时刻,CPU将CS:IP指向的内容当做指令执行。

  • 8086CPU的工作过程可以简要描述如下:

    1. 从CS:IP指向的内存单元读取指令,读取的指令进入指令缓冲器;
    2. IP=IP+所读取指令的长度,从而指向下一条指令;
    3. 执行指令。转到步骤1,重复这个过程。
  • 修改CS、IP的指令:jmp指令

  • 想同时修改CS、IP的内容,可用形如“jmp段地址:偏移地址”的指令完成。例:

    • jmp 2AE3:3,执行后:CS=2AE3H,IP=0003H,CPU将从2AE33H处读取指令。
    • jmp 3:0B16,执行后:CS=0003H,IP=0B16H,CPU将从00B46H处读取指令。
  • “jmp 段地址:偏移地址”指令的功能为:用指令中给出的段地址修改CS,偏移地址修改IP。

  • 若想仅修改IP的内容,可用形如“jmp 某一合法寄存器”的指令完成,如:

    • jmp ax,指令执行前:ax=1000H,CS=2000H,IP=0003H;指令执行后:ax=1000H,CS=2000H,IP=1000H
    • jmp bx,指令执行前:bx=0B16H,CS=2000H,IP=0003H;指令执行后:bx=0B16H,CS=2000H,IP=0B16H
  • “jmp 某一合法寄存器”指令的功能为:用寄存器中的值修改IP

  • jmp ax,在含义上好似:mov IP,ax

相关文章

  • 汇编03

    8086CPU在访问内存时要由相关部件提供内存单元的段地址和偏移地址,送入地址加法器合成物理地址。 段地址在808...

  • 我的学习笔记汇总(索引)

    汇编语言入门 01-电脑基础知识 02-CPU工作原理 03-内存访问 04-开始汇编编程 05-更加灵活的内存访...

  • 7-3 汇编学习笔记(2)

    2019_7_03 3.硬盘和显卡访问和控制 1)用户程序的结构 分段,段的汇编地址和段内汇编地址 一个规范的程序...

  • <安全攻防之汇编基础>

    &关于汇编基础请点击 <汇编一> <汇编二> <汇编三> <汇编四> <汇编五> <汇编六> <汇编七> <汇编八...

  • 汇编语言_03

    8086寻址方式 CPU访问内存单元时,要给出内存单元的地址,所有的内存单元都有唯一的地址,叫做物理地址 8086...

  • 03-Reference&汇编

    《C++文章汇总》[https://www.jianshu.com/p/bbd842438420]上一篇文章介绍了...

  • iOS逆向学习(arm64汇编入门)

    iOS汇编 iOS汇编语音有很多钟。常见的有8086汇编、arm汇编、x86汇编等等。 arm汇编 iOS的架构从...

  • ARM64汇编入门 - 汇编基础

    ARM64汇编入门 - 汇编基础ARM64汇编入门 - 汇编基础

  • 逆向笔记(三)-汇编指令

    汇编指令 针对汇编来说,汇编指令是必须了解的,而且汇编中汇编指令比较多,但是每一个汇编指令对应的机器码是固定不变的...

  • 汇编语言如何与高级语言混编

    汇编混编的两种方式(内联汇编 和 外链汇编) 内联汇编 asm();这是内联汇编,编译器可以直接运行asm ( 汇...

网友评论

      本文标题:汇编03

      本文链接:https://www.haomeiwen.com/subject/vkvbaxtx.html