汇编语言<王爽>第二章寄存器

本文介绍了8086处理器中的14个寄存器,特别是通用寄存器AX, BX, CX, DX的结构,它们每个可以分为两个独立的八位寄存器使用。内容还涉及8086如何存储字节和字,以及在运算过程中高位字节的处理方式,并通过例子解释了不同情况下的数据运算结果。" 136283679,11219767,物奇ENC算法开关接口修改指南,"['语音识别', '人工智能', '音频处理', '算法修改', '开发指南']

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

  1. 8086的寄存器有14个。

分别为:AX,BX,CX,DX,SI,DI,SP,BP,IP,CS,SS,DS,ES,PSW

  1. 通用寄存器
    8086的所有寄存器都是16位的,可以存放两个字节。AX,BX,CX,DX这几个寄存器通常存放一般性数据,又称为通用寄存器。

由于8086的上一代cpu寄存器都是8位的为了保持向上兼容,使上代的cpu编写的程序稍加修改即可以在8086上运行。所以8086的通用寄存器每一个都可以分为两个独立运行的八位寄存器来用
AX=AH+AL
BX=BH+BL
CX=CH+CL
DX=DH+DL
例如在AX寄存器中存入100111000100000即4E20H,则在AH和AL上分别位01001110和00100000即4EH和20H

3字在寄存器中的存储
出于对兼容性的考虑,8086一次可以处理两种尺寸的数据

字节:记为byte。一个字节由8bit组成,可以存放在八位寄存器中
字:记为word。一个字由两个字节组成,这两个字节分别称为这个字的高位字节和低位字节

一个字可以存放在16位的寄存器中,即这个字的高位和低位分别存放在寄存器的高八位和低八位中。
例如:一个字节型数据20000,存放在AX寄存器中,AH和AL分别存放了他的高八位和第八位,这个字节型数据可以看出20000,也可以看出两个独立的字节型数据分别为78和32

例:AX里存放了8226H,如果执行add ax 8226H会发生什么?
ax=ax+8226H=8226H+8226H=1044CH,但由于8086的寄存器为16位即只能存放四位十六进制的数所以高位的1不能保存在ax中,所以ax中的数据位044CH。
例:ax中存放了00C5H,如果执行add al,93H 会发生什么?
al=al+93H=C5+93H=158H,但al为低八位寄存器即只能存放两个16进制的数据所以高位1丢失,ax为0058H
(注:这里的丢失只是指进位值不能在八位寄存器中保存,不是cpu真的丢弃这个进位值)

说明al是作为一个独立的八位寄存器来使用的,和ah没有关系,cpu在执行这条指令时会认为ah和al是两个不相关的寄存器

例:ax中存放了00C5H,如果执行add ax 93H结果为?
cpu在执行这条指令时只会把ax当成一个16位寄存器来进行16位运算,即ax=ax+93H=0158H
(注:在进行数据传送或运算时,要注意指令的两个操作对象的位数应该是一致的,否则会报错)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小学五年级在读的蒟蒻

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值