美文网首页
汇编入门二(寄存器)

汇编入门二(寄存器)

作者: BigBowen | 来源:发表于2018-03-01 14:06 被阅读17次

寄存器

  • 对程序员来说,CPU中最主要部件是寄存器,可以通过改变寄存器的内容来实现对CPU的控制

  • 不同的CPU,寄存器的个数、结构是不相同的(8086是16位结构的CPU)

  • 8086有14个16位寄存器:


    8086寄存器

通用寄存器

  • AX、BX、CX、DX这4个寄存器通常用来存放一般性的数据,称为通用寄存器(有时也有特定用途)
  • 通常,CPU会先将内存中的数据存储到通用寄存器中,然后再对通用寄存器中的数据进行运算
  • 假设内存中有块红色内存空间的值是3,现在想把它的值加1,并将结果存储到蓝色内存空间
    • CPU首先会将红色内存空间的值放到AX寄存器中:mov ax,红色内存空间
    • 然后让AX寄存器与1相加:add ax,1
    • 最后将值赋值给内存空间:mov 蓝色内存空间,ax


      image.png
  • AX、BX、CX、DX这4个通用寄存器都是16位的, 上一代8086的寄存器都是8位的,为了保证兼容, AX、BX、CX、DX都可分为2个独立的8位寄存器来使用
    • H代表高位寄存器
    • L代表低位寄存器


      image.png

段寄存器

  • CS为代码段寄存器,IP为指令指针寄存器,它们指示了CPU当前要读取指令的地址, 任意时刻,8086CPU都会将CS:IP指向的指令作为下一条需要取出执行的指令
  • 指令的执行过程
    1.从CS:IP指向的内存单元读取指令,然后放入指令缓存器
    2.改变IP指针(IP = IP + 所读取指令的长度)
    3.执行缓存器中的指令,然后又跳回步骤1,重复执行这个过程
    具体步骤如下图所示:


    image.png
    image.png
    image.png
    image.png
    image.png
    image.png
    image.png
    image.png
    image.png
    image.png
    image.png
    image.png
    image.png
    image.png
    image.png

    在内存或者磁盘上,指令和数据没有任何区别,都是二进制信息,那么如何区分指令与数据呢?
    CPU将CS:IP指向的内存单元的内容看做指令
    CPU将DS指向的内存单元的内容看做数据

相关文章

  • 有关汇编相关参考博客

    汇编之常识(一)汇编基础 CPU等硬件结构 数据总线 地址总线 控制总线 汇编之寄存器(二)寄存器 数据地址寄存器...

  • 汇编入门二(寄存器)

    寄存器 对程序员来说,CPU中最主要部件是寄存器,可以通过改变寄存器的内容来实现对CPU的控制 不同的CPU,寄存...

  • IOS arm64常用的汇编

    导论 生成汇编文件 寄存器 arm64 汇编条件域 arm64 汇编指令 总结 1. 生成汇编文件 2. 寄存器 ...

  • ARM64 学习

    iOS汇编 真机 arm64汇编,GNU 模拟器 x86, AT&T 汇编 寄存器 指令 堆栈 通用寄存器 64b...

  • 汇编基础(五)状态寄存器 、条件码标识位

    引言 在汇编基础(二)CPU寄存器已经说到过寄存器,作为一个刚学习汇编的人来说,有可能会在后面在补充很多以前所缺乏...

  • Windows汇编(2)Win64汇编

    Win64汇编 - 寄存器

  • 汇编(二) -- 寄存器

    前言 最近准备学习汇编,然后在B站上看到叫iOS小贤的作者发的视频挺不错,打算跟着学,文章是看视频的笔记,最后有原...

  • 00-汇编语言

    程序的本质 寄存器与内存 编程语言的发展 汇编语言的种类 常见的汇编指令 寄存器 有16个常用寄存器rax、rbx...

  • 认识ARM64汇编

    [TOC] 之前说过学习汇编就是学习寄存器和指令,查看代码请连接真机。 寄存器 在arm64汇编中寄存器是64bi...

  • 汇编基础

    汇编指令速查 汇编中各寄存器的作用4个数据寄存器(EAX、EBX、ECX和EDX)2个变址和指针寄存器(ESI和E...

网友评论

      本文标题:汇编入门二(寄存器)

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