指令执行单元EU 由算术逻辑单元(ALU)、1个状态标志 寄存器PSW、通用寄存器组、专用寄 存器组和EU控制器等组成。 ■ 功能: ■负责全部指令的译码和执行 向BU提供数据和地址 管理寄存器及标志 11/75页
11/75 页 指令执行单元EU 由算术逻辑单元(ALU) 、 1个状态标志 寄存器PSW、通用寄存器组、专用寄 存器组和EU控制器等组成。 功能: 负责全部指令的译码和执行 向BIU提供数据和地址 管理寄存器及标志
二、寄存器结构 15 87 0 15 0 AX AH AL 累加器 cs 代码段寄存器 BX BH BL 基址寄存器 DS 数据段寄存器 CX CH CL 计数寄存器 SS 堆栈段寄存器 DX DH DL 数据寄存器 ES 附加段寄存器 通用寄存器组 段寄存器 15 0 SP 堆栈指针寄存器 15 0 BP 基址指针寄存器 IP 指令指针寄存器 DI 源指针寄存器 PSW 标志寄存器 SI 日的指针寄存器 指令指针和 指针和变址寄存器 标志寄存器 12/75页
12/75页 累加器 基址寄存器 计数寄存器 数据寄存器 堆栈指针寄存器 基址指针寄存器 源指针寄存器 目的指针寄存器 代码段寄存器 数据段寄存器 堆栈段寄存器 附加段寄存器 指令指针寄存器 标志寄存器 二、 寄存器结构
通用寄存器 15 87 0 AX:常用于存放算术逻辑运 AX AH AL 累加器 算中的操作数。所有的/O指 BX BH BL 基址寄存器 令都使用累加器与外设接口 CX CH CL 计数寄存器 DX DH DL 传送信息。 数据寄存器 通用寄存器组 BX:常用来存放访问内存时的基地址。 CX:在循环和串操作指令中用做计数器。 DX:在寄存器间接寻址的I/O指令中存放VO端口的地址。 在做双字长乘、除法运算时,DX与AX合起来存放一个双字 长数(32位),其中DX存放高16位,AX存放低16位。 13/75页
13/75页 通用寄存器 BX:常用来存放访问内存时的基地址。 常用来存放访问内存时的基地址。 CX:在循环和串操作指令中用做计数器。 在循环和串操作指令中用做计数器。 DX:在寄存器间接寻址的 在寄存器间接寻址的I/O指令中存放I/O端口的地址。 在做双字长乘、除法运算时, 在做双字长乘、除法运算时,DX与AX合起来存放一个双字 合起来存放一个双字 长数(32位),其中DX存放高16位,AX存放低16位。 AX:常用于存放算术逻辑运 常用于存放算术逻辑运 算中的操作数。所有的 算中的操作数。所有的I/O指 令都使用累加器与外设接口 令都使用累加器与外设接口 传送信息
指针和变址寄存器 15 0 SP:在堆栈操作中用来存放栈 SP 堆栈指针寄存器 顶的偏移地址,永远指向堆栈的 BP 基址指针寄存器 栈顶。 DI 源变址寄存器 SI 目的变址寄存器 指针和变址寄存器 BP:基地址指针寄存器。常用来存放访问内存时的基地 址,通常与SS寄存器配对使用。 SL、D:常常在变址寻址方式中作为索引指针。在字符串 操作指令中,用S作为源变址寄存器,存放源操作数的偏 移地址;DI作为目标变址寄存器,存放目标操作数的偏移 地址。通常与DS一起使用。 14/75页
14/75页 SP:在堆栈操作中用来存放栈 在堆栈操作中用来存放栈 顶的偏移地址,永远指向堆栈的 顶的偏移地址,永远指向堆栈的 栈顶。 指针和变址寄存器 BP:基地址指针寄存器。常用来存放访问内存时的基地 基地址指针寄存器。常用来存放访问内存时的基地 址,通常与SS寄存器配对使用。 寄存器配对使用。 SI、DI:常常在变址寻址方式中作为索引指针。在字符串 常常在变址寻址方式中作为索引指针。在字符串 操作指令中,用 操作指令中,用SI作为源变址寄存器,存放源操作数的偏 作为源变址寄存器,存放源操作数的偏 移地址;DI作为目标变址寄存器,存放目标操作数的偏移 作为目标变址寄存器,存放目标操作数的偏移 地址。通常与DS一起使用
段寄存器 CS:代码段存放的是当前执行程 CS 代码段寄存器 序的指令代码。CS的内容是代码 DS 数据段寄存器 段的段基地址,它和指令指针P SS 堆栈段寄存器 一起决定下一条所要执行指令的 ES 附加段寄存器 物理存储地址。 段寄存器 DS:数据段通常用来存放数据和字符。DS存放当前数据 段的段基地址。 ES:附加段是一个附加数据段,主要用在字符串操作时 作为目标地址使用。ES的内容就是附加段的段基地址。 SS:堆栈段开辟为程序执行中所要用的堆栈区。 15/75页
15/75页 CS:代码段存放的是当前执行程 代码段存放的是当前执行程 序的指令代码。 序的指令代码。CS的内容是代码 段的段基地址,它和指令指针 段的段基地址,它和指令指针IP 一起决定下一条所要执行指令的 一起决定下一条所要执行指令的 物理存储地址。 物理存储地址。 段寄存器 DS:数据段通常用来存放数据和字符。 数据段通常用来存放数据和字符。DS存放当前数据 段的段基地址。 段的段基地址。 ES:附加段是一个附加数据段,主要用在字符串操作时 附加段是一个附加数据段,主要用在字符串操作时 作为目标地址使用。 作为目标地址使用。ES的内容就是附加段的段基地址。 的内容就是附加段的段基地址。 SS:堆栈段开辟为程序执行中所要用的堆栈区。 堆栈段开辟为程序执行中所要用的堆栈区