《汇编语言》学习笔记3——寄存器

 8086寄存器

1.CPU有14个寄存器:AX、BX、CX、DX、SI、DI、SP、BP、IP、CS、SS、DS、ES、PSW

  1.通用寄存器(数据寄存器):AX、BX、CX、DX。用于存放一般性的数据

    AX:作累加器用,是算术运算符的主要寄存器

    BX:基址寄存器

    CX:计数器

    DX:在做双精度运算时,用来与AX一起存放一个双字节操作数

  2.地址寄存器:指针、变址寄存器。(SI、DI、SP、BP)

    SI:源地址寄存器,用于存放源缓冲区的偏移地址

    DI:目的变址寄存器,用于存放目的缓冲区的偏移地址

    SP:堆栈指针寄存器,用于指出堆栈区的偏移地址

    BP:基址指针寄存器,用于指出堆栈去某个单元的偏移地址

  3.段寄存器:CS、DS、ES、SS

    CS:代码段寄存器,用于指出存放程序的代码段的段地址    CS:IP可标识其指向的内存单元里存放的数据是执行指令

    DS:数据段寄存器,用于指出存放数据的数据段的段地址    DS可标识其指向的内存单元里存放的数据是数据

    ES:附加段寄存器,用于指出存放附加数据的附加段的段地址

    SS:堆栈寄存器,用于指出堆栈去的堆栈段的段地址      SS::SP可标识其指向的内存单元为栈,可进行栈的操作  SS存放栈顶的段地址,SP存放栈顶的偏移地址。任意时刻SS:SP都指向栈顶

  4.控制寄存器:IP、FLAGS(PSW程序状态字)。控制程序的执行

    IP:指令寄存器,存放代码段的偏移地址、指出当前正在执行指令的下一条指令所在单元的偏移地址

    FLAGS标志寄存器的某位代表CPU的1个标志,表示CPU数为某种执行状态,最低位为D0,最高位为D15。

      8086CPU的标志寄存器有9个标志,分别为6个条件标志和3个控制标志

        1.条件码标志:

          CF  进位标志     当指令执行结果的最高位向前有进位时, CF=1,否则CF=0

          SF  符号标志     当指令执行结果的最高位(符号位)为负时,SF=1,否则SF=0

          ZF  零标志      当前指令执行结果为0时,ZF=1,结果不为0时,ZF=0

          OF  溢出标志     当指令执行结果有溢出(超出了数的表示范围)时,OF=1,否则OF=0

          AF  辅助进位标志   当指令执行结果的第3位(半字节)向前有进位时,AF=1,否则AF=0

          PF  奇偶标志     当指令执行结果中1的个数为偶数个时,PF=1,否则PF=0

        2.控制标志

          DF  方向标志     在执行串处理指令时,若设置DF=0,存储单元的地址寄存器的值自动增加,若设置DF=1,存储单元的地址寄存器的值自动减小

          IF  中断标志     设置IF=1,允许CPU响应可屏蔽中断,IF=0则不响应

          TF  陷阱标志     在DEBUG调试时,TF=1,采用单步执行方式,即进入陷阱 ,TF=0,正常执行程序

一个16位的寄存器可以存储一个16位的数据(即数据最大值为2的16次方减1,65535)

其中又可分为两个8位寄存器:H、L。后缀为H的是高8位寄存器(AH),L是低8位寄存器(AL)

一个8位寄存器存数据最大为2的8次方减1,255

 

8086CPU可一次性处理两种尺寸的数据:

字节(byte):一个字节由8个比特(bit)(即二进制位)组成,可存在8位寄存器中

字(word):一个字由两个字节组成,两个字节分别为这个字的高位字节和低位字节【字的存储和值相反,如:字值为1234H,在存储单元中先存34H(高字节),再存12H(低字节)】

 

2.16位结构的CPU特性:

  1.运算器一次最多处理16位的数据

  2.寄存器的最大宽度为16位

  3.寄存器和运算符之间的通路为16位

3.CPU中只能用指令读写的部件只有寄存器,MOV指令被称为传送指令可改变大部分寄存器的值,但不能用于设置CS、IP的值。

4.能改变CS、IP的内容的指令被统称为转移指令,最简单的修改CS、IP的指令:JMP指令

    JMP    段位移 :偏移地址  用指令中给出的段地址改CS,偏移地址修改IP

    只修改IP则可用:JMP  寄存器(合法)  用寄存器的值修改IP

5.CPU只认被CS:IP指向的内存单元的内容为指令6.DS寄存器用来存放段地址,用[内容]表示一个内存单元

转载于:https://www.cnblogs.com/Sayer/p/5345252.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值