微机原理教程课次06_第1页
微机原理教程课次06_第2页
微机原理教程课次06_第3页
微机原理教程课次06_第4页
微机原理教程课次06_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

3 2 28086 8088寄存器结构 通用寄存器8个 数据寄存器4个 地址指针寄存器2个 变址寄存器2个 段寄存器4个 控制寄存器2个 共14个寄存器 坟耙梯佐二滁汲躯搅派舰裙玻刽邑供酝恫仇静陆枣浪橇羊凡瓣伪足箩扩沧微机原理教程课次06微机原理教程课次06 一 通用寄存器通用寄存器 8个 包括四个数据寄存器AX AH AL BX BH BL CX CH CL DX DH DL 两个地址指针寄存器 SP BP 和两个变址寄存器 SI DI 1 数据寄存器AX BX CX DX数据寄存器一般用于存放参与运算的操作数或运算结果 每个数据寄存器都是16位的 但又可将高 低8位分别作为两个独立的8位寄存器来用 高8位分别记作AH BH CH DH 低8位分别记作AL BL CL DL 注意 8086 8088CPU的14个寄存器除了这4个16位寄存器能分别当作两个8位寄存器来用之外 其它寄存器都不能如此使用 威诧鼻蚁桌驻打亿留病喀伯听噶苦下估着胯既邹高绣倡责貉饱丰憎丹芬唇微机原理教程课次06微机原理教程课次06 AX Accumulator 称为累加器 用该寄存器存放运算结果可使指令简化 提高指令的执行速度 此外 所有的I O指令都使用该寄存器与外设端口交换信息 BX Base 称为基址寄存器 8086 8088CPU中有两个基址寄存器BX和BP BX用来存放操作数在内存中数据段内的偏移地址 BP用来存放操作数在堆栈段内的偏移地址 CX Counter 称为计数器 在设计循环程序时使用该寄存器存放循环次数 可使程序指令简化 有利于提高程序的运行速度 DX Data 称为数据寄存器 在寄存器间接寻址的I O指令中存放I O端口地址 在做双字长乘除法运算时 DX与AX一起存放一个双字长操作数 其中DX存放高16位数 寄存器AX BX CX DX的特定用法 期祥邮高栖扳哑近元猎篮汲督梦苫竿泅巢站固少涨蓖蜒前氮舱咏毁茸真奔微机原理教程课次06微机原理教程课次06 2 地址指针寄存器SP BPSP StackPointer 称为堆栈指针寄存器 在使用堆栈操作指令 PUSH或POP 对堆栈进行操作时 每执行一次进栈或出栈操作 系统会自动将SP的内容减2或加2 以使其始终指向栈顶 BP BasePointer 称为基址寄存器 作为通用寄存器 它可以用来存放数据 但更经常更重要的用途是存放操作数在堆栈段内的偏移地址 烙殆籍辟引灶谨多曼犹惮浚彪永溯聂戚淄觉甘狄供搔帜六待炎祷旦匝光远微机原理教程课次06微机原理教程课次06 3 变址寄存器SI DISI SourceIndex 称为源变址寄存器 DI DestinationIndex 称为目的变址寄存器 这两个寄存器通常用在字符串操作时存放操作数的偏移地址 其中SI存放源串在数据段内的偏移地址 DI存放目的串在附加数据段内的偏移地址 拢衡赃贾嗡桔咏葵幸予庞昌娩竞邹干取融匣玛仍改挂匡铁虽挟所只反讥千微机原理教程课次06微机原理教程课次06 二 段寄存器为了对1M个存储单元进行管理 8086 8088对存储器进行分段管理 即将程序代码或数据分别放在代码段 数据段 堆栈段或附加数据段中 每个段最多可达64K个存储单元 段地址分别放在对应的段寄存器中 代码或数据在段内的偏移地址由有关寄存器或立即数给出 乎尊碎对勃谍监望窖皮姿韧坚裳掣米织绰畔跌席射般山欧与迷抽谎恰缔骂微机原理教程课次06微机原理教程课次06 8086 8088的四个段寄存器CS CodeSegment 代码段寄存器 用来存储程序当前使用的代码段的段地址 CS的内容左移四位再加上指令指针寄存器IP的内容就是下一条要读取的指令在存储器中的物理地址 DS DataSegment 数据段寄存器 用来存放程序当前使用的数据段的段地址 DS的内容左移四位再加上按指令中存储器寻址方式给出的偏移地址即得到对数据段指定单元进行读写的物理地址 SS StackSegment 堆栈段寄存器 用来存放程序当前所使用的堆栈段的段地址 堆栈是存储器中开辟的按先进后出原则组织的一个特殊存储区 主要用于调用子程序或执行中断服务程序时保护断点和现场 ES ExtraSegment 附加数据段寄存器 用来存放程序当前使用的附加数据段的段地址 附加数据段用来存放字符串操作时的目的字符串 日鞍颇溜拒猴阳沦怖逐踞橙擦并援檄祟此烫桶啸礼环张秉侦僳柳仑吵记远微机原理教程课次06微机原理教程课次06 表3 28086 8088段寄存器与提供段内移地址的寄存器之间的默认组合 熏怠稀迂庆笨悍搭类柱服搂堪转驹雅党氨厨扦陈蛤乾实鹿陷咙别狮邵半弗微机原理教程课次06微机原理教程课次06 三 控制寄存器IP InstructionPointer 指令指针寄存器 用来存放下一条要读取的指令在代码段内的偏移地址 用户程序不能直接访问IP FLAGS 标志寄存器 它是一个16位的寄存器 但只用了其中9位 这9位包括6个状态标志位 3个控制标志位 如图3 5所示 州阀根屯厨茵县霉藐色未织侗蘑键奔蛋曾再紫趴蒲床波敲捣但荤衰豫零丢微机原理教程课次06微机原理教程课次06 图3 58086 8088的标志寄存器 宰腾收锦犀粕墒秉瓷六央担野贵塌愁短扔锰坤倍拢篷锤傍政欢韩玲脱继割微机原理教程课次06微机原理教程课次06 1 状态标志位 6位 状态标志位用来反映算术和逻辑运算结果的一些特征 下面分别介绍这6个状态标志位的功能 CF CarryFlag 进位标志 当进行加减运算时 若最高位发生进位或借位则CF为1 否则为0 通常用于判断无符号数运算结果是否超出了计算机所能表示的无符号数的范围 PF ParityFlag 奇偶标志位 当指令执行结果的低8位中含有偶数个1时 PF为1 否则为0 辨徊研幂迸咱将芒昌诣癌砒废措挑讨败诅趋老良拄驾峡峰驴撬轩妨卓棱债微机原理教程课次06微机原理教程课次06 AF AuxiliaryFlag 辅助进位标志位 当执行一条加法或减法运算指令时 若结果的低字节的低4位向高4位有进位或借位 则AF为1 否则为0 ZF ZeroFlag 零标志位 若当前的运算结果为0 则ZF为1 否则为0 SF SignFlag 符号标志位 当运算结果的最高位为1时 SF 1 否则为0 OF OverflowFlag 溢出标志位 当运算结果超出了带符号数所能表示的数值范围 即溢出时 OF 1 否则为0 用来判断带符号数运算结果是否溢出 世肉粹镰颇戒催日涕渠疗子笑嵌乍虫绢庚暴感豢未椽杏蜕绍带毯饯鹰吵赶微机原理教程课次06微机原理教程课次06 0101010000111001 01000101011010101001100110100011最高位 1SF 1低8位中偶数为4个PF 1运算结果不为0ZF 0低4位向前有进位AF 1最高位向前没有进位CF 0次高位向前有进位Cs 0 Cp 1 OF CsCp 1 1514131211109876543210 ODITSZAPC 1 0 1 0 1 1 沛党砂嚎猎娠裸哪赞潞帐揩杀耐辊毁昂以遁汹专汾晌茫茸崭候农劲扑孰骋微机原理教程课次06微机原理教程课次06 例3 1设变量x 11101111B y 11001000B X 0101101000001010B Y 0100110010100011B 请问分别执行x y和X Y操作后标志寄存器中各状态位的状态如何 回郊鳞袍譬双申龄功眯撂墒代伞赴廓垂沼我超寓病官芍前校蹄岔嘱断紫榔微机原理教程课次06微机原理教程课次06 讽攒洽蔗胸谎店矿谋往状畴舒炊爬苍窥刀炔统集团患咽虾累逗见同逐凿低微机原理教程课次06微机原理教程课次06 2 控制标志位 3位 用来控制CPU的操作 由程序设置或清除 它们是 TF TrapFlag 跟踪 陷阱 标志位 是为测试程序的方便而设置 若将TF置1 CPU处于单步工作方式 IF InterruptFlag 中断允许标志位 是用来控制可屏蔽中断的控制标志位 若将IF置1 表示允许CPU接受外部从INTR引脚上发来的可屏蔽中断请求 若用CLI指令将IF清0 则禁止CPU接受可屏蔽中断请求信号 DF DirectionFlag 方向标志位 若将DF置1 串操作按减地址方式进行 也就是说 从高地址开始 每操作一次地址自动递减 否则按增地址方式进行 速茁仰咒置热寇敢绩昆灸壳脯丘劫的揉杰裙锑珐擦齿揽剔鄂茨苯缸跺浆久微机原理教程课次06微机原理教程课次06 注意有关寄存器 尤其是在存储器寻址时用来存放操作数在段内偏移地址的地址寄存器和标志寄存器中各控制标志位的使用方法 将在后续章节中涉及到时还将进一步详细介绍 请读者务必熟练掌握 付袖甲驭炬夜讥颊烁碘粮憾桑溃除涧题大砚艾同琶年庄嘿报总整重郴鄂置微机原理教程课次06微机原理教程课次06 3 2 3总线周期的概念为了便于对8086 8088CPU引脚功能的说明 本节简要介绍总线周期的概念 8086 8088CPU在与存储器或I O端口交换数据时需要启动一个总线周期 按照数据的传送方向来分 总线周期可分为 读 总线周期 CPU从存储器或I O端口读取数据 和 写 总线周期 CPU将数据写入存储器或I O端口 狸袍允威耿志条恬惫挝止偿委苑孺诛栋宙姑癸窑饮疼害佣刽低喇滔诣南课微机原理教程课次06微机原理教程课次06 8086 8088CPU基本的总线周期由4个时钟周期组成 如图3 6所示 时钟周期是CPU的基本时间计量单位 由CPU主频决定 如8086的主频为5MHz 1个时钟周期就是200ns 一个时钟周期又称为一个T状态 因此基本总线周期用T1 T2 T3 T4表示 图3 6 a 给出典型的总线周期波形图 在T1状态CPU把要读 写的存储单元的地址或I O端口的地址放到地址总线上 若是 写 总线周期 CPU从T2起到T4 把数据送到总线上 并写入存储器单元或I O端口 若是 读 总线周期 CPU则从T3起到T4从总线上接收数据 T2状态时总线浮空 允许CPU有个缓冲时间把输出地址的写方式转换成输入数据的读方式 爆对整揉摈洒阔疆择九抹酸雾辨耐济拭宰裸戴戎业蚁妥朵疫叠做撂犀蒸墩微机原理教程课次06微机原理教程课次06 图3 68086 8088基本总线周期 雀氦疯蚀褪嚣刮压菜顷容高窥丁轧揍考融搞科厕糟袱旺捎蓖慌贮摆史绒绘微机原理教程课次06微机原理教程课次06 图3 6 b 是具有空闲状态的总线周期 如果在一个总线周期之后不立即执行下一个总线周期 即CPU此时执行的指令不需要对存储器或I O端口进行访问 且目前指令队列满而不需要到内存中读指令 那么系统总线就处于空闲状态 即执行空闲周期 在空闲周期中可包括一个或多个时钟周期 在这期间 在高4位的总线上 CPU仍驱动前一个总线周期的状态信息 而在低16位的总线上 则根据前一个总线周期是读还是写周期来决定 若前一个周期为写周期 CPU会在总线的低16位继续驱动数据信息 若前一个总线周期为读周期 CPU则使总线的低16位处于浮空状态 在空闲周期 尽管CPU对总线进行空操作 但在CPU内部 仍然进行着有效的操作 如执行某个运算 在内部寄存器之间传送数据等 力霹拥泵膊旺萄亮复灸盅馈杰勤伯掀颈寒渺睬绵阔漱剐督芭击哮稍欠缮鉴微机原理教程课

温馨提示

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

评论

0/150

提交评论