云文档网 - 专业文章范例文档资料分享平台

汇编语言程序设计_东大函授0(2)

来源:网络收集 时间:2024-04-29 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xuecool-com或QQ:370150219 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

3. 8086内部寄存器 8086内部寄存器

通用寄存器组通用寄存器( 通用寄存器(8个)可分为两组: 可分为两组: 数据寄存器(4个); 数据寄存器( 地址指针和变址寄存器(4个)。 地址指针和变址寄存器( (1)数据寄存器 通用寄存器AX 、 BX 、 CX和 DX称为数据寄存器 通用寄存器 AX、 BX、 CX 和 DX 称为数据寄存器 , 称为数据寄存器, 可用来存放16位的数据或地址 也可把它们当作八个8 位的数据或地址。 可用来存放16位的数据或地址。 也可把它们当作八个8 位寄存器( AH 、 AL、 BH 、 BL 、 CH、CL、 DH、 DL) 位寄存器 ( AH、 AL、 BH、 BL、CH 、 CL 、 DH、 DL) 来使用,这时只能存放8位数据,而不能用来存放地址。 来使用 , 这时只能存放8位数据, 而不能用来存放地址 。

寄存器名 AX,AL

AH AL

BX

CX CL DX

特 殊 用 途 在输入/ 在输入/输出指令中作数据寄存器用 在乘法指令中, 在乘法指令中,存放被乘数或乘积 在除法指令中, 在除法指令中,存放被除数或商数 LAHF指令中 指令中, 在LAHF指令中,作目标寄存器用 在十进制运算指令中作累加器用 XLAT指令中作基址寄存器用 在XLAT指令中作基址寄存器用 在间接寻址中作基址寄存器用 XLAT指令中作基址寄存器用 在XLAT指令中作基址寄存器用 在串处理和LOOP指令中作计数器用 在串处理和LOOP指令中作计数器用 在移位/ 在移位/循环移位指令中作移位次数计数器用 字乘法/ 字乘

法/除法指令中存放乘积高位或被除数高位或余数 在间接寻址的输入/ 在间接寻址的输入/输出指令中作地址寄存器用

(2)地址指针和变址寄存器 包括SP、BP、SI、DI四个 位寄存器 四个16位寄存器。 包括SP、BP、SI、DI四个16位寄存器。 可以在运算过程中存放操作数 , 但只能以字 ( 16位 ) 可以在运算过程中存放操作数, 但只能以字( 16 位 为单位使用。 为单位使用。 常用在段内寻址时提供偏移地址: 常用在段内寻址时提供偏移地址: SP ( Stack Pointer ) 称 为 堆 栈 指 针 寄 存 器 , BP Pointer)称为基址指针寄存器, (Base Pointer)称为基址指针寄存器,它们都可以与 SS 寄存器联用确定堆栈段中的某一存储单元的地址 。 SS寄存器联用确定堆栈段中的某一存储单元的地址 寄存器联用确定堆栈段中的某一存储单元的地址。 SP用来指示栈顶的偏移地址 , BP可作为堆栈区中的一 SP用来指示栈顶的偏移地址 BP可作为堆栈区中的一 用来指示栈顶的偏移地址, 个基地址以便访问堆栈。 个基地址以便访问堆栈。 SI(Source Index)源变址寄存器和DI(Destination SI( Index)源变址寄存器和DI( Index)目的变址寄存器:它们一般与DS联用 Index)目的变址寄存器:它们一般与DS联用,用来确 联用, 定数据段中某一存储单元的地址。 定数据段中某一存储单元的地址。

寄存器名

SI DI BP SP

特 殊 用 途 在字符串处理指令中作源变址寄存器用 在间接寻址中作变址寄存器用 在字符串处理指令中作目标变址寄存器用 在间接寻址中作变址寄存器用 在间接寻址中作基址指针用 在堆栈操作中作堆栈指针用

段寄存器组

8086CPU的BIU中设置 8086CPU的BIU中设置4个16位段寄存器: 中设置4 16位段寄存器 位段寄存器: 代码段寄存器CS(Code Segment) 代码段寄存器CS( Segment) 数据段寄存器DS(Data Segment) 数据段寄存器DS( Segment) 附加数据段寄存器ES(Extra Segment) 附加数据段寄存器ES( Segment) 堆栈段寄存器SS(Stack Segment) 堆栈段寄存器SS( Segment)

设置段寄存器的原因: 设置段寄存器的原因: 由于8086CPU可直接寻址的存储器空间是 字节 由于8086CPU可直接寻址的存储器空间是1M字节, 可直接寻址的存储器空间是1M字节, 需要20位地址码 位地址码。 CPU所有的内部寄存器都只有16 所有的内部寄存器都只有 需要20位地址码。而CPU所有的内部寄存器都只有16 用这些寄存器只能直接寻址64K字节 字节。 位,用这些寄存器只能直接寻址64K字节。 为此把1M字节的存储空间分成许多逻辑段, 为此把1M字节的存储空间分成许多逻辑段,每段最 字节的存储空间分成许多逻辑段 长为64k字节 这

些逻辑段可在整个存储空间中浮动。 字节, 长为64k字节,这些逻辑段可在整个存储空间中浮动。 于是用段寄存器给定各个逻辑段的首地址的高16位 于是用段寄存器给定各个逻辑段的首地址的高16位,被 称为段地址。 称为段地址。

总之, 总之 , 汇编程序一般将源程序分成四个逻 辑段, 代码段CS 、 数据段DS 、 堆栈段SS 和 辑段 , 即 代码段 CS、 数据段 DS、 堆栈段 SS和 附加段ES。 附加段ES。CS→

代码段 数据段 堆栈段 附加段

CS:存放代码段的段基地址。 CS:存放代码段的段基地址。 DS:存放数据段的段基地址。 DS:存放数据段的段基地址。 SS:存放堆栈段的段基地址。 SS:存放堆栈段的段基地址。 ES:存放附加段的段基地址。 ES:存放附加段的段基地址。

DS→ SS→ ES→

控制寄存器组 (1)指令指针寄存器IP(Instruction Pointer) 指令指针寄存器IP( Pointer) 8086CPU 中设置一个 位指令指针寄存器 , 8086CPU中设置一个 16位指令指针寄存器 IP, 用来 中设置一个16 位指令指针寄存器IP 存放将要取出的下一条指令在代码段中的偏移地址。 存放将要取出的下一条指令在代码段中的偏移地址。 在程序运行过程中,BIU可修改 中的内容 可修改IP中的内容, 在程序运行过程中,BIU可修改IP中的内容,使它始 终指向将要取出的下一条指令。 终指向将要取出的下一条指令。 注意: 注意: IP与CS联用, 表示代码段中要处理的指令的逻辑地址; IP与CS联用 表示代码段中要处理的指令的逻辑地址; 联用, IP和CS由系统执行,用户一般不能使用或修改。 IP和CS由系统执行 用户一般不能使用或修改。 由系统执行,

(2)标志寄存器FLAGS 标志寄存器FLAGS

8086CPU中设立一个两字节的标志寄存器 8086CPU中设立一个两字节的标志寄存器FLAGS(又 中设立一个两字节的标志寄存器FLAGS( PSW、FR), ),有 个标志位: 称PSW、FR),有9个标志位: 6个状态标志位,表示运算结果的状态,包括CF、 状态标志位,表示运算结果的状态,包括CF、 CF PF、AF、ZF、SF和OF; PF、AF、ZF、SF和OF; 3个控制标志位,用来控制CPU的操作,包括IF、 控制标志位,用来控制CPU的操作 包括IF、 的操作, DF和TF。 DF和TF。 D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0 × × × × OF DF IF TF SF ZF ×AF × PF × CF

百度搜索“yundocx”或“云文档网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,云文档网,提供经典英语学习汇编语言程序设计_东大函授0(2)在线全文阅读。

汇编语言程序设计_东大函授0(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.yundocx.com/wenku/1246421.html(转载请注明文章来源)
Copyright © 2018-2022 云文档网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:370150219 邮箱:370150219@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:7 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219