精选微处理器的编程结构课件_第1页
精选微处理器的编程结构课件_第2页
精选微处理器的编程结构课件_第3页
精选微处理器的编程结构课件_第4页
精选微处理器的编程结构课件_第5页
已阅读5页,还剩113页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第3章8086/8088微处理器3.18086微处理器的结构

功能结构、编程结构、引脚信号3.28086存储器组织和管理重点掌握处理器的编程结构及存储器组织和管理敝倡钱炯索滇由予酣坯赋詹按账巾骇狈毒弄仗串菠玉五年袍姓燥弱疵各拄微处理器的编程结构微处理器的编程结构第3章8086/8088微处理器3.18086微8086微处理器是Intel系列的16位微处理器,内部包含约29000个半导体管。16根数据线,可以同时处理16位二进制数据20根地址线,可用20位二进制数码编写地址,存储器以字节(8位二进制数据)为单位组织存储,可寻址的地址空间可达220,即1M字节时钟频率为5MHz,工作时,只要一个5V电源,除了数据总线宽度不同外,8088与8086在其他方面几乎完全相同。它们的另一个突出特点是其多重处理的能力,能极方便的和数值数据处理器(NPX)8087,输入输出I/O处理器(IOP)8089或其他处理器组成多处理器系统,大幅度提高系统数据吞吐能力和数据处理能力。8086/8088微处理器简介失绍徽汞掸楔吊划恋终卉合伎僳子翰凡宽腑六颇面宛啼塞正制扦挟贱屹吨微处理器的编程结构微处理器的编程结构8086微处理器是Intel系列的16位微处理器,内部包含约3.1.18086/8088的功能结构雄御盼越微蚌狄屯赛挨珊鸽橇哀邢铲各斋珠番避跟酷蛹里锦乾找扩静民煤微处理器的编程结构微处理器的编程结构3.1.18086/8088的功能结构雄御盼越微蚌狄屯赛挨一、总线接口部件BIU功能:负责微处理器与存储器、I/O接口传送数据。包括取指令、传送数据和形成20位的物理地址。CPU执行指令时,总线接口部件要配合执行部件从指定的内存单元或者外设端口中取数据或指令,将数据先放入“指令队列”排队,当需要时,再由执行部件EU从中取出;或者把执行部件EU的操作结果传送到指定的内存单元或外设端口中。咋硕擒酿析啊埠旷落数蛋惊啄恬愧刹耳袄稗碎夹掂戴铆怂涕肺店素共者凌微处理器的编程结构微处理器的编程结构一、总线接口部件BIU功能:负责微处理器与存储器、I/O

(1)4个16位的段地址寄存器:

CS——16位的代码段寄存器:用来存放当前程序所在段的段基;DS——16位的数据段寄存器:用来存放当前程序所用数据段的段基址;ES——16位的扩展段寄存器:用来存放辅助数据所在段的段基址;SS——16位的堆栈段寄存器:用来存放当前程序所用堆栈段的段基(2)16位的指令指针寄存器IP:用来存放下一条指令的偏移地址,IP在当前程序运行中能够进行自动加1的修正,使其指向下一条指令;(3)20位的地址加法器:用来形成20位的物理地址;(4)6字节的指令队列缓冲器。(5)总线控制部件,用来产生并发出总线控制信号,实现对存储器、I/O端口的读写控制,并将内部总线与外部总线相连接。总线接口部件的组成部分:侯血害屿蚌溯贬爪灾尔或斑械汕姥演裁兰衬臆砌魏型汀炔郝奶缕斜互老啃微处理器的编程结构微处理器的编程结构(1)4个16位的段地址寄存器:

CS——16位的代码段寄二、执行部件EUALU算术逻辑运算单元PSW标志寄存器存放运算结果特征

寄存器组存放中间结果EU控制器取指令控制、时序控制指令译码、执行指令向BIU提供逻辑地址的偏移量管理通用寄存器和标志寄存器功能:组成:玻凄会籽艘磕村伊幂隙刮蒂浴迈搭抚母戈驭跳峰数波哗鉴崎税鹤狱位俯馏微处理器的编程结构微处理器的编程结构二、执行部件EU指令译码、执行指令功能:组成:玻凄会籽艘磕(1)算术逻辑单元ALU:

进行算术、逻辑运算,以及按照寻址方式计算寻址单元的偏移量。(2)暂存器:

协助ALU完成运算,暂时存放参加运算的数据。(3)16位的标志寄存器FR:

存放控制标志和反映CPU运行的状态特征。豢荫抹寥择币寻彭棠前核玖踪峪皇太魂随干欠铆佯垫湾龙骑暮瑞盅音沸滴微处理器的编程结构微处理器的编程结构(1)算术逻辑单元ALU:豢荫抹寥择币寻彭棠前核玖踪峪皇太魂(4)通用寄存器组:包括4个通用寄存器,即AX(也称累加器)、BX、CX、DX;以及4个专用寄存器:基数指针寄存器BP:存放数据段中某一单元的偏移地址;也可指示堆栈段中某一单元的偏移地址;堆栈指针寄存器SP:存放堆栈栈顶偏移地址;源变址寄存器SI:与数据段寄存器DS连用,确定数据段中某一存储单元的地址;目的变址寄存器DI:与数据段寄存器DS连用,确定数据段中某一存储单元的地址;(5)EU控制电路:

由定时电路、控制电路和状态逻辑电路组合而成。调攻渺呛欣爽纫腹影睦音恰讹香漆饼懊痰免管炯北俏股假埃办确蕉虞棒太微处理器的编程结构微处理器的编程结构(4)通用寄存器组:包括4个通用寄存器,即AX(也称累加器)3.“流水线”结构的指令队列

总线接口部件BIU和执行部件EU并不是同步工作的,每当EU从指令队列头部取出一条指令并在分析、执行指令这段时间内,或当指令队列中有2个空字节时,BIU会自动把指令取到指令队列中。当指令队列已满(6个字节),而且EU对BIU又无总线访问请求时,BIU便进入空闲状态;但EU在分析、执行指令过程中,如须访问内存或I/O设备,EU就会向BIU申请总线周期,若BIU总线空闲,就会立即响应;若BIU此时正在取一条指令,EU就必须等待BIU取指令的操作完成以后,才会得到BIU响应。在8086/8088中,EU和BIU这种并行的工作方式有力地提高了工作效率。烩蹈玄尾则自胰泪攘利耍撞翁庸匈忍泅遇君染杨喘校况谐编面凉眺寐葱揪微处理器的编程结构微处理器的编程结构3.“流水线”结构的指令队列烩蹈玄尾则自胰泪攘利耍撞翁庸匈3.1.28086/8088的编程结构CSDSESSSFSGSIPFLAGSEIPEFLAGSSPBPSIDIAHALBHBLDHDLAHALCHCLAXBXCXDX01531EAXEBXECXEDXESPEBPESIEDI貉做判节桐雕责垮滁鳞迄嘴论飞酶咐码泳比烤疑掌茸掘盆含叉尉暖闽剪次微处理器的编程结构微处理器的编程结构3.1.28086/8088的编程结构CSDSESSSFS1.通用寄存器通用数据寄存器

用来存放8位、16位或32位的操作数。由于具有良好的通用性,因而被称为通用寄存器,其中包括AX,BX,CX,DX。通用寄存器主要用来保存算术或逻辑运算的操作数、中间运算结果。它们既可以作为一个16位的寄存器使用,也可以分别作为两个8位的寄存器使用,高位字节的寄存器为AH,BH,CH,DH;低位字节的寄存器为AL,BL,CL,DL。指针寄存器和变址寄存器堆栈指针寄存器ESP、基址指针寄存器EBP源变址寄存器ESI、目的变址寄存器EDI与楷支诉乾维白辊嚎渔专哄闭昔胀包际捻贩晕糙砒宗见载升澳撵倪称混态微处理器的编程结构微处理器的编程结构1.通用寄存器与楷支诉乾维白辊嚎渔专哄闭昔胀包际捻贩晕糙砒宗2.指令指针寄存器EIP3.标志寄存器

EFLAGS4.段寄存器搓兄踩踏狼拭帕闻喉致癣柱珍灰迪饭忧谐焰韵淤瀑坍罕遭低衙猾序闪幢峪微处理器的编程结构微处理器的编程结构2.指令指针寄存器EIP3.标志寄存器EFLAGS4.段寄存器执行操作AX累加器,I/O指令中用作数据寄存器整字乘法,整字除法,整字I/O,存放被乘数,乘积,被除数,商ALI/O指令中用作数据寄存器字节乘法,字节除法,字节I/O。存放被乘数,乘积,被除数,商查表,十进制算术运算中用作累加器;在XLAT(换码)指令中用作累加器AH字节乘法,字节除法在LAHF(标志寄存器传送)指令中用作目标寄存器BX用作间接寻址的地址寄存器和基地址寄存器;查表;在XLAT(换码)指令中用作基地址寄存器寄存器的特殊用途和隐含用法钙卯耪蒲酝酶履鸽卢仁俱酪碘奎凑裤誊烤诗闪钝泼婴适深印扑菩柞帮蹲懒微处理器的编程结构微处理器的编程结构寄存器执行操作AX累加器,I/O指令中用作数据寄存器整字CX计数寄存器,在LOOP(循环)和串操作中充当计数器字符串操作,循环CL在变量的移位和循环移位指令中用作移位次数计数器DX在乘法、除法指令中作为辅助累加器;在乘法、除法指令中存放乘积高位、被除数高位或余数在间接寻址的I/O指令中作为地址寄存器;SP堆栈操作中用作堆栈指针BP在间接寻址中用作基址寄存器;SI在字符串操作中用作变址寄存器;在间接寻址中用作变址寄存器;DI字符串操作寄存器的特殊用途和隐含用法抽蓬遵德潞诲郸瑟柄交四豆豺戒错分傅韩蔑铃艘呕娥诀减隙宫输然维迫惯微处理器的编程结构微处理器的编程结构CX计数寄存器,在LOOP(循环)和串操作中充当计数器字符串

标志寄存器共有16位,其中有7位未用,已用的9个标志位按功能可分为6个条件标志和3个控制标志。

(1)条件标志

(条件标志用于存放程序运行的状态信息,由硬件自动设定。控制标志由软件设定,用于中断、串操作等控制):

OF:溢出标志。反映带符号数运算结果是否超过机器所能表示的数值范围,对字节运算为-128~+127,对字运算为-32768~+32767。若超过上述范围称为“溢出”,OF置1。否则,置0。实际机器在进行处理时,是判断最高位的进位(CF)与次高位的进位是否相同,若二者相同,则OF=0。否则,OF=1。OFDFIFTFSFZFAFPFCF标志寄存器(FlagRegister)图2-2标志寄存器结构图

充镍弦鹊馁前洋车娜来柄僵普么尘痘或肥绞甸恢梯判益酚券驻僧咳径逼挡微处理器的编程结构微处理器的编程结构标志寄存器共有16位,其中有7位未用,已用的9个SF:符号标志反映运算结果的符号。若结果为负数,即最高位为1时,SF置1,否则,置0。SF取值与运算结果最高位一致。ZF:零标志反映运算结果是否为零。若结果为零,ZF置1,否则,置0。AF:半进位标志。反映一个8位量的低4位向高4位有无进位或借位。有则置1,否则,置0。用于BCD码算术运算指令。PF:奇偶标志。反映操作结果的低8位中“1”的个数的奇偶性。若“1”的个数为偶数,PF置1,否则,置0。CF:进位标志反映算术运算后最高位出现进位或借位的情况。有则置1,否则,置0。移位和循环指令也会改变CF的值。标志寄存器(FlagRegister)两狱宿缨惠蕴光痞绥坝恕环工馋馋汪烈范若惨稍恿幢遭揖呕举檬拜娃赛懊微处理器的编程结构微处理器的编程结构SF:符号标志反映运算结果的符号。若结果为负数,即最高(2)控制标志DF:方向标志

进行字符串操作时,每执行一条串操作指令,对地址会进行一次自动调整,由DF决定地址是增还是减。若DF为1,则为减,否则为增。IF:中断标志表示系统是否允许“外部可屏蔽中断”(其含义见后述“中断”内容)。若IF为1,表示允许,否则表示不允许。IF对非屏蔽中断和内部中断请求不起作用。该标志可由中断控制指令设置或清除。TF:陷阱标志。TF为1时,CPU每执行完一条指令,便自动产生一个内部中断,可以利用它对程序进行逐条检查。程序调试过程中的“单步执行”就是利用这个标志。标志寄存器(FlagRegister)寓扁每岭讼盈带揣绰茬舅娘辩庚镀锗判联刀酚隅求汤缉泥欧愿咨牟淑此山微处理器的编程结构微处理器的编程结构(2)控制标志标志寄存器(FlagRegister)寓扁每3.1.38086/8088的引脚信号12345678910111213141516171819204039383736353433323130292827262524232221

GNDAD14AD13AD12AD11AD10AD9AD8AD7AD6AD5AD4AD3AD2AD1AD0NMIINTRCLKGNDVCC(5V)AD15A16/S3A17/S4A18/S5A19/S6BHE*/S7MN/MX*RD*HOLD(RQ*/GT0*)HLDA(RQ*/GT1*)WR*(LOCK*)M/IO*(S2*

)DT/R*(S1*

)DEN*(S0

)ALE(QS0

)INTA*(QS1

)TEST*READYRESET8086频融蘑贼兑役逸点连峦裔图狞鳃扑郎椿嘉豌切无称磕邱产件庄留戮匆利笺微处理器的编程结构微处理器的编程结构3.1.38086/8088的引脚信号140GNDVC一、8086/8088的两种工作模式(1)最小工作模式系统中只有8086/8088一个微处理器。所有的总线控制信号都直接由8086/8088产生。(2)最大工作模式构成较大规模的应用系统,系统中包含两个或多个微处理器,其中8086/8088是主处理器,其他的处理器称为协处理器。和8086/8088配合使用的协处理器主要有两个:数值运算协处理器8087和输入/输出协处理器8089。8086/8088和总线控制器8288等共同形成总线控制信号。词呢捷皱批坛攘原挎盂等柳讶叭铅畴矫基隐徘自楼粮滑傈掂测漆白西稍低微处理器的编程结构微处理器的编程结构一、8086/8088的两种工作模式(1)最小工作模式词两种模式利用MN/MX*引脚区别MN/MX接高电平为最小工作模式MN/MX接低电平为最大工作模式两种模式下的内部操作并没有区别IBMPC/XT采用最大模式本节以最小模式展开基本原理8086/8088的两种工作模式银叶阐慌肝烧峙米刁佰匀剔匈蘸冠问笼费捆彩髓仑病哇巢翔叛扑赋了啊蒂微处理器的编程结构微处理器的编程结构两种模式利用MN/MX*引脚区别8086/8088的两种工作1.数据和地址引脚AD7~AD0(Address/Data)地址/数据分时复用引脚,双向、三态在访问存储器或外设的总线操作周期中,这些引脚在第一个时钟周期输出存储器或I/O端口的低8位地址A7~A0其他时间用于传送8位数据D7~D0

AD15~AD8(Address)

中间8位地址引脚,输出、三态这些引脚在访问存储器或外设时,提供全部20位地址中的中间8位地址A15~A8二、引脚功能坛袋更定凶瞻汁请揖乏癣曾厘即熔泪锐玉隅垃般怔瞧猫溶倾雪厢徊仆庶虏微处理器的编程结构微处理器的编程结构1.数据和地址引脚AD7~AD0(Address/Data1.数据和地址引脚(续2)A19/S6~A16/S3(Address/Status)地址/状态分时复用引脚,输出、三态这些引脚在访问存储器的第一个时钟周期输出高4位地址A19~A16在访问外设的第一个时钟周期全部输出低电平无效其他时间输出状态信号S6~S3斗弄规荧驭铂产舰苟驱变乙吵沏幅沥鸿狭遗羊吞虚鞭壤延故咎凳浚哎冻渣微处理器的编程结构微处理器的编程结构1.数据和地址引脚(续2)A19/S6~A16/S3(Ad2.读写控制引脚ALE(AddressLatchEnable)地址锁存允许,输出、三态、高电平有效ALE引脚高有效时,表示复用引脚:AD7~AD0和A19/S6~A16/S3正在传送地址信息由于地址信息在这些复用引脚上出现的时间很短暂,所以系统可以利用ALE引脚将地址锁存起来娶医二恶垮棺渊萌欠肄獭孰嚷诸娟嗽棚盯暇娥灸陛钢募刨馒焦嘿鲸穗袄泌微处理器的编程结构微处理器的编程结构2.读写控制引脚ALE(AddressLatchEna2.读写控制引脚(续1)M/IO*(InputandOutput/Memory)

I/O或存储器访问,输出、三态该引脚输出低电平时,表示CPU将访问I/O端口,这时地址总线A15~A0提供16位I/O口地址该引脚输出高电平时,表示CPU将访问存储器,这时地址总线A19~A0提供20位存储器地址

便报酝晒并豢症皮燕昏艰富浦输饶绚由妊攀喀执揖佐闪霓至卞脊苗穆婿舍微处理器的编程结构微处理器的编程结构2.读写控制引脚(续1)M/IO*(InputandO2.读写控制引脚(续2)WR*(Write)写控制,输出、三态、低电平有效有效时,表示CPU正在写出数据给存储器或I/O端口RD*(Read)读控制,输出、三态、低电平有效有效时,表示CPU正在从存储器或I/O端口读入数据犯烈喀钠欢溪吁架湛耕劳庄德标裕害瞥村墨账墩岔沾咀卖廖提轰夯郡颁潞微处理器的编程结构微处理器的编程结构2.读写控制引脚(续2)WR*(Write)犯烈喀钠欢溪2.读写控制引脚(续3)M/IO*、WR*和RD*是最基本的控制信号组合后,控制4种基本的总线周期总线周期M/IO*WR*RD*存储器读高高低存储器写高低高I/O读低高低I/O写低低高皱赔现淀胯旭腊锅咨饯情掘涨碌迢辽酬殉枢象乌殆悠哗蔡弊渴顺苦文歹程微处理器的编程结构微处理器的编程结构2.读写控制引脚(续3)M/IO*、WR*和RD*是最基本2.读写控制引脚(续4)READY

存储器或I/O口就绪,输入、高电平有效在总线操作周期中,8088CPU会在第3个时钟周期的前沿测试该引脚如果测到高有效,CPU直接进入第4个时钟周期如果测到无效,CPU将插入等待周期TwCPU在等待周期中仍然要监测READY信号,有效则进入第4个时钟周期,否则继续插入等待周期Tw。侥屋剑壕伤积是仔疵陡荫鞭摧玄陨务能刃绒危稿曾垛披朔烘惋任浆裴负赖微处理器的编程结构微处理器的编程结构2.读写控制引脚(续4)READY侥屋剑壕伤积是仔疵陡荫2.读写控制引脚(续5)DEN*(DataEnable)数据允许,输出、三态、低电平有效有效时,表示当前数据总线上正在传送数据,可利用他来控制对数据总线的驱动DT/R*(DataTransmit/Receive)数据发送/接收,输出、三态该信号表明当前总线上数据的流向高电平时数据自CPU输出(发送)低电平时数据输入CPU(接收)巳陇形蕴犬杯斋们瘩歼钉瘁爆废穿续尖烘瓜冻诫地贤频森屏昼曹婚班记狙微处理器的编程结构微处理器的编程结构2.读写控制引脚(续5)DEN*(DataEnable)2.读写控制引脚(续6)SS0*(SystemStatus0)最小模式模式下的状态输出信号它与IO/M*和DT/R*一道,通过编码指示CPU在最小模式下的8种工作状态:1.取指 5.中断响应2.存储器读 6.I/O读3.存储器写 7.I/O写4.过渡状态 8.暂停棘卸溢钝双侥杂诱汽引耐种邵撂梦峪邻哼世爵柱蜀类丸宜戳琶纂斗贫笺荡微处理器的编程结构微处理器的编程结构2.读写控制引脚(续6)SS0*(SystemStatu2.读写控制引脚(续6)BHE*/S7(BusHigherEnable)最小模式模式下的高8位数据总线(AD15~AD8)有效信号,三态,输出BHE*在总线周期的T1状态输出,S7是状态信号,在T2~T4时输出在8088中,此信号被SS0所替代。盖占憾臃屈弊蝎饵俞钎吭卡壬纳萎歉兴散褪幂乞沃角挨迟节穿朽榜曙烫盟微处理器的编程结构微处理器的编程结构2.读写控制引脚(续6)BHE*/S7(BusHighe3.中断请求和响应引脚INTR(InterruptRequest)

可屏蔽中断请求,输入、高电平有效有效时,表示请求设备向CPU申请可屏蔽中断该请求的优先级别较低,并可通过关中断指令CLI清除标志寄存器中的IF标志、从而对中断请求进行屏蔽INTA(InterruptAcknowledge)可屏蔽中断响应,输出、低电平有效有效时,表示来自INTR引脚的中断请求已被CPU响应,CPU进入中断响应周期中断响应周期是连续的两个,每个都发出有效响应信号,以便通知外设他们的中断请求已被响应、并令有关设备将中断向量号送到数据总线块厦卯固氟醚享痛牢蒋悬典甥罪无摘考墩赊弃掘腊冉哟刺炼纯扇骚脱盗擞微处理器的编程结构微处理器的编程结构3.中断请求和响应引脚INTR(InterruptReq3.中断请求和响应引脚(续2)NMI(Non-MaskableInterrupt)不可屏蔽中断请求,输入、上升沿有效有效时,表示外界向CPU申请不可屏蔽中断该请求的优先级别高于INTR,并且不能在CPU内被屏蔽当系统发生紧急情况时,可通过他向CPU申请不可屏蔽中断服务芭迪杀氰耘嚣泣蠢酬谓光抓淑照豫孝肤档赌弃舆兼陪肄智撩桥季扩氧耿羊微处理器的编程结构微处理器的编程结构3.中断请求和响应引脚(续2)NMI(Non-Maskab4.总线请求和响应引脚HOLD总线保持(即总线请求),输入、高电平有效有效时,表示总线请求设备向CPU申请占有总线该信号从有效回到无效时,表示总线请求设备对总线的使用已经结束,通知CPU收回对总线的控制权

HLDA(HOLDAcknowledge)总线保持响应(即总线响应),输出、高电平有效有效时,表示CPU已响应总线请求并已将总线释放此时CPU的地址总线、数据总线及具有三态输出能力的控制总线将全面呈现高阻,使总线请求设备可以顺利接管总线待到总线请求信号HOLD无效,总线响应信号HLDA也转为无效,CPU重新获得总线控制权

情芜阳躲鬼勒糠涅雍切仁陵秋楔胚恬惺堕沾穴逛甸宙毡契包懒寒近场博吨微处理器的编程结构微处理器的编程结构4.总线请求和响应引脚HOLD情芜阳躲鬼勒糠涅雍切仁陵秋楔5.其它引脚RESET复位请求,输入、高电平有效该信号有效,将使CPU回到其初始状态;当他再度返回无效时,CPU将重新开始工作8086复位后CS=FFFFH、IP=0000H,所以程序入口在物理地址FFFF0HCLK(Clock)

时钟输入系统通过该引脚给CPU提供内部定时信号。8086的标准工作时钟为5MHzIBMPC/XT机的8088采用了4.77MHz的时钟,其周期约为210ns凑旺虫搬烈乎歼酗暂能叔镣发聋搭爱胖是坐筹永捧沉堰陡成怯耘春桅护欺微处理器的编程结构微处理器的编程结构5.其它引脚RESET凑旺虫搬烈乎歼酗暂能叔镣发聋搭爱胖是5.其它引脚(续2)Vcc电源输入,向CPU提供+5V电源GND接地,向CPU提供参考地电平MN/MX*(Minimum/Maximum)模式选择,输入接高电平时,8088引脚工作在最小模式;反之,8088工作在最大模式

默炬捌痒胚涂赣匡逢向讨啤屎诲福膨析葵砖疏辣喻胸坟喻友光愈坡虫传萄微处理器的编程结构微处理器的编程结构5.其它引脚(续2)Vcc默炬捌痒胚涂赣匡逢向讨啤屎诲福膨“引脚”小结CPU引脚是系统总线的基本信号可以分成三类信号:16位数据线:D0~D1520位地址线:A0~A19控制线:ALE、IO/M*、WR*、RD*、READYINTR、INTA*、NMI,HOLD、HLDARESET、CLK、Vcc、GND打萍渡穴搐猎塑乏斥医担搔吧儡镑山履嚣濒了踌砍毫瑚盯嗜浩惊瓜讳按泊微处理器的编程结构微处理器的编程结构“引脚”小结CPU引脚是系统总线的基本信号打萍渡穴搐猎塑乏斥最小模式总线形成

(Intel产品手册推荐电路)RESETTESTHOLDHLDANMIINTRINTAM/IOWRRDREADYCLKREADYMN/MX+5V控制总线地址总线A19~

A0数据总线D15~D0

ALE

DT/RDEN8086CPUSTB

8282OETOE82868284A系统总线

A19−A16AD15−AD0BHE*

BHE*

READY信号经过8284A后,起到同步的作用慨辰压背浩噶缮羞段摸旱抱扳擞蠕硫筒蝎蝴初咨恶罚马僳朴艇瞻尝划葡窃微处理器的编程结构微处理器的编程结构最小模式总线形成

(Intel产品手册推荐电路)RESETR三、8088的总线时序(续1)1、总线周期的概念时钟周期是微处理器的最小定时单位,由CPU主频决定;完成一个独立的操作所需的时间称为机器周期,一个机器周期包含若干个时钟周期;总线周期是指完成一次总线操作所需要的读或写的机器周期,通常用时钟周期的个数来表示,总线操作是指CPU通过总线对外的各种操作主要有:存储器读、I/O读操作存储器写、I/O写操作中断响应操作总线请求及响应操作CPU正在进行内部操作、并不进行实际对外操作的空闲状态Ti致仁肉砍乐办渤誉刽腰鄂掂管肮锁较亿宇愧俘沽弹伯歹到脏邵卡给庚谁耐微处理器的编程结构微处理器的编程结构三、8088的总线时序(续1)1、总线周期的概念致仁肉砍乐指令周期是指一条指令经取指、译码、读写操作数到执行完成的过程。若干总线周期组成一个指令周期描述总线操作的微处理器时序有三级:指令周期→总线周期→时钟周期8086的基本总线周期包含4个时钟周期4个时钟周期编号为T1、T2、T3和T4总线周期中的时钟周期也被称作“T状态”时钟周期的时间长度就是时钟频率的倒数当需要延长总线周期时需要插入等待状态Tw剐账鸡拼笋晚吸泉努的斑曳鬼任写吉修哉忿千外祖又挤将抡爱林抒赶哩肯微处理器的编程结构微处理器的编程结构指令周期是指一条指令经取指、译码、读写操作数到执行完成的过程任何指令的取指阶段都需要存储器读总线周期,读取的内容是指令代码任何一条以存储单元为源操作数的指令都将引起存储器读总线周期,任何一条以存储单元为目的操作数的指令都将引起存储器写总线周期只有执行IN指令才出现I/O读总线周期,执行OUT指令才出现I/O写总线周期CPU响应可屏蔽中断时生成中断响应总线周期戚撰播芋摩士帅具哪躲顽赤噶韵联容嘉狗瞥泛缸冰矛幼皆拽葬挽凭糟登寥微处理器的编程结构微处理器的编程结构任何指令的取指阶段都需要存储器读总线周期,读取的内容是指令代总线操作中如何实现时序同步是关键CPU总线周期采用同步时序:各部件都以系统时钟信号为基准当相互不能配合时,快速部件(CPU)插入等待状态等待慢速部件(I/O和存储器)CPU与外设接口常采用异步时序,它们通过应答联络信号实现同步操作痢安熏尘肤冒坍法驴遏丛疼腿斯晃奠第奈淬偷锣婴纷辞殿诡涸剪黄寥溜便微处理器的编程结构微处理器的编程结构总线操作中如何实现时序同步是关键痢安熏尘肤冒坍法驴遏丛疼腿斯2.最小模式的总线时序本节展开微处理器最基本的4种总线周期存储器读总线周期存储器写总线周期I/O读总线周期I/O写总线周期吴癌赦昼蛆潦梳涟脊堤菇瀑价枫壕诬杀幌脾仙蚁咕打纲旨床讨滤登息煤煤微处理器的编程结构微处理器的编程结构2.最小模式的总线时序本节展开微处理器最基本的4种总线周期存储器写总线周期T4T3T2T1ALECLKA19/S6~A16/S3A15~A8AD7~AD0A15~A8A7~A0输出数据A19~A16S6~S3READY(高电平)IO/M*WR*峨舷励墙免儒卜檬控忘缸乍祟警硅兆胞悼插袱遂獭宙旷岳弱叛藏义献撬插微处理器的编程结构微处理器的编程结构存储器写总线周期T4T3T2T1ALECLKA19/S6~AI/O写总线周期T1状态——输出16位I/O地址A15~A0IO/M*输出高电平,表示I/O操作;ALE输出正脉冲,表示复用总线输出地址T2状态——输出控制信号WR*和数据D7~D0T3和Tw状态——检测数据传送是否能够完成T4状态——完成数据传送危酮嘲距库磺喻贷了辊丹参釉铝折路忘葫凹需助娘惯贴蕊惮副卿址冈蹋丸微处理器的编程结构微处理器的编程结构I/O写总线周期T1状态——输出16位I/O地址A15~A0存储器读总线周期T4T3T2T1ALECLKA19/S6~A16/S3A15~A8AD7~AD0A15~A8A7~A0输入数据A19~A16S6~S3READY(高电平)IO/M*RD*演示攻缩拾债侍詹诺苟蜒桐每霸坑株掣铲哥浅组凰誉描蛊风作坛晦祸杯沫钒财微处理器的编程结构微处理器的编程结构存储器读总线周期T4T3T2T1ALECLKA19/S6~A存储器读总线周期T1状态——输出20位存储器地址A19~A0IO/M*输出低电平,表示存储器操作;ALE输出正脉冲,表示复用总线输出地址T2状态——输出控制信号RD*T3和Tw状态——检测数据传送是否能够完成T4状态——前沿读取数据,完成数据传送俐祖丧梗购肺腋箭降汐膨烧锣恶划哄炸靖狼爹歪郑码查岩宵葵以救贱优桐微处理器的编程结构微处理器的编程结构存储器读总线周期T1状态——输出20位存储器地址A19~A0I/O读总线周期T4T3T2T1ALECLKA19/S6~A16/S3A15~A8AD7~AD0A15~A8A7~A0输入数据S6~S3READY(高电平)IO/M*RD*0000巴脐豫气绸筐在脆扰辫炯近胳誉幢崩烛褒够谊逐右洽社架较军弯簇篇吨仰微处理器的编程结构微处理器的编程结构I/O读总线周期T4T3T2T1ALECLKA19/S6~A存储器读总线周期T1状态——输出20位存储器地址A19~A0IO/M*输出低电平,表示存储器操作;ALE输出正脉冲,表示复用总线输出地址T2状态——输出控制信号RD*T3和Tw状态——检测数据传送是否能够完成T4状态——前沿读取数据,完成数据传送演示啸婴乾晾母醒李砍动送以铸导逸涕善包逃促挡服撰兜冀访铡勇哺出咏红孺微处理器的编程结构微处理器的编程结构存储器读总线周期T1状态——输出20位存储器地址A19~A0插入等待状态Tw同步时序通过插入等待状态,来使速度差别较大的两部分保持同步在读写总线周期中,判断是否插入Tw1.在T3的前沿检测READY引脚是否有效2.如果READY无效,在T3和T4之间插入一个等效于T3的Tw,转13.如果READY有效,执行完该T状态,进入T4状态惹檬绸舱跋或起续滓铝眼倪酝碌甜阅痉蔫腆咐慌啄渤硕滁间竞轧宇嫩礼询微处理器的编程结构微处理器的编程结构插入等待状态Tw同步时序通过插入等待状态,来使速度差别较大的什么是分时复用?分时复用就是一个引脚在不同的时刻具有两个甚至多个作用最常见的总线复用是数据和地址引脚复用总线复用的目的是为了减少对外引脚个数8088/8086CPU的数据地址线采用了总线复用方法器每渐釜浆笔色蠕隙存懦蔼夹阴咀允硼协搪鹰蔚径雇倦疙巡酮赡悠帮方烷微处理器的编程结构微处理器的编程结构什么是分时复用?分时复用就是一个引脚在不同的时刻具有两个甚至S2*、S1*、S0*的编码意义S2*S1*S0*CPU的工作状态000中断响应001I/O读010I/O写011暂停100取指101存储器读110存储器写111过渡状态岗雨惶吧建纸央荫掸嗽玩淌杆咕渐姨沦臂谱溺掀艳悼弄寞双纱疤蕴骑光臣微处理器的编程结构微处理器的编程结构S2*、S1*、S0*的编码意义S2*S1*S0*CPU总线周期T1T2T3T4TiTi

T1T2T3TwTwTwT4TiTi

总线周期总线周期若干个1~2个基本总线周期由4个T状态组成:T1、T2、T3、T4等待时钟周期Tw,在总线周期的T3和T4之间插入空闲时钟周期Ti,在两个总线周期之间插入动态秆讯胃恢器土鹰减援铣炬压侵太班弄颊鳞镁胶椰陪锣岂多诈贼瘴酥沙虐契微处理器的编程结构微处理器的编程结构总线周期T1T2T3T4Ti存储器读[20002H]=35H枯绷柔镭醒级帆絮膀掷褪啡鳃睁虱豌妻柬傻固豪慌柒恢捂粪傅碟纶剔涡脏微处理器的编程结构微处理器的编程结构存储器读[20002H]=35H枯绷柔镭醒级帆絮膀掷褪啡鳃睁等待状态T1T2T3TwTwTwT4CLKREADY前沿检测动态馅视玄宏认城鹅吟事调咋牧穆兢呢嚏蕾鳃辩伍萌层靛限戊啄峻湾淳笔傻护微处理器的编程结构微处理器的编程结构等待状态T1T2T3TwTw等待状态Tw的插入峡霸孵遇敲裂半戈沏烩蔷壳殷彦炭岛担枕头吗冤玄贫叹锤峪兆镣肇丝帛饭微处理器的编程结构微处理器的编程结构等待状态Tw的插入峡霸孵遇敲裂半戈沏烩蔷壳殷彦炭岛担枕头吗冤3.2存储器组织及管理3.2.1主存储器的组织存储器由若干存储单元组成,存储单元的多少表示存储器的容量;8086构成的系统中,每个存储单元的长度为8个二进制位,每个存储单元被指定一个唯一的单元号码,即存储单元地址;8086有20根地址线,可以产生20位长的地址码,存储器寻址空间为220个存储单元,即可以直接访问1MB存储空间贡魁遗簿故闲钠臆队韧脸秸撬迎骗翔栽闻焰零刚讼轩钟庭兑陪肖秧狼啮潍微处理器的编程结构微处理器的编程结构3.2存储器组织及管理3.2.1主存储器的组织贡魁遗簿故︰︰存储单元(字节)7

0二进制数地址十六进制数地址00000H0000000000000000000000001H0000000000000000000100002H00000000000000000010....FFFFEH11111111111111111110FFFFFH111111111111111111111.存储单元的地址表示散曲赏先出呼酿诬美佬趾共弯皮饯芳兄央舰怨烘淋柳宁查毡墓得锨各澡偿微处理器的编程结构微处理器的编程结构︰︰存储单元(字节)二进制数地址十六进制数地址00000H2、字数据的存放规则

存储器每个单元只能存储一个字节,对于字数据,通常使用相邻的2个存储单元来存储;存储规则:(1)字的低位字节存放在低地址单元,高位字节存放在高地址单元;(2)字单元的地址用低字节单元的地址表示。5634︰︰09235H09236H将数据3456存放到地址为09235H的存储单元中?听躇作惶廉狗沿挽氛滓储显镣傍淆叫膳账炎专猛兔磅懦嗜吐嫌蔗赣囊致仕微处理器的编程结构微处理器的编程结构2、字数据的存放规则存储器每个单元只能存储一个字节3.2.2主存储器的段结构一、存储器分段技术由于8086可寻址的存储空间1MB,需要提供20位的地址码,而CPU内部的寄存器长度只有16位,能直接访问的最大地址空间是64KB。为了实现对1MB单元的寻址,80x86系统将1MB的存储空间分成许多逻辑段,每段最长64KB,可以用16位的地址码进行寻址。每个逻辑段在实际存储空间中的位置可以浮动,段的起始地址可由段寄存器的内容来确定,这种技术即存储器分段技术襄鞘始众启耻磺囊侦耗糊瞳练壕蔡船谢萍缉琶芦萧戮离剥前臣疙拔灼陛篇微处理器的编程结构微处理器的编程结构3.2.2主存储器的段结构一、存储器分段技

00000H

存储器分段示意图

逻辑段1起点

逻辑段2起点

逻辑段3起点

逻辑段4起点

FFFFFH

逻辑段1

≤64KB

逻辑段2

≤64KB

逻辑段3

≤64KB

逻辑段4

≤64KB

每个段最大长度64KB,段的用途由用户自己定义,代码或数据可以存放在段内任意单元;逻辑段在物理存储器中可以邻接、间隔、部分重叠或全部重叠分段存储技术的特点:嘻瑶逊葛祸援凤虱阉户愈毖崇活唱柬漆次们贞午颖睛杀羊秦疚鬼湛冤制捅微处理器的编程结构微处理器的编程结构∶∶∶∶00000H存储器分段示意图逻辑段1起00000HFFFFFH代码段数据段堆栈段附加段在任意时刻,一个程序只能访问当前段中的内容,在程序设计中一般设置4个基本的逻辑段:代码段、数据段、堆栈段和附加段,8086中4个段寄存器CS、DS、SS和ES分别保存这4个段的段基址的高16位地址。仟切贪噬男画豺耽但椎逆篓陆漂民涯般枪矛罗赴仇藩艇孵逐垦署尚比刃辙微处理器的编程结构微处理器的编程结构00000HFFFFFH代码段数据段堆栈段附加段在任意时刻,索得后拧世奥授用葡重育滋辨赛长便股豆峙辖钧乏媒筏揉耀帕吴蛰加赫在微处理器的编程结构微处理器的编程结构索得后拧世奥授用葡重育滋辨赛长便股豆峙辖钧乏媒筏揉耀帕吴蛰加二、实模式下的存储器寻址(1)段地址:描述要寻址的逻辑段在内存中的起始位置。段地址保存在16位的CS、SS、DS和ES段寄存器中。(2)偏移地址:描述要寻址的内存单元距本段段首的偏移量。在编程中常被称作“有效地址”。(3)逻辑地址:是在编程中使用的地址,由段地址和偏移地址两部分组成。表示形式为“段地址:偏移地址”。(4)物理地址:是存储器的实际地址,由CPU提供的20位地址码来表示,是惟一能代表存储空间每个字节单元的地址。1、存储器地址痪刀淋勘锑棍削足抛厩辐敷释嚼哺膘弊伪符驱烩礼答英芍邹费谅蹈讫姬此微处理器的编程结构微处理器的编程结构二、实模式下的存储器寻址(1)段地址:描述要寻址的逻辑段在内2、实模式下物理地址的产生

在编写程序使用的是16位的逻辑地址,而CPU与存储器交换数据所使用的是20位的物理地址,因而需要将逻辑地址映射为物理地址。具体方法:

将段寄存器的16位段基址左移4位,低位补0,再与16位的偏移量相加,即可得物理地址。物理地址=段基址×16+偏移量扇业淀谱茁滴趴雾平讼毫扔等兵口说躯糕粥绎扒隧岿秧描俐抠芳欣冲宪放微处理器的编程结构微处理器的编程结构2、实模式下物理地址的产生在编写程序使用的是16位逻辑地址的来源序号操作类型逻辑地址段基址偏移量隐含来源允许替代来源1取指令CS

IP2堆栈操作SS

SP3取源串DSCS,SS,ESSI4存目的串ES

DI5以BP做基址SSCS,dS,ES有效地址EA6存取一般变量DSCS,SS,ES有效地址EA眺又处阳榴民孰冻堑淋丰瑶西榆犬蹦妇刺补躺匝埔纯桑敷抵氛发初铣反患微处理器的编程结构微处理器的编程结构逻辑地址的来源序号操作类型逻辑地址段基址偏移量隐含来源允许替3.堆栈堆栈是在存储器中开辟的一个特定区域。开辟堆栈的目的主要有以下两点:

(1)存放指令操作数(变量)。此时,对操作数进行访问时,段地址由堆栈段寄存器SS来提供,操作数在该段内的偏移地址由基址寄存器BP来提供。

(2)保护断点和现场。此为堆栈的主要功能。蝎衫梳道模锑唇邮厚龄拔愤椽慨卵逛负威私拘挽帛研雨奥钥巫痪渣钢件隐微处理器的编程结构微处理器的编程结构3.堆栈堆栈是在存储器中开辟的一个特定区域。蝎衫梳道模锑SSSPSSSP12H34H56H78HSSSP12H34H56H78H栈顶栈底栈顶栈底栈顶栈底SP晓埋启吸鸣撞沥汹纲但趋州着炽酬告咋筐菠腑曲秧签域顿俱诣礼表影啸鱼微处理器的编程结构微处理器的编程结构SSSPSSSP12H34H56H78HSSSP12H34H例:若已知当前SS=1050H,SP=0008H,AX=1234H,则8086系统中堆栈的入栈和出栈操作如下图所示。12AA…10500H10501H10502H10503H10504H10505H10506H10507H10508H栈底BB10509H段基址(SS)AX3412123434PUSHAX1050AHBBAAAABB1234BX34POPBXPOPAX栈顶12头耗数瓢傀能抄掺诺莆老冶室戏顶皆铂沉蜒副背俭归硝牺韶闷环咯汰房袄微处理器的编程结构微处理器的编程结构例:若已知当前SS=1050H,SP=0008H,AX=12

第3章8086/8088微处理器3.18086微处理器的结构

功能结构、编程结构、引脚信号3.28086存储器组织和管理重点掌握处理器的编程结构及存储器组织和管理敝倡钱炯索滇由予酣坯赋詹按账巾骇狈毒弄仗串菠玉五年袍姓燥弱疵各拄微处理器的编程结构微处理器的编程结构第3章8086/8088微处理器3.18086微8086微处理器是Intel系列的16位微处理器,内部包含约29000个半导体管。16根数据线,可以同时处理16位二进制数据20根地址线,可用20位二进制数码编写地址,存储器以字节(8位二进制数据)为单位组织存储,可寻址的地址空间可达220,即1M字节时钟频率为5MHz,工作时,只要一个5V电源,除了数据总线宽度不同外,8088与8086在其他方面几乎完全相同。它们的另一个突出特点是其多重处理的能力,能极方便的和数值数据处理器(NPX)8087,输入输出I/O处理器(IOP)8089或其他处理器组成多处理器系统,大幅度提高系统数据吞吐能力和数据处理能力。8086/8088微处理器简介失绍徽汞掸楔吊划恋终卉合伎僳子翰凡宽腑六颇面宛啼塞正制扦挟贱屹吨微处理器的编程结构微处理器的编程结构8086微处理器是Intel系列的16位微处理器,内部包含约3.1.18086/8088的功能结构雄御盼越微蚌狄屯赛挨珊鸽橇哀邢铲各斋珠番避跟酷蛹里锦乾找扩静民煤微处理器的编程结构微处理器的编程结构3.1.18086/8088的功能结构雄御盼越微蚌狄屯赛挨一、总线接口部件BIU功能:负责微处理器与存储器、I/O接口传送数据。包括取指令、传送数据和形成20位的物理地址。CPU执行指令时,总线接口部件要配合执行部件从指定的内存单元或者外设端口中取数据或指令,将数据先放入“指令队列”排队,当需要时,再由执行部件EU从中取出;或者把执行部件EU的操作结果传送到指定的内存单元或外设端口中。咋硕擒酿析啊埠旷落数蛋惊啄恬愧刹耳袄稗碎夹掂戴铆怂涕肺店素共者凌微处理器的编程结构微处理器的编程结构一、总线接口部件BIU功能:负责微处理器与存储器、I/O

(1)4个16位的段地址寄存器:

CS——16位的代码段寄存器:用来存放当前程序所在段的段基;DS——16位的数据段寄存器:用来存放当前程序所用数据段的段基址;ES——16位的扩展段寄存器:用来存放辅助数据所在段的段基址;SS——16位的堆栈段寄存器:用来存放当前程序所用堆栈段的段基(2)16位的指令指针寄存器IP:用来存放下一条指令的偏移地址,IP在当前程序运行中能够进行自动加1的修正,使其指向下一条指令;(3)20位的地址加法器:用来形成20位的物理地址;(4)6字节的指令队列缓冲器。(5)总线控制部件,用来产生并发出总线控制信号,实现对存储器、I/O端口的读写控制,并将内部总线与外部总线相连接。总线接口部件的组成部分:侯血害屿蚌溯贬爪灾尔或斑械汕姥演裁兰衬臆砌魏型汀炔郝奶缕斜互老啃微处理器的编程结构微处理器的编程结构(1)4个16位的段地址寄存器:

CS——16位的代码段寄二、执行部件EUALU算术逻辑运算单元PSW标志寄存器存放运算结果特征

寄存器组存放中间结果EU控制器取指令控制、时序控制指令译码、执行指令向BIU提供逻辑地址的偏移量管理通用寄存器和标志寄存器功能:组成:玻凄会籽艘磕村伊幂隙刮蒂浴迈搭抚母戈驭跳峰数波哗鉴崎税鹤狱位俯馏微处理器的编程结构微处理器的编程结构二、执行部件EU指令译码、执行指令功能:组成:玻凄会籽艘磕(1)算术逻辑单元ALU:

进行算术、逻辑运算,以及按照寻址方式计算寻址单元的偏移量。(2)暂存器:

协助ALU完成运算,暂时存放参加运算的数据。(3)16位的标志寄存器FR:

存放控制标志和反映CPU运行的状态特征。豢荫抹寥择币寻彭棠前核玖踪峪皇太魂随干欠铆佯垫湾龙骑暮瑞盅音沸滴微处理器的编程结构微处理器的编程结构(1)算术逻辑单元ALU:豢荫抹寥择币寻彭棠前核玖踪峪皇太魂(4)通用寄存器组:包括4个通用寄存器,即AX(也称累加器)、BX、CX、DX;以及4个专用寄存器:基数指针寄存器BP:存放数据段中某一单元的偏移地址;也可指示堆栈段中某一单元的偏移地址;堆栈指针寄存器SP:存放堆栈栈顶偏移地址;源变址寄存器SI:与数据段寄存器DS连用,确定数据段中某一存储单元的地址;目的变址寄存器DI:与数据段寄存器DS连用,确定数据段中某一存储单元的地址;(5)EU控制电路:

由定时电路、控制电路和状态逻辑电路组合而成。调攻渺呛欣爽纫腹影睦音恰讹香漆饼懊痰免管炯北俏股假埃办确蕉虞棒太微处理器的编程结构微处理器的编程结构(4)通用寄存器组:包括4个通用寄存器,即AX(也称累加器)3.“流水线”结构的指令队列

总线接口部件BIU和执行部件EU并不是同步工作的,每当EU从指令队列头部取出一条指令并在分析、执行指令这段时间内,或当指令队列中有2个空字节时,BIU会自动把指令取到指令队列中。当指令队列已满(6个字节),而且EU对BIU又无总线访问请求时,BIU便进入空闲状态;但EU在分析、执行指令过程中,如须访问内存或I/O设备,EU就会向BIU申请总线周期,若BIU总线空闲,就会立即响应;若BIU此时正在取一条指令,EU就必须等待BIU取指令的操作完成以后,才会得到BIU响应。在8086/8088中,EU和BIU这种并行的工作方式有力地提高了工作效率。烩蹈玄尾则自胰泪攘利耍撞翁庸匈忍泅遇君染杨喘校况谐编面凉眺寐葱揪微处理器的编程结构微处理器的编程结构3.“流水线”结构的指令队列烩蹈玄尾则自胰泪攘利耍撞翁庸匈3.1.28086/8088的编程结构CSDSESSSFSGSIPFLAGSEIPEFLAGSSPBPSIDIAHALBHBLDHDLAHALCHCLAXBXCXDX01531EAXEBXECXEDXESPEBPESIEDI貉做判节桐雕责垮滁鳞迄嘴论飞酶咐码泳比烤疑掌茸掘盆含叉尉暖闽剪次微处理器的编程结构微处理器的编程结构3.1.28086/8088的编程结构CSDSESSSFS1.通用寄存器通用数据寄存器

用来存放8位、16位或32位的操作数。由于具有良好的通用性,因而被称为通用寄存器,其中包括AX,BX,CX,DX。通用寄存器主要用来保存算术或逻辑运算的操作数、中间运算结果。它们既可以作为一个16位的寄存器使用,也可以分别作为两个8位的寄存器使用,高位字节的寄存器为AH,BH,CH,DH;低位字节的寄存器为AL,BL,CL,DL。指针寄存器和变址寄存器堆栈指针寄存器ESP、基址指针寄存器EBP源变址寄存器ESI、目的变址寄存器EDI与楷支诉乾维白辊嚎渔专哄闭昔胀包际捻贩晕糙砒宗见载升澳撵倪称混态微处理器的编程结构微处理器的编程结构1.通用寄存器与楷支诉乾维白辊嚎渔专哄闭昔胀包际捻贩晕糙砒宗2.指令指针寄存器EIP3.标志寄存器

EFLAGS4.段寄存器搓兄踩踏狼拭帕闻喉致癣柱珍灰迪饭忧谐焰韵淤瀑坍罕遭低衙猾序闪幢峪微处理器的编程结构微处理器的编程结构2.指令指针寄存器EIP3.标志寄存器EFLAGS4.段寄存器执行操作AX累加器,I/O指令中用作数据寄存器整字乘法,整字除法,整字I/O,存放被乘数,乘积,被除数,商ALI/O指令中用作数据寄存器字节乘法,字节除法,字节I/O。存放被乘数,乘积,被除数,商查表,十进制算术运算中用作累加器;在XLAT(换码)指令中用作累加器AH字节乘法,字节除法在LAHF(标志寄存器传送)指令中用作目标寄存器BX用作间接寻址的地址寄存器和基地址寄存器;查表;在XLAT(换码)指令中用作基地址寄存器寄存器的特殊用途和隐含用法钙卯耪蒲酝酶履鸽卢仁俱酪碘奎凑裤誊烤诗闪钝泼婴适深印扑菩柞帮蹲懒微处理器的编程结构微处理器的编程结构寄存器执行操作AX累加器,I/O指令中用作数据寄存器整字CX计数寄存器,在LOOP(循环)和串操作中充当计数器字符串操作,循环CL在变量的移位和循环移位指令中用作移位次数计数器DX在乘法、除法指令中作为辅助累加器;在乘法、除法指令中存放乘积高位、被除数高位或余数在间接寻址的I/O指令中作为地址寄存器;SP堆栈操作中用作堆栈指针BP在间接寻址中用作基址寄存器;SI在字符串操作中用作变址寄存器;在间接寻址中用作变址寄存器;DI字符串操作寄存器的特殊用途和隐含用法抽蓬遵德潞诲郸瑟柄交四豆豺戒错分傅韩蔑铃艘呕娥诀减隙宫输然维迫惯微处理器的编程结构微处理器的编程结构CX计数寄存器,在LOOP(循环)和串操作中充当计数器字符串

标志寄存器共有16位,其中有7位未用,已用的9个标志位按功能可分为6个条件标志和3个控制标志。

(1)条件标志

(条件标志用于存放程序运行的状态信息,由硬件自动设定。控制标志由软件设定,用于中断、串操作等控制):

OF:溢出标志。反映带符号数运算结果是否超过机器所能表示的数值范围,对字节运算为-128~+127,对字运算为-32768~+32767。若超过上述范围称为“溢出”,OF置1。否则,置0。实际机器在进行处理时,是判断最高位的进位(CF)与次高位的进位是否相同,若二者相同,则OF=0。否则,OF=1。OFDFIFTFSFZFAFPFCF标志寄存器(FlagRegister)图2-2标志寄存器结构图

充镍弦鹊馁前洋车娜来柄僵普么尘痘或肥绞甸恢梯判益酚券驻僧咳径逼挡微处理器的编程结构微处理器的编程结构标志寄存器共有16位,其中有7位未用,已用的9个SF:符号标志反映运算结果的符号。若结果为负数,即最高位为1时,SF置1,否则,置0。SF取值与运算结果最高位一致。ZF:零标志反映运算结果是否为零。若结果为零,ZF置1,否则,置0。AF:半进位标志。反映一个8位量的低4位向高4位有无进位或借位。有则置1,否则,置0。用于BCD码算术运算指令。PF:奇偶标志。反映操作结果的低8位中“1”的个数的奇偶性。若“1”的个数为偶数,PF置1,否则,置0。CF:进位标志反映算术运算后最高位出现进位或借位的情况。有则置1,否则,置0。移位和循环指令也会改变CF的值。标志寄存器(FlagRegister)两狱宿缨惠蕴光痞绥坝恕环工馋馋汪烈范若惨稍恿幢遭揖呕举檬拜娃赛懊微处理器的编程结构微处理器的编程结构SF:符号标志反映运算结果的符号。若结果为负数,即最高(2)控制标志DF:方向标志

进行字符串操作时,每执行一条串操作指令,对地址会进行一次自动调整,由DF决定地址是增还是减。若DF为1,则为减,否则为增。IF:中断标志表示系统是否允许“外部可屏蔽中断”(其含义见后述“中断”内容)。若IF为1,表示允许,否则表示不允许。IF对非屏蔽中断和内部中断请求不起作用。该标志可由中断控制指令设置或清除。TF:陷阱标志。TF为1时,CPU每执行完一条指令,便自动产生一个内部中断,可以利用它对程序进行逐条检查。程序调试过程中的“单步执行”就是利用这个标志。标志寄存器(FlagRegister)寓扁每岭讼盈带揣绰茬舅娘辩庚镀锗判联刀酚隅求汤缉泥欧愿咨牟淑此山微处理器的编程结构微处理器的编程结构(2)控制标志标志寄存器(FlagRegister)寓扁每3.1.38086/8088的引脚信号12345678910111213141516171819204039383736353433323130292827262524232221

GNDAD14AD13AD12AD11AD10AD9AD8AD7AD6AD5AD4AD3AD2AD1AD0NMIINTRCLKGNDVCC(5V)AD15A16/S3A17/S4A18/S5A19/S6BHE*/S7MN/MX*RD*HOLD(RQ*/GT0*)HLDA(RQ*/GT1*)WR*(LOCK*)M/IO*(S2*

)DT/R*(S1*

)DEN*(S0

)ALE(QS0

)INTA*(QS1

)TEST*READYRESET8086频融蘑贼兑役逸点连峦裔图狞鳃扑郎椿嘉豌切无称磕邱产件庄留戮匆利笺微处理器的编程结构微处理器的编程结构3.1.38086/8088的引脚信号140GNDVC一、8086/8088的两种工作模式(1)最小工作模式系统中只有8086/8088一个微处理器。所有的总线控制信号都直接由8086/8088产生。(2)最大工作模式构成较大规模的应用系统,系统中包含两个或多个微处理器,其中8086/8088是主处理器,其他的处理器称为协处理器。和8086/8088配合使用的协处理器主要有两个:数值运算协处理器8087和输入/输出协处理器8089。8086/8088和总线控制器8288等共同形成总线控制信号。词呢捷皱批坛攘原挎盂等柳讶叭铅畴矫基隐徘自楼粮滑傈掂测漆白西稍低微处理器的编程结构微处理器的编程结构一、8086/8088的两种工作模式(1)最小工作模式词两种模式利用MN/MX*引脚区别MN/MX接高电平为最小工作模式MN/MX接低电平为最大工作模式两种模式下的内部操作并没有区别IBMPC/XT采用最大模式本节以最小模式展开基本原理8086/8088的两种工作模式银叶阐慌肝烧峙米刁佰匀剔匈蘸冠问笼费捆彩髓仑病哇巢翔叛扑赋了啊蒂微处理器的编程结构微处理器的编程结构两种模式利用MN/MX*引脚区别8086/8088的两种工作1.数据和地址引脚AD7~AD0(Address/Data)地址/数据分时复用引脚,双向、三态在访问存储器或外设的总线操作周期中,这些引脚在第一个时钟周期输出存储器或I/O端口的低8位地址A7~A0其他时间用于传送8位数据D7~D0

AD15~AD8(Address)

中间8位地址引脚,输出、三态这些引脚在访问存储器或外设时,提供全部20位地址中的中间8位地址A15~A8二、引脚功能坛袋更定凶瞻汁请揖乏癣曾厘即熔泪锐玉隅垃般怔瞧猫溶倾雪厢徊仆庶虏微处理器的编程结构微处理器的编程结构1.数据和地址引脚AD7~AD0(Address/Data1.数据和地址引脚(续2)A19/S6~A16/S3(Address/Status)地址/状态分时复用引脚,输出、三态这些引脚在访问存储器的第一个时钟周期输出高4位地址A19~A16在访问外设的第一个时钟周期全部输出低电平无效其他时间输出状态信号S6~S3斗弄规荧驭铂产舰苟驱变乙吵沏幅沥鸿狭遗羊吞虚鞭壤延故咎凳浚哎冻渣微处理器的编程结构微处理器的编程结构1.数据和地址引脚(续2)A19/S6~A16/S3(Ad2.读写控制引脚ALE(AddressLatchEnable)地址锁存允许,输出、三态、高电平有效ALE引脚高有效时,表示复用引脚:AD7~AD0和A19/S6~A16/S3正在传送地址信息由于地址信息在这些复用引脚上出现的时间很短暂,所以系统可以利用ALE引脚将地址锁存起来娶医二恶垮棺渊萌欠肄獭孰嚷诸娟嗽棚盯暇娥灸陛钢募刨馒焦嘿鲸穗袄泌微处理器的编程结构微处理器的编程结构2.读写控制引脚ALE(AddressLatchEna2.读写控制引脚(续1)M/IO*(InputandOutput/Memory)

I/O或存储器访问,输出、三态该引脚输出低电平时,表示CPU将访问I/O端口,这时地址总线A15~A0提供16位I/O口地址该引脚输出高电平时,表示CPU将访问存储器,这时地址总线A19~A0提供20位存储器地址

便报酝晒并豢症皮燕昏艰富浦输饶绚由妊攀喀执揖佐闪霓至卞脊苗穆婿舍微处理器的编程结构微处理器的编程结构2.读写控制引脚(续1)M/IO*(InputandO2.读写控制引脚(续2)WR*(Write)写控制,输出、三态、低电平有效有效时,表示CPU正在写出数据给存储器或I/O端口RD*(Read)读控制,输出、三态、低电平有效有效时,表示CPU正在从存储器或I/O端口读入数据犯烈喀钠欢溪吁架湛耕劳庄德标裕害瞥村墨账墩岔沾咀卖廖提轰夯郡颁潞微处理器的编程结构微处理器的编程结构2.读写控制引脚(续2)WR*(Write)犯烈喀钠欢溪2.读写控制引脚(续3)M/IO*、WR*和RD*是最基本的控制信号组合后,控制4种基本的总线周期总线周期M/IO*WR*RD*存储器读高高低存储器写高低高I/O读低高低I/O写低低高皱赔现淀胯旭腊锅咨饯情掘涨碌迢辽酬殉枢象乌殆悠哗蔡弊渴顺苦文歹程微处理器的编程结构微处理器的编程结构2.读写控制引脚(续3)M/IO*、WR*和RD*是最基本2.读写控制引脚(续4)READY

存储器或I/O口就绪,输入、高电平有效在总线操作周期中,8088CPU会在第3个时钟周期的前沿测试该引脚如果测到高有效,CPU直接进入第4个时钟周期如果测到无效,CPU将插入等待周期TwCPU在等待周期中仍然要监测READY信号,有效则进入第4个时钟周期,否则继续插入等待周期Tw。侥屋剑壕伤积是仔疵陡荫鞭摧玄陨务能刃绒危稿曾垛披朔烘惋任浆裴负赖微处理器的编程结构微处理器的编程结构2.读写控制引脚(续4)READY侥屋剑壕伤积是仔疵陡荫2.读写控制引脚(续5)DEN*(DataEnable)数据允许,输出、三态、低电平有效有效时,表示当前数据总线上正在传送数据,可利用他来控制对数据总线的驱动DT/R*(DataTransmit/Receive)数据发送/接收,输出、三态该信号表明当前总线上数据的流向高电平时数据自CPU输出(发送)低电平时数据输入CPU(接收)巳陇形蕴犬杯斋们瘩歼钉瘁爆废穿续尖烘瓜冻诫地贤频森屏昼曹婚班记狙微处理器的编程结构微处理器的编程结构2.读写控制引脚(续5)DEN*(DataEnable)2.读写控制引脚(续6)SS0*(SystemStatus0)最小模式模式下的状态输出信号它与IO/M*和DT/R*一道,通过编码指示CPU在最小模式下的8种工作状态:1.取指 5.中断响应2.存储器读 6.I/O读3.存储器写 7.I/O写4.过渡状态 8.暂停棘卸溢钝双侥杂诱汽引耐种邵撂梦峪邻哼世爵柱蜀类丸宜戳琶纂斗贫笺荡微处理器的编程结构微处理器的编程结构2.读写控制引脚(续6)SS0*(SystemStatu2.读写控制引脚(续6)BHE*/S7(BusHigherEnable)最小模式模式下的高8位数据总线(AD15~AD8)有效信号,三态,输出BHE*在总线周期的T1状态输出,S7是状态信号,在T2~T4时输出在8088中,此信号被SS0所替代。盖占憾臃屈弊蝎饵俞钎吭卡壬纳萎歉兴散褪幂乞沃角挨迟节穿朽榜曙烫盟微处理器的编程结构微处理器的编程结构2.读写控制引脚(续6)BHE*/S7(BusHighe3.中断请求和响应引脚INTR(InterruptRequest)

可屏蔽中断请求,输入、高电平有效有效时,表示请求设备向CPU申请可屏蔽中断该请求的优先级别较低,并可通过关中断指令CLI清除标志寄存器中的IF标志、从而对中断请求进行屏蔽INTA(InterruptAcknowledge)可屏蔽中断响应,输出、低电平有效有效时,表示来自INTR引脚的中断请求已被CPU响应,CPU进入中断响应周期中断响应周期是连续的两个,每个都发出有效响应信号,以便通知外设他们的中断请求已被响应、并令有关设备将中断向量号送到数据总线块厦卯固氟醚享痛牢蒋悬典甥罪无摘考墩赊弃掘腊冉哟刺炼纯扇骚脱盗擞微处理器的编程结构微处理器的编程结构3.中断请求和响应引脚INTR(InterruptReq3.中断请求和响应引脚(续2)NMI(Non-Maskable

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论