第二章 80X86微处理器小结
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
本章小结
1.存储器的分段结构
8086有20条地址线,
最大可寻址空间为 220=1MB,
可寻址的地址范围为 00000H~FFFFFH
该地址称物理地址
硬件用20位的物理地址来对存储单元进行寻
址
存储器的分段管理
由于8086中的地址寄存器都是16位的,用户
不能直接使用20位的物理地址,编程时需要 使用逻辑地址来寻址存储单元。
8086微处理器的时序(续3)
任何指令的取指阶段都需要存储器读总线周期, 读取的内容是指令代码 任何一条以存储单元为源操作数的指令都将引 起存储器读总线周期,任何一条以存储单元为 目的操作数的指令都将引起存储器写总线周期 如何实现同步? 只有执行IN指令才出现I/O读总线周期,执行 OUT指令才出现I/O写总线周期 CPU响应可屏蔽中断时生成中断响应总线周期
输入 内部 RESET 三态门 浮空
不作用状态
图2.12 8086/8088的复位时序 当外部的复位信号到来,经8284同步,在RESET到来后的 CLK第一个 上升沿形成内部RESET信号送给CPU,CPU就进入内部RESET过程。到 本次 CLK下降沿,所有的三态输出线都被设置为无效状态,再到下一个 CLK的上升沿,所有的三态输出线都被设置为高阻状态,直到RESET信 号回到低电平。
段的起始地址 : 段内的偏移地址 (16位段地址) :( 16位偏移量)
存储器的分段管理
逻辑地址的表示——段地址:偏移地址
段尾
某逻辑段 64KB 某寻址单元 地址偏移量(xxxxH) 段首(xxxx0H)
低址
存储器的分段管理
1MB 最多可分为16个不重迭的段。实际上, 两个不同的逻辑段可以交叠,或者完全重叠。
一个具体的存储单元可以只属于一个逻辑段,也可以同 时属于几个逻辑段。只要给出它的段基址和段内的偏移地 址就可以对它进行访问。下图是这种分段的一个例子。
存储器
00000H 10550H
代码段 64KB
CS=1055H
DS=2500H
25000H
数据段 64KB 附加段 64KB
ES=2600H
26000H
2.5 8086微处理器的时序
时序(Timing)是指信号高低电平
(有效或无效)变化及相互间的时 间顺序关系。 总线时序描述CPU引脚如何实现总 什么是总线操作? 线操作 CPU时序决定系统各部件间的同步 和定时
8086微处理器的时序(续1)
总线操作是指CPU通过总线对外的各种
操作 8088的总线操作主要有:
101
A19~A16 S6 ~ S3
111
AD15~AD0 ALE MRDC* DT/R* DEN
A15~A0
输入数 据 由8288 产生
最大组态的写总wenku.baidu.com时序
T1 CLK S2*~S0* A19/S6~A16/S3 A19~ A16 A15~ A0 110 111 T2 T3 T4
S6 ~ S3
AD15~AD0 ALE
存储器读、I/O读操作 中断响应操作 总线请求及响应操作 CPU正在进行内部操作、并不进行实际对外 存储器写、I/O写操作 什么是总线周期?
操作的空闲状态Ti
8086微处理器的时序(续2)
演示
总线周期是指CPU通过总线操作与外部(存储 器或I/O端口)进行一次数据交换的过程 指令周期是指一条指令经取指、译码、读写操 作数到执行完成的过程 8088的基本总线周期需要4个时钟周期,4个时钟 周期编号为T1、T2、T3和T4 何时有总线周期? 总线周期中的时钟周期也被称作“T状态” 时钟周期的时间长度就是时钟频率的倒数 当需要延长总线周期时需要插入等待状态Tw
多字节数据在存储器中占据多个连续的存储单元: 存放时,低字节存于低地址,高字节存于高地址; 多字节数据占据的地址空间用它的低地址来表示。
例如: 2号“字”单元: [ 0002H ] = 1234H
2号“双字”单元: [ 0002H ] = 78561234H
80x86处理器的“低对低、高对高”的存储形式, 被称为“小端方式”;相对应还存在“大端方式 (big endian)”。
8086微处理器的时序(续4)
总线操作中如何实现时序同步是关键 CPU总线周期采用同步时序:
各部件都以系统时钟信号为基准
当相互不能配合时,快速部件(CPU)插入等
待状态等待慢速部件(I/O和存储器)
CPU与外设接口常采用异步时序,它们通
过应答联络信号实现同步操作
CLK RESET
3
2 地址输出
7 数据输入
9 5
10
8086最小模式下的总线读周期时序
T1 CLK
1
T2
T3
TW
1 n)
∫ ∫
T4
M/IO
2
高为写内存 6 地址输出 2 地址输出 4
BHE 输出
低为写I/O 状态输出 7 数据输出 8
A19/s6~A16/s3
AD15~AD0 BHE/S7 ALE WR DT/R DEN
逻辑地址由两个16位数构成,其形式为:
段的起始地址 : 段内的偏移地址
(16位段地址) :( 16位偏移量)
存储器的分段管理
8088将存储空间分为多个逻辑段(段——Segment) 来进行管理,要求:
段的20位的起始地址(xxxxxH)其低4位必须为0
(xxxx0H),所以可以将它们省略,然后用1个16位数来 表示表示段的首地址。 每段长度限216=64KB,所以段内偏移地址可以用1个16位 数来表示(xxxxH); 所以有:
3 9 5
10
图2.13 8086最小模式下的总线写周期时序
( ~
T1状态:CPU输出存储器单元或I/O端口的地址信息,并且从 ALE引脚输出地址锁存信号,在ALE的下降沿将20位地址锁存到地 址锁存器的输出端。 BHE*信号也在T1状态有效,表示高8位数据 总线上的信息可以使用,该信号与地址一起被锁存。DT/R*输出低 电平,表示本总线周期为读周期。
一个存储单元可以拥有多个逻辑地址,但只 可能拥有一个唯一的物理地址。
例如:物理地址: 00200H 逻辑地址: 0000H : 0200H 逻辑地址: 0020H : 0000H
物理地址和逻辑地址
每个存储单元都有一个唯一物理地址(00000H~ FFFFFH) ,20位,该地址在指令执行时由地址加 法器形成,并进行硬件寻址。 地址加法器的具体做法:段地址左移4位,然后加 上偏移地址就得到20位物理地址。 用户编程时采用逻辑地址,其形式为: 段的首地址 : 段内偏移地址 它们由两个16位的无符号数构成 。 逻辑地址“1460H:100H” = 物理地址14700H
最小组态的总线时序
本节展开微处理器最基本的4种总线周期
存储器读总线周期
存储器写总线周期
I/O读总线周期
I/O写总线周期
T1 CLK
1
T2
T3
TW(1~n)
∫ ∫
T4
M/IO
2
高为读内存 6 地址输出 4
BHE输出
低为读I/O 状态输出 8
A19/S6~A19/S3 BHE/S7 AD15~AD0 ALE RD DT/R DEN
输出数据
写命令 AMWTC*
MWTC*
DT/R*
DEN
由8288 产生
与最小模式下的读时序不同之处在于:由
CPU输出读操作的状态信号给总线控制器 8288,
即若为存储器读 S2* ~ S0* 代码为 101 ,若是读 I/O 端口,则 S2* ~ S0* 代码为 001 ;控制信号 ALE 、 MRDC* 、 DT/R* 及 DEN 均由 8288 输出;特别要注 意的是,这时的存储器读和I/O读是独立的两条信
2. 如果READY无效,在T3和T4之间插入一个等效于
T3的Tw ,并且在每个Tw的前沿,CPU都检测READY 是否有效,若无效则继续插入Tw; 3. 如果READY有效,执行完该T状态,进入T4状态。
最大组态的读总线时序
T1 CLK S2*~S0* A19/S6~A16/S3 T2 T3 T4
号线,并且,数据允许信号 DEN是高电平有效,
系统中需经反相后接到数据总线收 /发器的使能端。
还有一点需要说明,在最大模式下,8288输出的 写信号有4个,除了正常写信号、外,还有提前写信 号、,它比普通的写信号超前了一个时钟周期,这样, 速度较慢的设备或存储器就可以得到一个额外的时钟 周期提前执行写操作。
T4状态:在T4和前一个状态交界的下降沿处,CPU对数据 总线进行采样,从而读入数据,同时撤消有关控制信号。 至此,一个完整的读总线周期结束。
插入等待状态Tw
大的两部分保持同步 在读写总线周期中,判断是否插入Tw
1. 在T3的上升沿检测READY引脚是否有效;
演示
同步时序通过插入等待状态,来使速度差别较
SS=E000H E0000H FFFFFH
堆栈段 64KB
8086/8088的存储器分段示例
数据的存储格式
计算机中信息的单位有:
位(bit)、字节(byte)、
字(word)、双字(double word)等
在存储器中,信息的存储单元是:字节 存储的数据如果对齐边界,则存取速度较快 多字节的数据采取小端方式存储
信息的表示单位
位bit:存储一位二进制数:0或1。 字节Byte
: 8位二进制, D 7~ D 0。 字Word: 16位/2个字节, D15~D0。 双字Double:32位/4个字节, D31~D0。 最低有效位LSB(Least Significant Bit):指
数据的最低位,即D0位;
最高有效位MSB(Most Significant Bit):指
数据的最高位,对应字节、字、双字分别指D7、 D15、D31位。
存储单元及其存储内容
每个存储单元都有一个编号——存储器地址
每个存储单元存放一个字节的内容
例如:0002H单元存放有一个数据34H
[0002H]=34H
小端方式
T2状态:地址信号消失,AD15~AD0变为高阻状态(也叫浮 空),为读入数据作准备;A19/S6~A16/S3以及BHE*/ S7切换为 状态信息;DEN*引脚输出有效的低电平,使数据线选通;RD*引 脚输出低电平的读信号,送到被地址信息选中的存储器或I/O接口 芯片。
T3状态:被选中的内存单元或I/O端口将数据送到数据总 线上,CPU通过AD15~AD0接收数据。 TW状态:当存储器或外设的工作速度较慢,从而不能用基 本的总线周期完成读操作时,系统自动插入等待状态。
1.存储器的分段结构
8086有20条地址线,
最大可寻址空间为 220=1MB,
可寻址的地址范围为 00000H~FFFFFH
该地址称物理地址
硬件用20位的物理地址来对存储单元进行寻
址
存储器的分段管理
由于8086中的地址寄存器都是16位的,用户
不能直接使用20位的物理地址,编程时需要 使用逻辑地址来寻址存储单元。
8086微处理器的时序(续3)
任何指令的取指阶段都需要存储器读总线周期, 读取的内容是指令代码 任何一条以存储单元为源操作数的指令都将引 起存储器读总线周期,任何一条以存储单元为 目的操作数的指令都将引起存储器写总线周期 如何实现同步? 只有执行IN指令才出现I/O读总线周期,执行 OUT指令才出现I/O写总线周期 CPU响应可屏蔽中断时生成中断响应总线周期
输入 内部 RESET 三态门 浮空
不作用状态
图2.12 8086/8088的复位时序 当外部的复位信号到来,经8284同步,在RESET到来后的 CLK第一个 上升沿形成内部RESET信号送给CPU,CPU就进入内部RESET过程。到 本次 CLK下降沿,所有的三态输出线都被设置为无效状态,再到下一个 CLK的上升沿,所有的三态输出线都被设置为高阻状态,直到RESET信 号回到低电平。
段的起始地址 : 段内的偏移地址 (16位段地址) :( 16位偏移量)
存储器的分段管理
逻辑地址的表示——段地址:偏移地址
段尾
某逻辑段 64KB 某寻址单元 地址偏移量(xxxxH) 段首(xxxx0H)
低址
存储器的分段管理
1MB 最多可分为16个不重迭的段。实际上, 两个不同的逻辑段可以交叠,或者完全重叠。
一个具体的存储单元可以只属于一个逻辑段,也可以同 时属于几个逻辑段。只要给出它的段基址和段内的偏移地 址就可以对它进行访问。下图是这种分段的一个例子。
存储器
00000H 10550H
代码段 64KB
CS=1055H
DS=2500H
25000H
数据段 64KB 附加段 64KB
ES=2600H
26000H
2.5 8086微处理器的时序
时序(Timing)是指信号高低电平
(有效或无效)变化及相互间的时 间顺序关系。 总线时序描述CPU引脚如何实现总 什么是总线操作? 线操作 CPU时序决定系统各部件间的同步 和定时
8086微处理器的时序(续1)
总线操作是指CPU通过总线对外的各种
操作 8088的总线操作主要有:
101
A19~A16 S6 ~ S3
111
AD15~AD0 ALE MRDC* DT/R* DEN
A15~A0
输入数 据 由8288 产生
最大组态的写总wenku.baidu.com时序
T1 CLK S2*~S0* A19/S6~A16/S3 A19~ A16 A15~ A0 110 111 T2 T3 T4
S6 ~ S3
AD15~AD0 ALE
存储器读、I/O读操作 中断响应操作 总线请求及响应操作 CPU正在进行内部操作、并不进行实际对外 存储器写、I/O写操作 什么是总线周期?
操作的空闲状态Ti
8086微处理器的时序(续2)
演示
总线周期是指CPU通过总线操作与外部(存储 器或I/O端口)进行一次数据交换的过程 指令周期是指一条指令经取指、译码、读写操 作数到执行完成的过程 8088的基本总线周期需要4个时钟周期,4个时钟 周期编号为T1、T2、T3和T4 何时有总线周期? 总线周期中的时钟周期也被称作“T状态” 时钟周期的时间长度就是时钟频率的倒数 当需要延长总线周期时需要插入等待状态Tw
多字节数据在存储器中占据多个连续的存储单元: 存放时,低字节存于低地址,高字节存于高地址; 多字节数据占据的地址空间用它的低地址来表示。
例如: 2号“字”单元: [ 0002H ] = 1234H
2号“双字”单元: [ 0002H ] = 78561234H
80x86处理器的“低对低、高对高”的存储形式, 被称为“小端方式”;相对应还存在“大端方式 (big endian)”。
8086微处理器的时序(续4)
总线操作中如何实现时序同步是关键 CPU总线周期采用同步时序:
各部件都以系统时钟信号为基准
当相互不能配合时,快速部件(CPU)插入等
待状态等待慢速部件(I/O和存储器)
CPU与外设接口常采用异步时序,它们通
过应答联络信号实现同步操作
CLK RESET
3
2 地址输出
7 数据输入
9 5
10
8086最小模式下的总线读周期时序
T1 CLK
1
T2
T3
TW
1 n)
∫ ∫
T4
M/IO
2
高为写内存 6 地址输出 2 地址输出 4
BHE 输出
低为写I/O 状态输出 7 数据输出 8
A19/s6~A16/s3
AD15~AD0 BHE/S7 ALE WR DT/R DEN
逻辑地址由两个16位数构成,其形式为:
段的起始地址 : 段内的偏移地址
(16位段地址) :( 16位偏移量)
存储器的分段管理
8088将存储空间分为多个逻辑段(段——Segment) 来进行管理,要求:
段的20位的起始地址(xxxxxH)其低4位必须为0
(xxxx0H),所以可以将它们省略,然后用1个16位数来 表示表示段的首地址。 每段长度限216=64KB,所以段内偏移地址可以用1个16位 数来表示(xxxxH); 所以有:
3 9 5
10
图2.13 8086最小模式下的总线写周期时序
( ~
T1状态:CPU输出存储器单元或I/O端口的地址信息,并且从 ALE引脚输出地址锁存信号,在ALE的下降沿将20位地址锁存到地 址锁存器的输出端。 BHE*信号也在T1状态有效,表示高8位数据 总线上的信息可以使用,该信号与地址一起被锁存。DT/R*输出低 电平,表示本总线周期为读周期。
一个存储单元可以拥有多个逻辑地址,但只 可能拥有一个唯一的物理地址。
例如:物理地址: 00200H 逻辑地址: 0000H : 0200H 逻辑地址: 0020H : 0000H
物理地址和逻辑地址
每个存储单元都有一个唯一物理地址(00000H~ FFFFFH) ,20位,该地址在指令执行时由地址加 法器形成,并进行硬件寻址。 地址加法器的具体做法:段地址左移4位,然后加 上偏移地址就得到20位物理地址。 用户编程时采用逻辑地址,其形式为: 段的首地址 : 段内偏移地址 它们由两个16位的无符号数构成 。 逻辑地址“1460H:100H” = 物理地址14700H
最小组态的总线时序
本节展开微处理器最基本的4种总线周期
存储器读总线周期
存储器写总线周期
I/O读总线周期
I/O写总线周期
T1 CLK
1
T2
T3
TW(1~n)
∫ ∫
T4
M/IO
2
高为读内存 6 地址输出 4
BHE输出
低为读I/O 状态输出 8
A19/S6~A19/S3 BHE/S7 AD15~AD0 ALE RD DT/R DEN
输出数据
写命令 AMWTC*
MWTC*
DT/R*
DEN
由8288 产生
与最小模式下的读时序不同之处在于:由
CPU输出读操作的状态信号给总线控制器 8288,
即若为存储器读 S2* ~ S0* 代码为 101 ,若是读 I/O 端口,则 S2* ~ S0* 代码为 001 ;控制信号 ALE 、 MRDC* 、 DT/R* 及 DEN 均由 8288 输出;特别要注 意的是,这时的存储器读和I/O读是独立的两条信
2. 如果READY无效,在T3和T4之间插入一个等效于
T3的Tw ,并且在每个Tw的前沿,CPU都检测READY 是否有效,若无效则继续插入Tw; 3. 如果READY有效,执行完该T状态,进入T4状态。
最大组态的读总线时序
T1 CLK S2*~S0* A19/S6~A16/S3 T2 T3 T4
号线,并且,数据允许信号 DEN是高电平有效,
系统中需经反相后接到数据总线收 /发器的使能端。
还有一点需要说明,在最大模式下,8288输出的 写信号有4个,除了正常写信号、外,还有提前写信 号、,它比普通的写信号超前了一个时钟周期,这样, 速度较慢的设备或存储器就可以得到一个额外的时钟 周期提前执行写操作。
T4状态:在T4和前一个状态交界的下降沿处,CPU对数据 总线进行采样,从而读入数据,同时撤消有关控制信号。 至此,一个完整的读总线周期结束。
插入等待状态Tw
大的两部分保持同步 在读写总线周期中,判断是否插入Tw
1. 在T3的上升沿检测READY引脚是否有效;
演示
同步时序通过插入等待状态,来使速度差别较
SS=E000H E0000H FFFFFH
堆栈段 64KB
8086/8088的存储器分段示例
数据的存储格式
计算机中信息的单位有:
位(bit)、字节(byte)、
字(word)、双字(double word)等
在存储器中,信息的存储单元是:字节 存储的数据如果对齐边界,则存取速度较快 多字节的数据采取小端方式存储
信息的表示单位
位bit:存储一位二进制数:0或1。 字节Byte
: 8位二进制, D 7~ D 0。 字Word: 16位/2个字节, D15~D0。 双字Double:32位/4个字节, D31~D0。 最低有效位LSB(Least Significant Bit):指
数据的最低位,即D0位;
最高有效位MSB(Most Significant Bit):指
数据的最高位,对应字节、字、双字分别指D7、 D15、D31位。
存储单元及其存储内容
每个存储单元都有一个编号——存储器地址
每个存储单元存放一个字节的内容
例如:0002H单元存放有一个数据34H
[0002H]=34H
小端方式
T2状态:地址信号消失,AD15~AD0变为高阻状态(也叫浮 空),为读入数据作准备;A19/S6~A16/S3以及BHE*/ S7切换为 状态信息;DEN*引脚输出有效的低电平,使数据线选通;RD*引 脚输出低电平的读信号,送到被地址信息选中的存储器或I/O接口 芯片。
T3状态:被选中的内存单元或I/O端口将数据送到数据总 线上,CPU通过AD15~AD0接收数据。 TW状态:当存储器或外设的工作速度较慢,从而不能用基 本的总线周期完成读操作时,系统自动插入等待状态。