汇编入门二(寄存器)

寄存器

  • 对程序员来说,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指向的内存单元的内容看做数据

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 8086汇编 本笔记是笔者观看小甲鱼老师(鱼C论坛)《零基础入门学习汇编语言》系列视频的笔记,在此感谢他和像他一样...
    Gibbs基阅读 38,044评论 8 114
  • 王爽汇编全书知识点大纲 第一章 基础知识 机器语言 汇编语言的产生 汇编语言的组成 存储器 cpu对存储器的读写 ...
    2c3ba901516f阅读 2,696评论 0 1
  • 汇编总结 汇编的发展史 机械语言 由0和1组成的机器指令(如:0101 0001 1101 0110) 汇编语言(...
    iChuck阅读 1,399评论 1 8
  • 编程语言的发展 机器语言由0和1组成 汇编语言(Assembly Language)用符号代替了0和1,比机器语言...
    阿凡提说AI阅读 4,577评论 0 15
  • 虽然我们不能改变我们的过去,我们却能改变对于我们过去的看法,这才是心智模式的伟大之处
    蒲公英annly阅读 134评论 0 1

友情链接更多精彩内容