汇编总结:8086cpu提供的各种寄存器

1.通用寄存器(16位的)

1.数据寄存器(4个16位寄存器;也可当作8个8位的寄存器去使用)

分为:累加器AX;基址寄存器BX;计数器CX;数据寄存器DX
4个16位的寄存器又可分为8个8位的数据寄存器(AH,AL,BH,BL,CH,CL,DH,DL)
CX寄存器既可以做数据寄存器,又可以在移位指令和串指令当中作计数器用
BX基址寄存器除可作数据寄存器外,还可放内存的逻辑偏移地址

2.指针寄存器和变址寄存器

指针和变址寄存器一般用来保存存放主存地址的偏移地址(即相对于段起始地址的距离),用于参与地址运算。

另外他们也可以作为16位通用寄存器存放操作数和结果)

指针寄存器分为:堆栈指针寄存器(SP),基址指针寄存器(BP)
变址寄存器分为:源变址寄存器(SI),目的变址寄存器(DI)
SI:source index DI:destination index

SP:指出当前在堆栈中栈顶的位置,入栈(PUSH)和出栈(POP)由SP给出当前栈顶的偏移地址
**BP:**指出要处理的数据在堆栈段的起始地址。特别值得注意的是:凡是包含BP的寻址方式中,其段地址由SS段寄存器提供,也就是说,该寻址方式是对堆栈区的存储单元进行寻址的。

**SI和DI:**在某些间接寻址方式中,用来存放段内偏移量的全部或者一部分。在字符串操作指令中,SI用作源变址寄存器,DI用作目的变址寄存器。

2.专用寄存器

1.段寄存器

在8086系统中,访存存储器的地址由两部分组成:段基址和偏移地址。段寄存器提供各个逻辑段的段基址并且指示当前使用的逻辑段。分为,数据段寄存器(DS),代码段寄存器(CS),堆栈段寄存器(SS),附加段寄存器(ES)

DS:提供当前程序中的数据所使用的数据所存放的段基址
**CS:**存放代码所在段的段基址,相应的偏移地址在IP中取得
**SS:**指出当前堆栈的底部地址,即存放堆栈段的段基址
**ES:**指出程序附加数据段的段基址,该段是串操作指令中的目的串所在的段。

2.控制寄存器

包含✨指令指针寄存器(IP)和标志寄存器(FLAGS)
🚩注意:此处的是:指令指针!寄存器,而不是指针寄存器,要分清

**指令指针寄存器IP:**用来存放下一条要执行的指令在代码段的偏移地址,程序员不能直接使用,它具有自动加1的功能。每当执行一次取指令操作,它将自动加1,总是指向下一条要取得指令在现行代码段得偏移地址,它与CS相结合,形成指向指令存放单元得物理地址,每取一个字节,IP加1,每取一个字,IP加2.

标志寄存器: 是一个16位得寄存器,但是实际上8086只用到9位。其中,6位是状态标志位,3位是控制标志位。

状态标志位:
CF:D7或D15有向上一位进位的情况,CF=1
ZF:结果全是0,ZF=1
OF:溢出,OF=1
PF:奇偶校验,奇校为0,偶校为1
SF:符号,负1正0
AF:辅助进位,D3上D4进位或D4向D3上的借位,AF=1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值