【汇编语言】寄存器相关知识总结

本文详细解释了8086CPU中的寄存器结构,包括通用寄存器、段寄存器、标志寄存器和指令指针寄存器的功能。同时介绍了8086处理物理地址的方法以及字的存储方式(小端模式),并探讨了CPU的栈机制,重点围绕16位CPU的内存管理展开。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

什么是寄存器?

寄存器是CPU内部用来存放数据的一些小型存储区域,用来暂时存放参与运算的数据和运算结果。8086CPU有14个寄存器

8086的寄存器组分为8个通用寄存器,4个段寄存器、1个标志寄存器和1个指令指针寄存器,他们均为16位

通用寄存器(可以分成高8位和低8位两个独立的寄存器,例如AH与AL):

  • AX、BX、CX、DX(数据寄存器)
  • SI、DI(变址寄存器)
  • SP、BP(指针寄存器)

段寄存器:

  • CS、DS、SS、ES 

标志寄存器:FLAG 

指令指针寄存器:IP 

8086CPU给出物理地址的方法

16位的8086CPU有20位的地址总线,所以采用在内部用2个16位地址合成的方法来形成一个20位的物理地址。

物理地址 = 段地址*16 + 偏移地址 

注: 段地址*16就是16位段地址左移一位。

段寄存器

存储器分段,每个段不超过64K个字节。段寄存器用来保存段地址。8086CPU设定了4个16位段寄存器:CS代码段寄存器、DS数据段寄存器、SS堆栈段寄存器、ES附加段寄存器。

DS寄存器

寄存器DS通常用来存放要访问数据的段地址。注意,不能使用mov指令直接将数据移入段寄存器中,例如:

MOV DS,1000H 

正确的指令应该是用一个寄存器进行中转:

MOV BX,1000H

MOV DS,BX 

字的传送

一个字等于两个字节。 存储一个字或双字,8086采用“小端方式”,即:低地址存放低位字节、高地址存放高位字节。

CPU提供的栈机制

8086CPU中,寄存器SS和SP分别用于存放栈顶的段地址和偏移地址。当栈空时,SS:SP指向栈空间最高地址单元的下一个单元。 

 

 

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值