微机原理第三章
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(2)地址指针和变址寄存器
• SP(Stack Pointer)堆栈指针 • BP(Base Pointer)基址指针 • SI(Source Index)和DI(Destination Index)变址寄存器 • 以上寄存器主要用来存放地址,也可存 放数据。
3.3.2 段寄存器组
访问存储器的地址码有段地址和段内偏移地址两 部分组成。段寄存器用来存放段地址。
3.1.2 处理器的外部结构
微处理器的外部就是输入输出引脚,这些引脚构成微 处理器总线。总线按功能可以分为三种:
(1)传送信息的数据总线(Data Bus)
(2)指示欲传信息的来源或目的地址的地址总线(Address Bus)
(3)管理总线上活动的控制总线(Control Bus)
3.2
8086微处理器的功能结构
3.4 8086的存储器组织
3.4.1 存储器地址空间和数据存储 格式
存储器地址空间
• 8086的存储器是以字节(8 bit)为单位组 成的。共有20条地址总线,可寻址的存 储器地址空间为220Byte(1MB)。每个 字节对应一个唯一的地址,地址范围0--220-1(00000—0FFFFFH)。 • 存储器内两个连续的字节定义为一个字 (WORD)。每个字的低字节(低8位) 存放在低地址中,高字节(高8位)存放 在高地址中。字的地址指向低字节的地 址。
(3)直接寻址
• 操作数放在存储单元中,段内偏移地址(16位 有效地址)在指令码中。有效地址(EA)也称为 偏移地址,它代表操作数所在存储单元距离段 首址的字节数。有效地址是一个无符号的16位 二进制数。 • 注意: • 1) 直接寻址方式的操作数所在存储单元的段地 址一般在数据段寄存器DS中。 • 2)如果操作数在其他段,则需要在指令中用段 超越前缀指出相应的段寄存器名
逻辑段
• 8086把1MB的存储器空间分成若干个逻 辑段,每段最多64KB。 • 各逻辑段的起始地址必须是能被16整除 的地址,即低4位地址为0。 • 一个段的起始地址的高16位被称为该段 的段地址。
段内偏移地址
• 在1MB的存储器地址中可以有216个段地 址。 • 每个段内的偏移地址称为有效地址EA, 偏移地址也为16位。 • 一个段最大可以包括64BK的空间,相邻 两个段的段地址最小相距16个字节,段 与段可互相覆盖。
总线接口单元BIU设置4个段寄存器,CPU可通过4 个段寄存器访问存储器中4个不同的段(每段64K)。
段寄存器
• 代码段寄存器CS(Code Segment):存放当前 执行程序所在段的段地址,CS的内容左移4位 再加上指令指针IP的内容就是下一条要执行的 指令地址。 • 数据段寄存器DS(Data Segment):存放当前 数据段的段地址。 • 堆栈寄存器SS(Stack Segment):存放当前堆 栈段的段地址。 • 附加段寄存器ES(Extra Segment):附加段是 一个附加数据段。
各种类型访问存储器时的地址成分
注意点
• (1)段寄存器 • 访问存储器时,必须要有段寄存器,段 寄存器可指定,也可以是默认的。 • (2)重置段寄存器 • DS 、 ES 和 SS 内容可用传送指令通过寄 存器置入,但不能向CS置数。 • (3)段内偏移地址来源
3.5 8086的I/O组织
• 一般外部设备的速度比 CPU 低得多,因 此必须通过I/O接口与CPU连接,I/O接口 是保证信息和数据在 CPU 与 I/O 设备之间 正常传送的电路。 • I/O接口与CPU之间的通信是利用称为I/O 端口的寄存器来完成的。 • 一个I/O端口有一个唯一的I/O地址与之对 应。
微机原理
第3章微机系统中的微处理器
3.1微处理器的一般结构
3.1.1 微处理器的内部结构 CPU的基本功能: (1) 进行算术和逻辑运算 (2) 的能力 具有接收存储器和I/O接口来的数据和发送数据给存储器和I/O接口
(3) 可以暂存少量数据 (4) (5) (6) 能对指令进行寄存、译码并执行指令所规定的操作 能提供整个系统所需的定时和控制信号 可响应I/O设备发出的中断请求。
1. 8086CPU有20条地址线,可直接寻址能力达 1MB。 2. 8086CPU具有16条数据总线,内部总线和 ALU均为16位,可进行8位和16位操作,是 16位微处理器。
3. 8086CPU由总线接口单元BIU(Bus Interface Unit)和执行单元EU(Execution Unit)组成。
总线接口单元BIU
1. 4个16位段寄存器(:CS,SS,DS,ES)
2. 16位指令指针IP(PC)
3. 指令队列寄存器、 4. 完成与EU通讯的内部寄存器 5. 由段寄存器保存的段地址和IP或EU部件提供的偏移地 址(16位)形成20位物理地址的20位物理地址加法器和 总线控制逻辑。对外提供16位双向数据和20位物理地址 总线,它的任务是执行总线周期,完成CPU与存储器和 I/O设备之间信息的传送。 主要完成对外工作。
8086的IO端口
• 8086地址总线的低16位用来对8位I/O端 口寻址,可寻址65536个8位I/O口。 • 连续的两个8位I/O端口可作为一个16位 端口。 • I/O端口寻址分为直接寻址和间接寻址。
3.6 8086的寻址方式
• 机器语言的一条指令包含操作码(OP) 和操作数,操作码指明该指令进行什么 操作,操作数指出该指令在执行规定操 作时所需的信息。规定操作数的方法, 即指令中用于说明操作数所在地址的方 法称为寻址方式. • 寻址方式可分为:数据寻址方式和转移 地址寻址方式。
若该指令的段基址为CS=2200H,而IP=3F62H其 物理地址仍为25F62H
3.4.3寄存器的关系信息的分段存储与段 • 程序区:存储程序的指令代码; • 数据区:存储原始数据、中间结果和最 后结果; • 堆栈区:存储需要压入堆栈的数据或状 态信息。
• 代码段寄存器CS划定并控制程序区; • 数据段寄存器DS和附加段寄存器ES控制 数据区; • 堆栈段寄存器SS对应堆栈存储区。
物理地址
每个存储单元都有一个物理地址。而逻辑地址 由段地址和偏移地址两部分组成。 段地址和偏移地址都是无符号的 16 位二进制数 (4位16进制)。 逻辑地址的表示格式:段地址:偏移地址。 物理地址=段地址×10H+偏移地址 8086BIU中加法器用来完成物理地址的计算。
分段存储示意图
举例
例如:某指令在代码段中逻辑地址为:段首址CS= 2000H.段内偏移地址IP=5F62H,则 其物理地址为(CS)x16+IP=200Hx16+5F62H=25F62H
OF(Overflow Flag)溢出标志
OF标志,运算结果超出范围,产生溢出,OF=1, 否则OF=0; 对于加法运算,如果次高位形成进位加入最高位, 而最高位相加时,却没有进位输出;或次高位没有 进位加入最高位,但最高位却有进位输出,都将发 生溢出,OF=1. 减法同理。 成为双高原则: 两个高位都有进位或借位,运算不溢出,OF=0; 两个高位中只有一个有进位或借位,运算溢出, OF=1;
· EU的工作就是执行指令。它专从BIU中的指令队列中不断的 取指令并执行指令。 · 当执行转移指令、调用指令和返回指令时,EU要等待BIU 清除指令队列,重新按照转移目的地址取指令供EU执行,这 时BIU取出的第一条指令直接送入EU去执行.随后取出的指 令填入指令队列。这时EU和BIU的并行操作会受到一定影响, 但只要发生程序转移的概率不是很高,BIU与EU的并行工作 方式仍将大大提高程序的运行速度。 · 当EU在执行指令过程中需要访问存储器或I/O端口存取 操作数时,EU首先向BIU发出请求,并提供操作数的有效地 址,由BIU形成20位物理地址并访问内存或I/O端口,族 取操作数送给EU使用.
3.3 8086的寄存器结构
8086CPU内 部具有14个
16位寄存器
。
3.3.1通用寄存器
• (1)数据寄存器 • 数据寄存器包括AX、BX、CX、DX。可 寄存操作数和操作结果。每一个由可分 成高8位和低8位两个独立的8位寄存器来 使用。 16 位数据寄存器主要用来存放数 据,也可存放地址, 8 位寄存器( AH 、 AL、BH、BL、CH、CL、DH、DL)只 能寄放数据。
3.6.1 数据寻址方式
(1)立即寻址
• 数据直接放在指令本身的最后一个( 8 位)或两 个字节(16位)。 • 注意: • 1) 立即数寻址方式只能用于源操作数。主要用于 给寄存器赋值。 • 2) 立即数寻址方式不执行总线周期,执行速度快。 • 3) 立即数为 16 位时。低位字节存放在存储器低地 址单元,高位字节存放在存储器高地址单元。该 存储器在CS段中
(4)寄存器间接寻址
• 操作数在存储单元中,其有效地址在指令码指明 的基址寄存器BX或变址寄存器S I或DI之中。 • (BX) • EA= (SI) • (DI) • 当使用寄存器 BX 、 SI 、 DI 时,操作数所在存 储单元的段地址存在数据段寄存器 DS 中。物理 地址的计算方法为: • 物理地址=16×(DS)十(BX) (寄存器SI、DI类 同)
BIU的具体工作
执行总线周期。
完成CP源自文库与存储器和IO设备之间的信息传送 --从存储器取指令--》指令队列 --根据EU命令对存储器或IO设备存取数据
执行单元EU的组成
1.算术逻辑运算单元ALU 2.暂存器 3.标志寄存器(PSW) 4.通用寄存器组和EU控制器构成。
执行单元EU的任务
1. 2. 3. 4. 执行指令 进行全部算术逻辑运算 完成偏移地址的计算 向总线接口单元BIU提供指令执行 结果的数据和偏移地址,并对通用 寄存器和标志寄存器进行管理。
数据存储格式
• 8086CPU数据总线16位,对于访问(读 或写)字节的指令,需要一个总线周期, 对于访问一个偶地址的字的指令,也需 要一个总线周期,而对于访问一个奇地 址的字的指令,需要两个总线周期 (CPU自动完成)。
3.4.2 存储器的分段和物理地址的形成 •8086的地址总线20条,可寻址空间为1MB。 •BX、IP、SP、ALU等都是16位,只能直 接处理16位地址(64KB)。 •8086CPU采用地址分段方法,将寻址空间 扩大到1MB。
(2)寄存器寻址
• • • • • 数据寄放在指令规定的寄存器中。 16位:AX,BX,CX,DX,SI,DI,SP,BP 8位:AL,AH,BL,BH,CL,CH,DL,DH 注意: 1) 寄存器寻址方式的指令操作在 CPU 内部执行。 不需要执行总线周期,执行速度快。 • 2) 寄存器寻址方式既适用于指令的源操作数, 也适用于目的操作数,可同时用于源操作数和 目的操作数。
控制标志
• DF(Direction Flag)方向标志。可用 指令预置,字符串操作时, DF=0 ,递增; DF=1,地址递减。 • IF ( Interrupt Enable Flag )中断允许 标 志 。 IF=1 , CPU 响 应 可 屏 蔽 中 断 , IF=0,CPU不响应可屏蔽中断。 • TF(Trap Flag)陷阱标志,TF=1,CPU 处于单步执行方式。
3.3.3 控制寄存器
• (1)指令指针IP(Instruction Pointer) IP相当于程序计数器PC。保存下一条 要执行的指令的偏移地址。在用户程序 中不能使用该寄存器,但可用DEBUG来 调试修改。
(2)标志寄存器(FLAG)
• 就是处理器状态字寄存器( PSW ),一 共两个字节, 9 个标志。其中 6 个反映前 一次ALU操作结果涉及的状态标志,3个 是控制CPU操作特征的控制标志。
状态标志(六个)
PF ( Parity Flag )奇偶标志 , 低 8 位中含有偶数 个1,PF=1 • AF(Auxiliary Carry Flag)辅助进位标志, 加法或减法运算时, D3 位有进位或借位时 AF=1,主要用于BCD运算。 • ZF(Zero Flag)零标志,结果为0, ZF=1 • CF(Carry Flag)进位标志 • SF(Sign Flag)符号标志,D7或D15=1,SF=1, 表示负数