微型计算机原理课件3
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• 每个存储体都有一个库选择端SEL,只有当存储体 被选中,其内的单元才可被访问。
•A19A1同时对高、低位库内的单元寻址,A0、BHE用于选择库
•库选择端
•库选择端
•A0=0时,选择偶地址的 低位库;BHE=0时,选
择奇地址的高位库
•图3.13 8086存储器高低位库的连接
•当A0和BHE均为0时 ,则同时选中高低位库
•在段基为1123H的逻辑段中, 该单元的偏移地址为 0013H
•(DS)10H+8000H=2A0FH10H+ 8000H=320F0H
• 采用分段管理和使用方法后, 使8086/8088可访问1M的内存。 •在段基址为1124H的逻辑段中,
该单元的偏移地址为 0003H
• 段基址 偏移地址
物理地
• (1)存放操作数(变量)。
•
若要采用非栈操作指令来访问放在堆栈单元中的操作
数,则段地址需由堆栈段寄存器SS提供,操作数单元在堆
栈段内的偏移地址必须由基址寄存器BP提供。
•(2) 保护断点和现场。 • 这是堆栈的主要功能,也是设置堆栈的主要目的。
•关于堆栈的说明:
• 1)栈低固定,栈顶浮动,系统设有一个堆栈指针SP指示当 前栈顶单元的偏移地址。8086/8088的堆栈是向低地址方向增 长
•图3.10 数据在存储器中的存放
• 二、存储器分段结构 • 8086/8088的寄存器都是16位的,这只能直接寻址64 KB ,为了可对1 M个存储单元进行管理和访问,8086/8088采用了 分段结构的存储器管理方法。
• 1 . 将存储空间分为许多段来使用,每个段的容量不大于 64 KB。段可在整个存储空间中浮动,各段之间可以紧密相 连,也可以互相重叠。
•5 . 段中每一单元在其段内的地址用相对于其段首单元的“ 偏移量”来表示,这个偏移量称为该单元的段内“偏移地址”( 也称为“有效地址”EA)。
•6 . 段基址、偏移地址称为逻辑地址,它们是16位的无 符号二进制数。 一个单元的地址可用逻辑地址来表示 ,其形式为段基址: 偏移地址 • 逻辑地址是程序设计时使用的地址,它不是单元的访问 地址。
• 字数据读/写:
• 若为规则字,字地址为偶地址,这时A0=0, CPU自动产 生BHE=0,两个存储体同时被选中,通过A19A1从两个存储 体中选中相应数据单元,两单元的信息分别通过高、低8位数 据线传送,如图3.14(c)所示;
• 若为非规则字,字地址为奇地址,这时A0=1,偶地址存 储体不会被选, CPU自动产生的BHE=0,选中奇地址存储体, 通过A19A1从奇地址存储体选中数据单元,其信息通过高8位 数据线传送,此后,地址加1使得A0=0,选中偶地址存储体, 通过A19A1从偶地址存储体中选中数据单元,其信息通过低8 位数据线传送,如图3.14(d)所示。
个寄存器。 • 8086/8088 用低16位地址总线作为对8位I/O端口的寻 址线,可访问64 K个8位I/O端口。两个地址相邻的8位端口 可以组成一个16位的端口。
• 8位的I/O 设备既可以连接在高8位数据总线上,也可连 接到低8位数据总线上。一般,为了使数据/地址总线的负载平 衡,接在数据/地址总线高8位和低8位的设备数目最好相等。
•3.3.3 8086微处理器时序 •1. 总线读操作时序(P55) •2. 总线写操作时序(P56) •3. 中断响应周期时序(P57)
• 8086在最小模式下的读总线操作时序
•BHE是高是低由是否访问高位存储体决定
•采样数据线读取数据
• 若单元是奇地址,则A0=1, 偶地址存储体不会被选, 此时 ,CPU自动产生BHE=0, 作为奇地址存储体的选体信号,通 过A19A1从奇地址存储体选中数据单元,该单元的信息通过 高8位数据线传送,如图3.14(b)所示。
• 对于字节型数据,不论它存放在偶地址库,还是奇地址 库,都可通过一个总线周期完成数据的读/写操作。
•利用A0和BHE既可 实现同时对两个库进 行读/写(字读/写),也 可对其中一个库进行 读/写(字节读/写) 。
•表3.9 8086存储器高低位库选择
•
• • A0
•
•
•0
•0
• • 对应操作
• • 同时访问两个存储体,读/写一个字的信息
•
•
•0
•1
• • 只访问奇地址存储体,读/写高字节的信息
微型计算机原理课件3
•3. 存放字数据时,要占用地址连续的两个单元,CPU将 字的低位字节存在低地址单元,高位字节存在高地址单元 。低地址做为该字的地址。
• 存放双字型数据,则要占用地址连续的4个存储单元,同 样,低字节存放在低地址单元,高字节存放在高地址单元, 低地址做为该双字的地址(如图3.10)。
• 8086系统对非规则存放的字,需要两个总线周期才 能完成读/写操作,第一个总线周期读/写奇地址单元中的 字节,第二个总线周期读/写偶地址单元中的字节,
• 2、 8088存储器结构 • 在8088系统中,其存储器的结构与8086有所不同,它的 1 MB 存储空间同属于一个单一的存储体。它与总线的连接 方式很简单,其20根地址线A19A0和8根数据线分别与8088 CPU对应的地址线和数据线相连。
• 2)采用栈操作指令对堆栈进行操作时有以下特点:
• a. 操作以字为单位。
• b. 只有一个入出口,遵守“后进先出”的原则,栈指令只能 根据当前SP的内容来确定进栈、出栈的单元。
• 3)给定的SP的初值规定了所定义的堆•堆栈栈的的大主小要。作用:在
•••••(((((SSSSSPPPPP)))))
•存储器操作时段地址和偏移地址的
•表3.8 存储器操作时段地址和段内偏移地址的来源
• • 存储器操作类型
• 取指令 • 存取操作数
• • 段地址
• • 正常来源
• • 其他来源
• • CS
• •无
• • DS
• CS、ES、SS
• • 偏移地址
• • IP
• • 有效地址EA
• 通过BP寻址存取操作数 • 堆栈操作 • 源字符串
•三、物理地址的形成 •存储单元的物理地址可由它的逻辑地址获得。
•10H •物理地址=段基址X 16+偏移地址
•左移4位
• 物理地址的形成是通过BIU中的地址加法器来实现的。
• 一个存储单元被划分在不 同的逻辑段时,它对应的逻 辑地址是不同的。
• 设数据段段基为2A0FH, 则 其内偏移地址为8000H的单元的 物理地址为 :
• 2 . 每个段的首单元地址的低4位必须为全0,即段首单元 地址必须是16的整数倍。段首单元的地址称为段起始地址。
• 3 . 段分为4种: 代码段、数据段、堆栈段、附加数据段。 代码段用于存放程序代码,数据存放在数据段、堆栈段或附 加数据段。图3.11给出了存储器分段示意
•4 . 段首单元地址的高16位称为“段基址”, 要访问某个段时 ,必须将其段基址放在相应的段寄存器中。代码段、数据 段、堆栈段、附加数据段的“段基址”分别存放在CS、DS、 SS和ES中
子程序调用和中断处 理时保护断点和保护 现场;在主程序、子 程序之间传递参数.
•(BX)
•图3.12 进栈与出栈操作示意图
•五、8086/8088存储器结构 •1、 8086存储器结构
• 8086系统把1M字节的内存分为两个512K的存储体, 一个存储体中单元的地址都是偶数地址,称为偶地址存储体 ,它与数据总线D7D0相连,故又称低位存储体, 另一个的 单元地址都是奇数地址,称为奇地址存储体,它与数据总 线D15D8相连故又称高位存储体。
•
•
•
•1
•0
• 只访问偶地址存储体,读/写低字节的信息
•
•
•1
•1
• • 无操作
•在访问奇地址单元和字单元时,CPU会给出BHE有效信号
• 字节数据读/写: • 若单元是偶地址,则A0=0,这时BHE=1, 由A0选中偶地址 存储体,通过A19A1从偶地址存储体中选中数据单元,该单元的 信息通过低8位数据线传送,如图3.14(a)所示;
• 目的字符串
• • SS
• • SS
• 源自文库 DS
• • ES
• • CS、ES、SS
• •无
• • CS、ES、SS
•无
• • 有效地址EA
• • BP、SP
• • SI
• • DI
•图3.11 存储器分段示意图
• 四、堆栈操作
• 堆栈是在存储器中开辟的一个特定区域。堆栈所处的段称 为堆栈段,和其它逻辑段一样,它可在1 MB的存储空间中浮动 。堆栈的主要功能有以下两点:
• 8088 每访问1次存储器只能读/写1个字节信息,因此,字 数据读/写需两个总线周期(两次访问存储器)才能完成操作 。
•3.3.2 8086/8088的I/O组织
• CPU和外设之间是通过I/O接口电路来联系的。每个 I/O接口电路内都有一个或几个端口, 系统为每个端口分配 一个地址,称为端口地址。端口通常是接口电路内部的一
• 4. 具有偶数地址的字称为“规则字” ,奇数地址的字称 为“非规则字”
•设从地址0011FH开始的连续两个 存储单元中存放了一个字型数据
•则该数据为DF46H,记为: (0011FH)=0DF46H。
•设从地址E800AH开始的连续4个存 储单元中存放了一个双字型数据 •则该数据为66A65E65H,记为: (E800AH)=66A65E65H。
•A19A1同时对高、低位库内的单元寻址,A0、BHE用于选择库
•库选择端
•库选择端
•A0=0时,选择偶地址的 低位库;BHE=0时,选
择奇地址的高位库
•图3.13 8086存储器高低位库的连接
•当A0和BHE均为0时 ,则同时选中高低位库
•在段基为1123H的逻辑段中, 该单元的偏移地址为 0013H
•(DS)10H+8000H=2A0FH10H+ 8000H=320F0H
• 采用分段管理和使用方法后, 使8086/8088可访问1M的内存。 •在段基址为1124H的逻辑段中,
该单元的偏移地址为 0003H
• 段基址 偏移地址
物理地
• (1)存放操作数(变量)。
•
若要采用非栈操作指令来访问放在堆栈单元中的操作
数,则段地址需由堆栈段寄存器SS提供,操作数单元在堆
栈段内的偏移地址必须由基址寄存器BP提供。
•(2) 保护断点和现场。 • 这是堆栈的主要功能,也是设置堆栈的主要目的。
•关于堆栈的说明:
• 1)栈低固定,栈顶浮动,系统设有一个堆栈指针SP指示当 前栈顶单元的偏移地址。8086/8088的堆栈是向低地址方向增 长
•图3.10 数据在存储器中的存放
• 二、存储器分段结构 • 8086/8088的寄存器都是16位的,这只能直接寻址64 KB ,为了可对1 M个存储单元进行管理和访问,8086/8088采用了 分段结构的存储器管理方法。
• 1 . 将存储空间分为许多段来使用,每个段的容量不大于 64 KB。段可在整个存储空间中浮动,各段之间可以紧密相 连,也可以互相重叠。
•5 . 段中每一单元在其段内的地址用相对于其段首单元的“ 偏移量”来表示,这个偏移量称为该单元的段内“偏移地址”( 也称为“有效地址”EA)。
•6 . 段基址、偏移地址称为逻辑地址,它们是16位的无 符号二进制数。 一个单元的地址可用逻辑地址来表示 ,其形式为段基址: 偏移地址 • 逻辑地址是程序设计时使用的地址,它不是单元的访问 地址。
• 字数据读/写:
• 若为规则字,字地址为偶地址,这时A0=0, CPU自动产 生BHE=0,两个存储体同时被选中,通过A19A1从两个存储 体中选中相应数据单元,两单元的信息分别通过高、低8位数 据线传送,如图3.14(c)所示;
• 若为非规则字,字地址为奇地址,这时A0=1,偶地址存 储体不会被选, CPU自动产生的BHE=0,选中奇地址存储体, 通过A19A1从奇地址存储体选中数据单元,其信息通过高8位 数据线传送,此后,地址加1使得A0=0,选中偶地址存储体, 通过A19A1从偶地址存储体中选中数据单元,其信息通过低8 位数据线传送,如图3.14(d)所示。
个寄存器。 • 8086/8088 用低16位地址总线作为对8位I/O端口的寻 址线,可访问64 K个8位I/O端口。两个地址相邻的8位端口 可以组成一个16位的端口。
• 8位的I/O 设备既可以连接在高8位数据总线上,也可连 接到低8位数据总线上。一般,为了使数据/地址总线的负载平 衡,接在数据/地址总线高8位和低8位的设备数目最好相等。
•3.3.3 8086微处理器时序 •1. 总线读操作时序(P55) •2. 总线写操作时序(P56) •3. 中断响应周期时序(P57)
• 8086在最小模式下的读总线操作时序
•BHE是高是低由是否访问高位存储体决定
•采样数据线读取数据
• 若单元是奇地址,则A0=1, 偶地址存储体不会被选, 此时 ,CPU自动产生BHE=0, 作为奇地址存储体的选体信号,通 过A19A1从奇地址存储体选中数据单元,该单元的信息通过 高8位数据线传送,如图3.14(b)所示。
• 对于字节型数据,不论它存放在偶地址库,还是奇地址 库,都可通过一个总线周期完成数据的读/写操作。
•利用A0和BHE既可 实现同时对两个库进 行读/写(字读/写),也 可对其中一个库进行 读/写(字节读/写) 。
•表3.9 8086存储器高低位库选择
•
• • A0
•
•
•0
•0
• • 对应操作
• • 同时访问两个存储体,读/写一个字的信息
•
•
•0
•1
• • 只访问奇地址存储体,读/写高字节的信息
微型计算机原理课件3
•3. 存放字数据时,要占用地址连续的两个单元,CPU将 字的低位字节存在低地址单元,高位字节存在高地址单元 。低地址做为该字的地址。
• 存放双字型数据,则要占用地址连续的4个存储单元,同 样,低字节存放在低地址单元,高字节存放在高地址单元, 低地址做为该双字的地址(如图3.10)。
• 8086系统对非规则存放的字,需要两个总线周期才 能完成读/写操作,第一个总线周期读/写奇地址单元中的 字节,第二个总线周期读/写偶地址单元中的字节,
• 2、 8088存储器结构 • 在8088系统中,其存储器的结构与8086有所不同,它的 1 MB 存储空间同属于一个单一的存储体。它与总线的连接 方式很简单,其20根地址线A19A0和8根数据线分别与8088 CPU对应的地址线和数据线相连。
• 2)采用栈操作指令对堆栈进行操作时有以下特点:
• a. 操作以字为单位。
• b. 只有一个入出口,遵守“后进先出”的原则,栈指令只能 根据当前SP的内容来确定进栈、出栈的单元。
• 3)给定的SP的初值规定了所定义的堆•堆栈栈的的大主小要。作用:在
•••••(((((SSSSSPPPPP)))))
•存储器操作时段地址和偏移地址的
•表3.8 存储器操作时段地址和段内偏移地址的来源
• • 存储器操作类型
• 取指令 • 存取操作数
• • 段地址
• • 正常来源
• • 其他来源
• • CS
• •无
• • DS
• CS、ES、SS
• • 偏移地址
• • IP
• • 有效地址EA
• 通过BP寻址存取操作数 • 堆栈操作 • 源字符串
•三、物理地址的形成 •存储单元的物理地址可由它的逻辑地址获得。
•10H •物理地址=段基址X 16+偏移地址
•左移4位
• 物理地址的形成是通过BIU中的地址加法器来实现的。
• 一个存储单元被划分在不 同的逻辑段时,它对应的逻 辑地址是不同的。
• 设数据段段基为2A0FH, 则 其内偏移地址为8000H的单元的 物理地址为 :
• 2 . 每个段的首单元地址的低4位必须为全0,即段首单元 地址必须是16的整数倍。段首单元的地址称为段起始地址。
• 3 . 段分为4种: 代码段、数据段、堆栈段、附加数据段。 代码段用于存放程序代码,数据存放在数据段、堆栈段或附 加数据段。图3.11给出了存储器分段示意
•4 . 段首单元地址的高16位称为“段基址”, 要访问某个段时 ,必须将其段基址放在相应的段寄存器中。代码段、数据 段、堆栈段、附加数据段的“段基址”分别存放在CS、DS、 SS和ES中
子程序调用和中断处 理时保护断点和保护 现场;在主程序、子 程序之间传递参数.
•(BX)
•图3.12 进栈与出栈操作示意图
•五、8086/8088存储器结构 •1、 8086存储器结构
• 8086系统把1M字节的内存分为两个512K的存储体, 一个存储体中单元的地址都是偶数地址,称为偶地址存储体 ,它与数据总线D7D0相连,故又称低位存储体, 另一个的 单元地址都是奇数地址,称为奇地址存储体,它与数据总 线D15D8相连故又称高位存储体。
•
•
•
•1
•0
• 只访问偶地址存储体,读/写低字节的信息
•
•
•1
•1
• • 无操作
•在访问奇地址单元和字单元时,CPU会给出BHE有效信号
• 字节数据读/写: • 若单元是偶地址,则A0=0,这时BHE=1, 由A0选中偶地址 存储体,通过A19A1从偶地址存储体中选中数据单元,该单元的 信息通过低8位数据线传送,如图3.14(a)所示;
• 目的字符串
• • SS
• • SS
• 源自文库 DS
• • ES
• • CS、ES、SS
• •无
• • CS、ES、SS
•无
• • 有效地址EA
• • BP、SP
• • SI
• • DI
•图3.11 存储器分段示意图
• 四、堆栈操作
• 堆栈是在存储器中开辟的一个特定区域。堆栈所处的段称 为堆栈段,和其它逻辑段一样,它可在1 MB的存储空间中浮动 。堆栈的主要功能有以下两点:
• 8088 每访问1次存储器只能读/写1个字节信息,因此,字 数据读/写需两个总线周期(两次访问存储器)才能完成操作 。
•3.3.2 8086/8088的I/O组织
• CPU和外设之间是通过I/O接口电路来联系的。每个 I/O接口电路内都有一个或几个端口, 系统为每个端口分配 一个地址,称为端口地址。端口通常是接口电路内部的一
• 4. 具有偶数地址的字称为“规则字” ,奇数地址的字称 为“非规则字”
•设从地址0011FH开始的连续两个 存储单元中存放了一个字型数据
•则该数据为DF46H,记为: (0011FH)=0DF46H。
•设从地址E800AH开始的连续4个存 储单元中存放了一个双字型数据 •则该数据为66A65E65H,记为: (E800AH)=66A65E65H。