第2章8086微处理器与汇编语言(上)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2.寄存器组 (3)指令指针 16位的指令指针IP,用来存放下一条指令在 CS中的偏移量。IP的内容由总线接口部件BIU 自动修改。指令顺序执行时,存放下一条待执 行指令的偏移量;发生中断或调用时,BIU自 动将IP的偏移量压入堆栈保存。程序不能直接 访问IP。 (4)标志寄存器 16位的标志寄存器含有九个有效标志位,分 为条件标志位/程序状态字和控制标志位两个部 分。
AX、AL
AH
AL
BX CX CL
DS
DS DS DS
SP BP SI DI
SS SS DS DS
2.寄存器组
② 指针和变址寄存器
由四个16位的寄存器SP、BP、SI和DI组成。 这些寄存器存放段内的偏移量,用来形成操作 数的存储地址。SP为堆栈指针、BP为基址指 针、SI为源变址、DI为目标变址。 SP和BP使用SS堆栈段。若不特别指明某个 段,则被认为使用现行堆栈段。SP始终指向栈 顶。BP可指向堆栈段的任意单元。 SI和DI称为变址寄存器,通常与DS数据段 一起使用。串操作指令中, 规定SI使用DS数 据段, DI使用ES扩展数据段。
2.寄存器组
(4)标志寄存器(续) ① 条件标志位(续) ● ZF零标志位:运算结果为零时,ZF为 “1”;否则,ZF为“0” 。 ● SF符号标志位:运算结果负数时,SF为 “1”;否则,SF为“0”。 ● PF奇偶标志位:运算结果的低8位中有偶 数个“1”时,PF为“1”;否则,ZP为“0” 。
2.寄存器组
① 数据寄存器(续)P38
寄存器 表2-1-1 8086通用寄存器的特殊用法 操 作 在输入输出指令中作数据寄存器 在乘法指令中存放被乘数或积 在除法指令中存放被除数或商 在LAHF指令中作目标寄存器 在XLAT指令中作累加寄存器 在BCD码运算指令中作累加寄存器 在ASCⅡ运算指令中作累加寄存器 在间接寻址中作基址寄存器 在XLAT指令中作基址寄存器 在串指令和LOOP指令中作计数寄存器 在位移/循环位移指令中作计数寄存器 在乘法指令中存放乘积 在除法指令中存放被除数高位或余数 在间接寻址中作变址寄存器 在堆栈寻址中作堆栈指针 在间接寻址中作基址指针 在字符串操作指令中作源变址寄存器 在间接寻址中作变址寄存器 在字符串操作指令中作目标变址寄存器 在间接寻址中作变址寄存器 隐含性质 不能隐含 隐含 隐含 隐含 隐含 不能隐含 不能隐含 不能隐含 隐含 隐含 不能隐含 隐含 隐含 不能隐含 隐含 不能隐含 隐含 不能隐含 隐含 不能隐含 隐含使用 DS DS
3.引脚及其功能
(4) 最大模式(MN/MX=GND)控制和线状态 ● S 、S 、S 总线周期状态(输出、三态)。 2 1 0
S2 S1 0 0 0 0 0 1 0 1
●
S0 0 1 0 1
特 性 中断响应 读I/O端口 写I/O端口 暂停
1 1 1 1
0 0 1 1
0 1 0 1
特 性 取指令 读存储器 写存储器 不作用
3.引脚及其功能
(1)数据和地址总线 ● AD ~AD 地址/数据复用总线(输入/输 15 0 出、三态)。 ● A /S ~A /S 地址/状态复用总线(输出、 19 6 16 3 三态)。 ● BHE/S 数据总线高位允许/状态复用引脚 7 (输出、三态)。 (2)控制和状态线 ● RD 读控制(输出、三态)。 ● RAEDY 外部准备就绪(输入)。
1.总线接口部件BIU (4)指令队列缓存器 指令队列缓存器是用来暂存从存储器中取出的 指令。指令队列缓存器为6个字节。指令队列采 用FIFO的管理方式,预取6字节的指令代码。在 执行指令的同时,从存储器中取下一条指令或几 条指令,填充指令队列缓存器。这样,CPU的 取指令(BIU)和执行指令操作(EU)是并行的。 当指令队列中有一条指令或填满指令时,执行 部件EU就从该队列中取出指令执行。EU从指令 队列的输出端取出指令后,BIU自动调整指令队 列输出端指针,并作指令预取操作。
4.总线周期
4.总线周期
总线周期T1、T2、T3和T4的操作: ① T1状态,CPU发送地址信号,指出存储单元 或I/O端口地址。同时,发出地址锁存允许信号 ALE,地址送入地址锁存器。 ② T2状态,CPU撤销地址,为读入数据作准备。 总线高4位输出总线周期状态信息。 ③ T3 状态 ,总线高4位信息状态不变,地址总 线低16位输出数据或从I/O端口或存储器输入数 据。若末准备就绪,插入等待状态Tw,直到准 备就绪。 ④ 在T4状态,总线周期结束。
1.总线接口部件BIU (4)指令队列缓存器(续) EU从指令队列取出指令,经指令译码分析 后,向BIU申请从存储器或I/O端口读写操作数。 只要收到EU送来的逻辑地址,BIU就通过专用 的地址加法器,以现行的段寄存器和逻辑地址 产生一个20位的存储地址送地址总线。当EU 执行转移、调用或返回指令时,BIU将自动清 除指令队列中原有的内容,重新填充指令队列。 (5)总线控制逻辑 总线控制逻辑用于产生存储器读/写、I/O读/ 写控制信号。
1.总线接口部件BIU (2)指令指针 指令指针(IP)的功能类似于程序计数器 PC,用来存放下一条要执行指令的偏移地址。 指令地址由CS和IP构成。但是,程序是不能直 接访问IP,只能由BIU自动修改。 (3)地址加法器 地址加法器用来计算20位存储地址。当执行 部件计算出寻址单元的偏移量后,就与左移4 位后的段寄存器内容一起送地址加法器进行相 加,得到一个20位的存储地址。寻址单元的偏 移地址可以来自IP,也可以来自其他寄存器。
2.执行部件EU (3)通用寄存器组 通用寄存器组共有八个16位寄存器。其中, 四个寄存器可用作存放数据或地址,四个为指 针和变址寄存器。这些都可以参加算术和逻辑 运算,具体内容将在下一节介绍 。 (4)控制部件 主要用于取指令的控制和时序控制。 EU与BIU并行工作,提高了CPU的效率。
第二节 寄存器组
2.寄存器组 (4)标志寄存器(续)
① 条件标志位
CF进位标志位:运算中发生进位或借位 时,CF为“1”;否则,CF为“0”。用STC指 令可设置CF为“1”、CLC指令置CF为“0”、 CMC指令对CF求反;循环指令也会影响该标 志位状态。
●
2.寄存器组 (4)标志寄存器(续) ① 条件标志位(续) ● AF辅助进位标志位:在运算结果的低4位 向高4位有进位或借位时,AF为“1”;反之, AF为“0”。 ● OF溢出标志位:运算结果超出机器表示 范围时,OF为“1”;否则,OF为“0”。带符 号数的操作,若字节运算结果超过-128~+127 范围或者字运算结果超过-32768~+32767范围 时,OF为“1”。
3.引脚及其功能
(2)控制和状态线(续) ● INTR 可屏蔽中断(输入)。 ● TEST 等待测试(输入)。 ● NMI 不可屏蔽中断(输入↑ )。 ● RESET 系统复位(输入)。 ● CLK 时钟(输入)。 ● Vcc (+5V)电源(输入)。 ● GND 接地(输入)。 ● MN/MX 最小/最大模式选择(输入)。
2.执行部件EU EU组成: ALU、标志寄存器、通用寄存器 组、暂存器、控制部件等。 作用:完成指令译码和执行指令的工作。 (1)ALU 16位的ALU用来对8位或16位操作数进行算 术或逻辑运算。另外,16位的暂存器也可以参 加运算。 (2)标志寄存器 16位标志寄存器用来表示ALU运算后的结果 特征,为下一条指令的执行提供操作信息。
2.寄存器组 (4)标志寄存器(续) ② 控制标志位 ● DF方向标志位:DF为“0”时,变址地址 指针SI、DI自动作增量操作,字节操作增量为 1,字操作增量为2;DF为“1”时,作减量操 作。可用STD、CLD指令设置DF。 ● IF中断允许标志位:IF为“1”时,允许 CPU响应中断请求;IF为“0”时,禁止响应。 用STI 、 CLI指令设置IF。 ● TF陷阱标志位:TF为“1”时,CPU每执 行完一条指令就产生一个内部中断。
第二章 8086微处理器与汇编语言
(上)
学习目标
1、识记8086微处理器的基本结构、系统总线 周期、基本工作原理。 2、理解通用寄存器、段寄存器、标志和指针 寄存器、基址和变址寄存器的功能和作用。 3、理解8086存储器的地址分段和结构,数据 和程序地址的计算方法。 4、识记8086系统最大和最小模式,及其在不 同方式下的工作时序要求。 5、理解80X86寻址方法的区别和应用要求。
2.寄存器组 如图2-1-2所示为8086的寄存器结构,共分为 四组16位寄存器,它们分别是通用寄存器、指 针和变址寄存器、段寄存器和标志位寄存器。
2.寄存器组
(1)通用寄存器组 通用寄存器组由八个16位寄存器构成,按用 途可分为数据寄存器和指针/变址寄存器两大 类 。它们都可以参加算术和逻辑运算。 ① 数据寄存器 由四个16位的AX、BX、CX和DX寄存器组 成。每个寄存器可作为一个独立的16位寄存器 使用,也可以分别编址成两个8位寄存器使用。 这样,每个数据寄存器对应的高8位寄存器是 AH、BH、CH和DH;低8位寄存器是AL、BL、 CL和DL。
第三节 引脚及其功能
3.引脚及其功能
封装:双列直插式 40条引脚。 封装:双列直插式 部分引脚分时复用 40条引脚。 部分引脚具有双重功能 部分引脚分时复用 8088的引脚图 为了减少芯片的引线, 8086见P41 部分引脚具有双重功能, 采用分时复用方式工作。 8088的引脚图 8086见P41
RQ/GT0、RQ/GT1 总线请求/总线允许(输 入/输出)。 ● LOCK总线锁定信号(输出、三态)。 ● QS 、QS 指令队列状态(输出)。 1 0
第四节 总线周期
4.总线周期 8086的时钟脉冲(CLK)由时钟发生器(如 8284A)来提供,例如若机器的主频为10MHz, 那么一个时钟周期为100ns。 8086CPU完成一个机器周期(将处理一条指 令划分为几个不同的阶段,每个阶段称为一个 机器周期)需要用四个时钟周期,即T1、T2、 T3和T4状态。 典型的一个总线周期操作如图2-1-5所示,图 中RD信号表示读总线周期,WR信号表示写总 线周期,DT/R和DEN信号控制总线收发的传送 方向和何时允许传送。
3Βιβλιοθήκη Baidu引脚及其功能
(3) 最小模式(MN/MX=Vcc)控制和线状态 ● M/IO 存储器或输入/输出控制(输出、三 态)。 ● WR 写控制(输出、三态)。 ● INTA中断响应(输出)。 ● ALE 地址锁存允许(输出↓ )。 ● DT/R 数据发送/接收(输出、三态)。 ● DEN 数据传输允许(输出、三态)。 ● HOLD 总线请求(输入)。 ● HLDA 总线响应(输出)。
2.1 8086系统结构 2.2 寻址方式
1. 8086内部结构
2. 寄存器组
3. 引脚及其功能
4. 总线周期
5. 存储器组织
6. 输入/输出组织
7. 最小与最大模式系统
第一节 8086内部结构
8086分为总线接口部件BIU和执行部件EU 两个部分,如图2-1-1所示。
1.总线接口部件BIU 组成:由段寄存器和指令指针IP,指令队列 缓存器,地址加法器和总线控制逻辑部件等。 作用:取指令、指令排队、读/写操作数、 地址形成和总线控制。 (1)段寄存器 8086最大可寻址1MB存储空间,将1MB空 间划分成若干个逻辑段,每个段最大为64KB, 用段寄存器来存放段起始地址。内设CS、DS、 SS和ES段寄存器,分别用来存放代码段、数 据段、堆栈段和扩展数据段的基地址。
2.寄存器组
(2)段寄存器组 段寄存器组由CS、DS、SS和ES四个16位的 寄存器构成。
表2-1-2 段寄存器和现行段的对应关系 寄存器 CS DS SS ES 含 义 代码段寄存器 数据段寄存器 堆栈段寄存器 附加段寄存器 隐含识别的现行段 现行代码段 现行数据段 现行堆栈段 现行附加段
2.寄存器组 (2)段寄存器组(续) 8086通过CS得到执行指令的段基地址,加 上指令指针IP中的指令偏移量,产生20位的存 储器地址。例如CS=4000H、IP=004AH。那 么,20位物理地址应该是4004AH单元。 40000 CS代码段内容左移4位 + 004A IP的段内偏移量 4004AH 下一条指令的存储地址 操作数所在段,可以在指令前加段前缀,若 缺省前缀,则规定使用DS。对于BP和SP,系 统默认使用SS。