新编汇编语言.pptx
《新编汇编语言.pptx》由会员分享,可在线阅读,更多相关《新编汇编语言.pptx(85页珍藏版)》请在咨信网上搜索。
1、2.4 Intel 80 x86系列CPU内部结构汇编语言建立在机器指令基础之上汇编语言建立在机器指令基础之上,是一是一种描述硬件运转过程的语言种描述硬件运转过程的语言。每一种CPU都有自己的指令系统,因此在理解汇编语言基本概念前,必须先对计算机系统、CPU的内部结构和工作机制作一个概要的理解。本课程选用的CPU类型Intel Intel 推出的推出的80 x8680 x86系列处理器的性能和功能系列处理器的性能和功能越来越强。越来越强。但是,从汇编语言程序角度看,但是,从汇编语言程序角度看,80868086建立的实建立的实模式和模式和8038680386建立的保护模式模型到目前为止建立的保护
2、模式模型到目前为止一直适用。一直适用。本门课程的主要内容:以本门课程的主要内容:以80868086为例说明实模式为例说明实模式编程。编程。Intel80 x86系列微处理器性能对比系列微处理器性能对比CPU数数据据总总线宽线宽 度度地址总地址总线宽度线宽度寻址寻址能力能力工作模式工作模式808616201MB字节字节实模式实模式80888201MB字节字节实模式实模式80286162416MB字节字节实模式、保护模式实模式、保护模式80386SX162416MB字节字节实模式、保护模式实模式、保护模式80386DX32324GB字节字节实模式、保护模式实模式、保护模式80486DX32324G
3、B字节字节实模式、保护模式实模式、保护模式Pentium643664GB实模式、保护模式实模式、保护模式8086/8088 CPU内部结构8086和8088CPU内部结构是一致的,内部处理的最长二进制编码都是16位的。但是8086针对的数据总线是16位,8088是8位,两种CPU只是外部引脚有所区别。执行指令与读取指令读取指令读取指令:从地址总线发出内存地址,将内存中的指令逐条读取到CPU内部。执行指令执行指令:对机器指令译码,按时序产生控制信号,从而完成指令规定的时序过程。两种操作都是CPU自动进行自动进行的。程序能够控制CPU什么时候取指令、执行指令吗?执行指令与读取指令读取指令:一定使用
4、总线执行指令:不一定每个节拍都使用总线考虑流水线机制流水线机制:执行当前指令时,如果不使用总线,则同时读取下一条指令。8086/8088 CPU内部结构EU(Execute Unit):执行部件BIU(Bus Interface Unit):总线接口部件。有时它们在时间上进行交叠,形成了流水线工作方式,加快了CPU运转速度80888088的内部结构的内部结构1 2 3 4 内部暂存器内部暂存器 IP ES SS DS CS输入输入/输出输出控制电路控制电路外外部部总总线线执行部分执行部分控制电路控制电路ALU标志寄存器标志寄存器 AH AL BH BLCH CL DH DL SP BP SI
5、DI通用通用寄存器寄存器地址地址加法加法器器指令队列指令队列执行部件执行部件(EU)总线接口部件总线接口部件(BIU)16位位20位位8位位8位位8086/8088 CPU内部结构EU中的核心部件:(1)控制器控制器:计算机系统中控制所有功能部件(包括控制器本身)协同工作,自动执自动执行计算机程序的功能部件行计算机程序的功能部件。控制器执行指令的原理1)通过对机器指令译码产生控制信号2)按照指令规定的时序发出控制信号3)产生一系列时序过程来完成指令功能8086/8088 CPU内部结构(2)运算器运算器:计算机系统中加工、处理数据加工、处理数据的功能部件的功能部件,其功能包括算术运算和逻辑运算
6、。8086/8088 CPU内部结构 BIU中的核心部件:(1)总线控制逻辑总线控制逻辑:CPU与总线接口的逻辑电路,CPU与控制、地址、数据总线交互都必须使用这一功能部件。8086/8088 CPU内部结构(2)指令队列指令队列:这是一组CPU内部的存储单元,它的功能是存放后续将要执行的指令序列。由于EU和BIU两大模块的分工合作,CPU可以利用当前指令的运算周期启动BIU,将后续指令预先读取到指令队列中。指令队列当这些后续指令被执行时,CPU就不需要再使用总线到外部的存储单元去读取它们。因为从指令队列读取指令比从外部存储单元读取指令的速度快得多,所以CPU的工作效率得到提高。指令队列对于指
7、令是不可见的指令队列对于指令是不可见的。8086/8088 CPU内部结构(3)地址加法器地址加法器:是CPU用于产生外部存储单元物理地址的器件。由于CPU外部的地址总线是20位的,而CPU内部的寄存器最长为16位,为了协调此差异,CPU把外部存储单元的地址分为段基值和偏移量两个16位分量地址加法器物理地址物理地址:CPU通过地址总线定位某个外部存储单元时使用的地址,即真实的存储单元地址,内存物理地址具有20个bit。逻辑地址逻辑地址:由于CPU内部寄存器的长度限制,在CPU内部使用的存储单元地址形式,包括段基值和偏移量两部分,二者都具有16个bit。地址与内存单元的对应地址与内存单元的对应:
8、无论是物理地址还是逻辑地址,一个地址对应内存中一个独立的字节单元一个地址对应内存中一个独立的字节单元。地址加法器段基值:偏移量表示的地址称逻辑地址逻辑地址段基值偏移量物理地址(位)段基值、偏移量、物理地址都是无符号数(编码)。物理地址与逻辑地址机器指令中的地址表示形式仅限于逻辑地仅限于逻辑地址址。任意一个逻辑地址可以转换为唯一物理地任意一个逻辑地址可以转换为唯一物理地址址(反之则不行),转换过程是CPU的BIU单元自动完成的。xxxxxxxxxxxx0 xxxx0 xxxx+xxxxx16位偏移量位偏移量16位段基值位段基值20位段基址位段基址20位物理地址位物理地址地址加法器地址加法器发送至
9、地址总线发送至地址总线HEX8086/8088 CPU内部结构寄存器寄存器:CPU内部的少量存储单元内部的少量存储单元,每个存储单元都能存储二进制数据,并且都有自己独特的功能和相应的名称(地址)。8086/8088 中的寄存器:总共有14个物理寄存器,逻辑上的寄存器有22个。下面就它们的功能分别来讨论。段寄存器(a)段寄存器:包括CS(Code Segment)、SS(Stack Segment)、DS(Data Segment)、ES(Extra Segment)四个16位物理寄存器。用于存放程序所要使用的4个存储段的段基段基值值,分别对应于内存中的四块存储区域,代码段代码段、堆栈段堆栈段、
10、数据段数据段、附加段附加段。段寄存器每个程序都可能会使用这样四个段,其中代码段是必须的,实用的程序通常至少包含代码段、堆栈段、数据段。段段:内存中一段连续的空间,在程序中具有特定的用途。段基址段基址=段基值段基值*16 段在内存中的起始地址。段代码段代码段:用于存放程序的机器指令序列;堆栈段堆栈段:用于存放程序使用堆栈指令所保存的数据;保存子程序调用指令提供的返回地址;保存中断断点;堆栈段的访问一般遵循后进先出(LIFO)原则。段数据段数据段:存放程序需要直接使用的数据,包括变量、数组、字符串等;附加段附加段:内容不确定,可以根据实际需要决定。通常用于存放串操作指令中的目的串。地址指针寄存器(
11、b)地址指针寄存器)地址指针寄存器:包括BX、SI、DI、BP、SP、IP六个16位寄存器,用于存放逻辑地址的偏移量或者偏移量的一部分(分量)其作用在寻址时类似于游标,通过相对于段基址的相对字节距离字节距离来定位具体的字节或字单元。地址指针寄存器使用逻辑地址定位内存单元逻辑地址定位内存单元的示例:物理地址物理地址内存单元(字节)内存单元(字节)10000H10001H10002H10003H10004H10005H10006H(DS)=1000H逻辑地址逻辑地址(BX)=0004H地址指针寄存器BX称为基址寄存器基址寄存器,可以用于存放偏移量或偏移量分量。通常和通常和DS、ES这两个段寄存器配
12、合使用,用于定位数据段或附加段中的内存单元;地址指针寄存器SI称为源变址寄存器源变址寄存器,用于存放偏移量或偏移量分量。通常和通常和DS、ES这两个段寄存器配合使用,用于定位数据段或附加段中的内存单元。在串操作指令中,SI用于指明源串偏移量,所以被称为源变址寄存器。地址指针寄存器DI称为目的变址寄存器目的变址寄存器,用于存放偏移量或偏移量分量。通常和DS、ES这两个段寄存器配合使用,用于定位数据段或附加段中的内存单元。在串操作指令中,DI用于指明目的串偏移量,所以被称为目的变址寄存器。地址指针寄存器BP称为基址指针寄存器基址指针寄存器,用于存放偏移量,通常和通常和SS段寄存器配合使用,用于定位
13、堆栈段中的内存单元。SP称为堆栈指针堆栈指针,用于存放偏移量,只能只能和和SS段寄存器配合使用,且始终指向堆栈的栈顶,在堆栈指令中隐含的使用它来定位栈顶数据。地址指针寄存器IP称为指令指针指令指针,用于存放偏移量,只能和只能和CS段寄存器配合使用,且始终指向代码段中下一条将要读取到CPU指令队列的那条指令;修改IP中内容的操作是CPU在每读取一条指令到指令队列后自动进行的,使它指向要读取的下一条指令。转移指令转移指令可以隐含的修改IP寄存器中的内容。数据寄存器(c)数据寄存器)数据寄存器:包括AX、BX、CX、DX这样4个16位的寄存器在逻辑上一个16位的数据寄存器可以看成是3个寄存器例如AX
14、,可以把它作为一个16位的数据寄存器来使用,也可以把高低8位分开,高8位为AH,低8位为AL数据寄存器在使用上要注意逻辑上不同的寄存器可能在物理上是相互覆盖的。这里的寄存器BX在上面提到过,它既可以用作数据寄存器,也可以用作地址指针寄存器。标志寄存器(d)标志寄存器)标志寄存器:8086CPU提供一个16位的标志寄存器FR,对这个寄存器的使用在指令中往往是隐含往往是隐含的的。值得注意的是,FR是按位操作的,每一个每一个二进制位都有各自特定的含义二进制位都有各自特定的含义。标志寄存器一般在汇编语言程序中的运算指令或者标志位控制指令会影响特定标志位。可以通过转移指令来判断标志位的变化,实现程序中的
15、分支结构或者循环结构。标志寄存器标志寄存器是实现程序中分支、循环结构分支、循环结构必须的硬件基础必须的硬件基础。状态标志位以下的标志位属于状态标志位以下的标志位属于状态标志位,是指令根据执行情况为后续指令留下的一些可供参考的状态信息。(CF,OF,PF,AF,SF,ZF)功能上,它们是实现分支、循环程序结构的基础。器件上,它们的改变依赖于运算器(ALU)。状态标志位有效的条件状态标志位有效状态标志位有效的前提条件:1)当前指令要影响标志位2)当前指令对标志位的影响是有意义的3)程序设计者对操作数的解释符合指令对该标志位的有效定义进位标志CF有效性有效性:在CPU进行算术运算指令时,如果该指该指
16、令令要影响CF标志,并且用户用户把操作数看作无符号无符号数(不完整编码除外)数(不完整编码除外),那么该标志位是有效有效标志。含义含义:它标志着上次算术运算最高位(字的第15位、字节的第7位)是否产生进位(加法指令)或者借位(减法指令)。如果有进位或借位产生,那么CF=1;如果没有,那么CF=0。CF标志位位于FR的第0位。进位标志CF例1观察下面的加减法运算,判断CF标志取值。(操作数理解为无符号数,CF标志才有意义)10110011+010100011 00000100加法运算后,最高位向更高一位产生了进位,CF应等于1。进位标志CF00110000+00001101000111101加法
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 新编 汇编语言
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【精****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【精****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。