关闭

关闭

封号提示

内容

首页 微机原理与接口技术(清华大学课件,全套).ppt

微机原理与接口技术(清华大学课件,全套).ppt

微机原理与接口技术(清华大学课件,全套).ppt

上传者: z江湖p 2014-01-16 评分 5 0 174 24 790 暂无简介 简介 举报

简介:本文档为《微机原理与接口技术(清华大学课件,全套)ppt》,可适用于IT/计算机领域,主题内容包含微机原理与接口技术*微机原理与接口技术大家好!课程目标*课程目标掌握:微型计算机的基本工作原理汇编语言程序设计方法微型计算机接口技术建立微型计算机系符等。

微机原理与接口技术*微机原理与接口技术大家好!课程目标*课程目标掌握:微型计算机的基本工作原理汇编语言程序设计方法微型计算机接口技术建立微型计算机系统的整体概念形成微机系统软硬件开发的初步能力教材及实验指导书*教材及实验指导书教材:《微机原理与接口技术》(第版)冯博琴吴宁主编清华大学出版社实验指导书《微机原理与接口技术实验指导书》(讲义)陈文革吴宁夏秦编西安交通大学《微机原理与接口技术题解及实验指导》(第版)吴宁陈文革编清华大学出版社第章微型计算机基础概论*第章微型计算机基础概论主要内容:微机系统的组成计算机中的编码、数制及其转换无符号二进制数的运算算术运算和逻辑运算运算中的溢出机器数的表示及运算基本逻辑门及译码器一、微型计算机系统*一、微型计算机系统微型机的工作原理微机系统的基本组成计算机的工作原理*计算机的工作原理冯•诺依曼计算机的工作原理存储程序工作原理存储程序原理*存储程序原理将计算过程描述为由许多条指令按一定顺序组成的程序并放入存储器保存指令按其在存储器中存放的顺序执行由控制器控制整个程序和数据的存取以及程序的执行。冯•诺依曼计算机体系结构*冯•诺依曼计算机体系结构运算器存储器控制器输入设备输出设备冯•诺依曼机的工作过程*冯•诺依曼机的工作过程内存中的程序指令指令指令n分析获取操作数执行存放结果程序计数器PC地址CPU取出操作数冯•诺依曼机的工作过程*冯•诺依曼机的工作过程取一条指令的工作过程:将指令所在地址赋给程序计数器PCPC内容送到地址寄存器ARPC自动加把AR的内容通过地址总线送至内存储器经地址译码器译码选中相应单元。CPU的控制器发出读命令。在读命令控制下把所选中单元的内容(即指令操作码)读到数据总线DB。把读出的内容经数据总线送到数据寄存器DR。指令译码因为取出的是指令的操作码故数据寄存器DR把它送到指令寄存器IR然后再送到指令译码器ID冯•诺依曼机的特点和不足冯•诺依曼机的特点和不足特点:程序存储共享数据顺序执行属于顺序处理机适合于确定的算法和数值数据的处理。不足:与存储器间有大量数据交互对总线要求很高执行顺序有程序决定对大型复杂任务较困难以运算器为核心处理效率较低由PC控制执行顺序难以进行真正的并行处理。*典型的非冯•诺依曼机结构典型的非冯•诺依曼机结构数据流驱动的计算机结构当指令具有所需数据、且输出端没有数据时就可执行。*DataflowImageProcessingSystem系统组成*系统组成主机硬件系统外设微机系统系统软件软件系统应用软件CPU存储器输入输出接口总线微处理器*微处理器微处理器简称CPU是计算机的核心。主要包括:运算器控制器寄存器组存储器*存储器定义:用于存放计算机工作过程中需要操作的数据和程序。有关内存储器的几个概念*有关内存储器的几个概念内存单元的地址和内容内存容量内存的操作内存的分类内存单元的地址和内容*内存单元的地址和内容内存按单元组织每单元都对应一个地址以方便对单元的寻址FH内存地址单元内容内存容量*内存容量内存容量:所含存储单元的个数以字节为单位内存容量的大小依CPU的寻址能力而定实地址模式下为CPU地址信号线的位数内存操作*内存操作读:将内存单元的内容取入CPU原单元内容不改变写:CPU将信息放入内存单元单元中原来的内容被覆盖。内存储器的分类*内存储器的分类随机存取存储器(RAM)只读存储器(ROM)按工作方式可分为输入输出接口*输入输出接口接口是CPU与外部设备间的桥梁CPUIO接口外设接口的分类*接口的分类串行接口并行接口数字接口模拟接口输入接口输出接口接口的功能*接口的功能数据缓冲寄存信号电平或类型的转换实现主机与外设间的运行匹配。总线*总线基本概念分类工作原理常用系统总线标准及其主要技术指标(具体内容见后续课程)软件系统*软件系统软件:为运行、管理和维护计算机系统或为实现某一功能而编写的各种程序的总和及其相关资料。系统软件应用软件操作系统编译系统网络系统工具软件软件二、计算机中的数制和编码*二、计算机中的数制和编码数制和编码的表示各种计数制之间的相互转换常用计数法*常用计数法十进制(D)二进制(B)十六进制(H)例:*例:D或()DB或()BABCDBFH或(ABCDBF)H各种进制数间的转换*各种进制数间的转换非十进制数到十进制数的转换十进制到非十进制数的转换二进制与十六进制数之间的转换非十进制数到十进制数的转换*非十进制数到十进制数的转换按相应的权值表达式展开例:B===BH===十进制到非十进制数的转换*十进制到非十进制数的转换到二进制的转换:对整数:除取余对小数:乘取整。到十六进制的转换:对整数:除取余对小数:乘取整。二进制与十六进制间的转换*二进制与十六进制间的转换用位二进制数表示位十六进制数例:=B=HB=CAAH计算机中的编码*计算机中的编码BCD码用二进制编码表示的十进制数ASCII码西文字符编码BCD码*BCD码压缩BCD码用位二进制码表示一位十进制数每位之间有一个空格扩展BCD码用位二进制码表示一位十进制数每位之间有一个空格。BCD码与二进制数之间的转换*BCD码与二进制数之间的转换先转换为十进制数再转换二进制数反之同样。例:()BCD==()BASCII码*ASCII码西文字符的编码一般用位二进制码表示。D位为校验位默认情况下为。要求:理解校验位的作用熟悉F的ASCII码ASCII码的奇偶校验*ASCII码的奇偶校验奇校验加上校验位后编码中“”的个数为奇数。例:A的ASCII码是H(B)以奇校验传送则为CH(B)偶校验加上校验位后编码中“”的个数为偶数。上例若以偶校验传送则为H。三、无符号二进制数的运算*三、无符号二进制数的运算算术运算逻辑运算无符号数有符号数二进制数的运算主要内容*主要内容无符号二进制数的算术运算无符号数的表达范围运算中的溢出问题无符号数的逻辑运算基本逻辑门和译码器无符号数的算术运算*无符号数的算术运算加法运算=(有进位)减法运算=(有借位)乘法运算除法运算乘除运算例*乘除运算例=B=B即:商=B余数=B无符号数的表示范围:*无符号数的表示范围:Xn若运算结果超出这个范围则产生溢出。对无符号数:运算时当最高位向更高位有进位(或借位)时则产生溢出。例:*例:最高位向前有进位产生溢出逻辑运算*逻辑运算与、或、非、异或掌握:与、或、非门逻辑符号和逻辑关系(真值表)与非门、或非门的应用。“与”、“或”运算*“与”、“或”运算“与”运算:任何数和“”相“与”结果为。“或”运算:任何数和“”相“或”结果为。“非”、“异或”运算*“非”、“异或”运算“非”运算按位求反“异或”运算相同则为相异则为译码器*译码器掌握LS译码器各引脚功能输入端与输出端关系(真值表)LS译码器*LS译码器主要引脚及功能三、机器数(有符号数)的运算*三、机器数(有符号数)的运算计算机中符号数的表示*计算机中符号数的表示机器数计算机中的数据构成:符号位真值“”表示正“”表示负例*例==符号位真值==符号位真值符号数的表示*符号数的表示机器数的表示方法:原码反码补码原码*原码最高位为符号位(用“”表示正用“”表示负)其余为真值部分。优点:真值和其原码表示之间的对应关系简单容易理解缺点:计算机中用原码进行加减运算比较困难的表示不唯一。数的原码*数的原码位数的原码:==即:数的原码不唯一。反码*反码对一个机器数X:若X>则X反=X原若X<则X反=对应原码的符号位不变数值部分按位求反例*例X==X原=X反=的反码:*的反码:反=反=即:数的反码也不是唯一的。补码*补码定义:若X>则X补=X反=X原若X<则X补=X反例*例X=–=–X原=X反=X补=X反=的补码:*的补码:补=原=补=反==对位字长进位被舍掉特殊数*特殊数对无符号数:()B=在原码中定义为:在反码中定义为:在补码中定义为:符号数的表示范围*符号数的表示范围对位二进制数:原码:~反码:~补码:~符号二进制数与十进制的转换*符号二进制数与十进制的转换对用补码表示的二进制数:)求出真值)进行转换例:补码数转换为十进制数*例:补码数转换为十进制数X补=B正数所以:真值=BX=X补=B负数所以:真值不等于B而是:X=X补补=补==符号数的算术运算*符号数的算术运算通过引进补码可将减法运算转换为加法运算。即:XY补=X补Y补XY补=X(Y)补=X补Y补注:运算时符号位须对齐例*例X=Y=求XY=?X原=X补=X反=Y补=Y原=XY补=X补Y补==XY=符号数运算中的溢出问题*符号数运算中的溢出问题两个带符号二进制数相加或相减时若运算结果超出可表达范围则产生溢出溢出的判断方法:最高位进位状态次高位进位状态=则结果溢出例:*例:若:X=Y=则:XY=次高位向最高位有进位而最高位向前无进位产生溢出。(事实上两正数相加得出负数结果出错)结束语:*结束语:第章难点:补码的概念及其运算*第章微处理器与总线主要内容:*主要内容:微处理器的功能和结构微处理器特点主要引线功能和内部结构内部寄存器实地址模式下的存储器寻址总线时序总线一、微处理器及CPU一、微处理器及CPU*微处理器微处理器运算器控制器内部寄存器*微处理器程序和指令*程序和指令程序:具有一定功能的指令的有序集合指令:由人向计算机发出的、能够为计算机所识别的命令。指令执行的一般过程*指令执行的一般过程取指令取指部件分析部件执行部件指令译码读取操作数执行指令存放结果顺序执行和并行流水线*顺序执行和并行流水线顺序执行方式:各功能部件交替工作按顺序完成指令的执行过程。并行流水线方式:各功能部件并行工作。顺序工作方式*顺序工作方式并行流水线工作方式*并行流水线工作方式EUCPUCPU的特点*CPU的特点采用并行流水线工作方式通过设置指令预取队列实现对内存空间实行分段管理将内存分为个段并设置地址段寄存器以实现对MB空间的寻址支持多处理器系统CPU内部结构存储器寻址部分工作模式CPU的两种工作模式*CPU的两种工作模式可工作于两种模式下最小模式最大模式最小模式为单处理器模式。最大模式为多处理器模式。两种工作模式的选择方式*两种工作模式的选择方式是工作在最小还是最大模式由MNMX引线的状态决定。MNMX=工作于最大模式MNMX=工作于最小模式二、的引线及功能*二、的引线及功能主要引线最小模式下的引线*主要引线最小模式下的引线地址线和数据线:ADAD:低位地址和低位数据信号分时复用。在传送地址信号时为单向传送数据信号时为双向。AA:高位地址信号与状态信号分时复用。AA:位地址信号主要的控制和状态信号*主要的控制和状态信号WR:写信号RD:读信号IOM:为“”表示访问内存为“”表示访问接口DEN:低电平有效时允许进行读写操作DTR:数据收发器的传送方向控制ALE:地址锁存信号RESET:复位信号。例:*例:当WR=RD=IOM=时表示CPU当前正在进行读存储器操作READY信号*READY信号中断请求和响应信号*中断请求和响应信号INTR:可屏蔽中断请求输入端NMI:非屏蔽中断请求输入端INTA:中断响应输出端总线保持信号*总线保持信号HOLD:总线保持请求信号输入端。当CPU以外的其他设备要求占用总线时通过该引脚向CPU发出请求。HLDA:总线保持响应信号输出端。CPU对HOLD信号的响应信号。和CPU引线功能比较*和CPU引线功能比较数据总线宽度不同的外部总线宽度是位为位。访问存储器和输入输出控制信号含义不同IOM=表示访问内存IOM=表示访问内存。其他部分引线功能的区别三、的内部结构*三、的内部结构组成*组成内部由两部分组成:执行单元(EU)总线接口单元(BIU)执行单元*执行单元运算器个通用寄存器个标志寄存器EU部分控制电路教材第页图图执行单元*执行单元功能指令译码指令执行暂存中间运算结果保存运算结果特征指令的执行在标志寄存器FLAGS中在ALU中完成在通用寄存器中总线接口单元*总线接口单元功能:从内存中取指令到指令预取队列指令预取队列是并行流水线工作的基础负责与内存或输入输出接口之间的数据传送在执行转移程序时BIU使指令预取队列复位从指定的新地址取指令并立即传给执行单元执行。结论*结论指令预取队列的存在使EU和BIU两个部分可同时进行工作从而:提高了CPU的效率降低了对存储器存取速度的要求四、内部寄存器*四、内部寄存器内部寄存器的类型*内部寄存器的类型含个位寄存器按功能可分为三类个通用寄存器个段寄存器个控制寄存器深入理解:每个寄存器中数据的含义通用寄存器*通用寄存器数据寄存器(AXBXCXDX)地址指针寄存器(SPBP)变址寄存器(SIDI)数据寄存器*数据寄存器含个位数据寄存器它们又可分为个位寄存器即:AXBXCXDXAHALCHCLBHBLDHDL数据寄存器特有的习惯用法*数据寄存器特有的习惯用法AX:累加器。所有IO指令都通过AX与接口传送信息中间运算结果也多放于AX中BX:基址寄存器。在间接寻址中用于存放基地址CX:计数寄存器。用于在循环或串操作指令中存放计数值DX:数据寄存器。在间接寻址的IO指令中存放IO端口地址在位乘除法运算时存放高位数。地址指针寄存器*地址指针寄存器SP:堆栈指针寄存器其内容为栈顶的偏移地址BP:基址指针寄存器常用于在访问内存时存放内存单元的偏移地址。BX与BP在应用上的区别*BX与BP在应用上的区别作为通用寄存器二者均可用于存放数据作为基址寄存器用BX表示所寻找的数据在数据段用BP则表示数据在堆栈段。变址寄存器*变址寄存器SI:源变址寄存器DI:目标变址寄存器变址寄存器在指令中常用于存放数据在内存中的地址。控制寄存器*控制寄存器IP指令指针寄存器其内容为下一条要执行指令的偏移地址。FLAGS标志寄存器存放运算结果的特征个状态标志位(CFSFAFPFOFZF)个控制标志位(IFTFDF)状态标志位()*状态标志位()CF(CarryFlag)进位标志位。加(减)法运算时若最高位有进(借)位则CF=PF(ParityFlag)奇偶标志位。运算结果的低位中“”的个数为偶数时PF=lAF(AuxiliaryCarryFlag)辅助进位标志位。加(减)操作中若Bit向Bit有进位(借位)AF=状态标志位()*状态标志位()ZF(ZeroFlag)零标志位。当运算结果为零时ZF=SF(SignFlag)符号标志位。当运算结果的最高位为时SF=lOF(OverflowFlag)溢出标志位。当算术运算的结果超出了有符号数的可表达范围时OF=l状态标志位例*状态标志位例给出以下运算结果及运算后各状态标志位的状态:CF=OF=AF=PF=SF=ZF=控制标志位*控制标志位TF(TrapFlag)陷井标志位也叫跟踪标志位。TF=时使CPU处于单步执行指令的工作方式。IF(InterruptEnableFlag)中断允许标志位。IF=使CPU可以响应可屏蔽中断请求。DF(DirectionFlag)方向标志位。在数据串操作时确定操作的方向。段寄存器*段寄存器作用用于存放相应逻辑段的段基地址内存中逻辑段的数量最多为K个内存中逻辑段的类型代码段数据段附加段堆栈段存放指令代码存放操作的数据存放操作的数据存放暂时不用但需保存的数据。为什么叫逻辑段?每个段寄存器中存放的内容=?段寄存器*段寄存器CS代码段寄存器存放代码段的段基地址。DS数据段寄存器存放数据段的段基地址。ES附加段寄存器存放数据段的段基地址。SS堆栈段寄存器存放堆栈段的段基地址段寄存器的值表明相应逻辑段在内存中的位置五、存储器寻址*五、存储器寻址内存单元的编址()*内存单元的编址()每个内存单元在整个内存空间中都具有惟一的地址每个内存单元的地址码都由两部分组成:段(基)地址位段内地址位相对地址偏移地址物理地址为位结构所以段地址和偏移地址均为位存储器的编址()*存储器的编址()段基地址:决定存储单元在内存中的位置相对地址(偏移地址)决定该存储单元相对段内第一个单元的距离逻辑段的起始地址称为段首每个逻辑段内的第一个单元段首的偏移地址=存储器的编址()*存储器的编址()段基地址(位)段首地址(段首的物理地址)•••段首的偏移地址:H段基地址(位)••••••存储器的编址()*存储器的编址()例:段基地址=H段首地址偏移地址=H物理地址数据段HHHH物理地址:内存单元在整个内存空间中的惟一地址实地址模式下的存储器地址变换*实地址模式下的存储器地址变换内存物理地址由段基地址和偏移地址组成物理地址=段基地址偏移地址段首地址••••••偏移地址物理地址例:*例:已知CS=HDS=AHES=EFHSS=FFH画出各段在内存中的分布。例:*例:CS=H段首地址=HDS=AH段首地址=AHES=EFHSS=FFHHAHEFHFFH代码段数据段附加段堆栈段例*例设某操作数存放在数据段DS=AH数据所在单元的偏移地址=H。则该操作数所在单元的物理地址为:AHH=AH存储器的保护模式*存储器的保护模式保护模式:支持多任务的工作模式提供了多任务保护机制内存段的访问受到限制不能再随意存取数据段。保护模式下的内存访问不再直接从段寄存器中获得段基地址段基地址存放在内存的段描述符表中由段描述符寄存器给出段描述符表的基地址段寄存器中仅存放段选择符。保护模式下的存储器地址变换*保护模式下的存储器地址变换堆栈及堆栈段的使用*堆栈及堆栈段的使用堆栈:内存中一个特殊区域用于存放暂时不用或需要保护的数据。常用于响应中断或子程序调用。例:*例:已知SS=HSP=H则:堆栈段的段首地址=栈顶(偏移)地址=若该段最后一个单元地址为H则:栈底偏移地址=HHH内部寄存器小结*内部寄存器小结全部为位寄存器只有个数据寄存器分别可分为个位寄存器所有位寄存器中:全部通用寄存器中只有AX和CX中的内容一定为参加运算的数据其余通用寄存器中的内容可能是数据也可能是存放数据的地址SP中的内容通常为堆栈段的栈顶地址段寄存器中的内容为相应逻辑段的段地址IP中的内容为下一条要取的指令的偏移地址FLAGS中有位标志位实模式下的存储器寻址小结*实模式下的存储器寻址小结每个内存单元在整个内存空间中都具有惟一地址每个内存单元的地址都由两部分组成:段基地址段内相对地址(偏移地址)段基地址决定了逻辑段在内存中所占的区域改变段基地址则改变了逻辑段的位置。一个逻辑段的默认长度为KB最小长度值为B。逻辑段可以有多个但只有种类型。在一个程序模块中每种类型的逻辑段最多只能有一个。六、总线时序*六、总线时序时序*时序时序:CPU各引脚信号在时间上的关系总线周期:CPU完成一次访问内存(或接口)操作所需要的时间。一个总线周期至少包括个时钟周期。七、系统总线*七、系统总线主要内容:*主要内容:总线的基本概念和分类总线的工作方式常用系统总线标准。概述*概述总线:是一组导线和相关的控制、驱动电路的集合。是计算机系统各部件之间传输地址、数据和控制信息的通道。地址总线(AB)数据总线(DB)控制总线(CB)总线分类*总线分类CPU总线系统总线外部总线片内总线片外总线按相对CPU的位置分按层次结构分总线的系统结构*总线的系统结构单总线结构CPUMMIOIOIO多总线结构*多总线结构面向CPU的双总线结构面向主存的双总线结构双总线结构多总线结构面向CPU的双总线结构*面向CPU的双总线结构存储器与IO接口间无直接通道CPUMIOIOIO面向存储器的双总线结构*面向存储器的双总线结构在单总线结构基础上增加一条CPU到存储器的高速总线CPUMIOIOIO现代微机中的多总线结构*现代微机中的多总线结构总线的基本功能*总线的基本功能数据传送仲裁控制出错处理总线驱动常用系统总线*常用系统总线ISA(位)PCI(位)AGP(加速图形端口用于提高图形处理能力)PCIE(PCIExpress)目前最新的系统总线标准采用串行方式传输数据依靠高频率来获得高性能。总线的主要性能指标*总线的主要性能指标总线带宽(BS):单位时间内总线上可传送的数据量总线位宽(bit):能同时传送的数据位数总线的工作频率(MHz)总线带宽=(位宽)(工作频率每个存取周期的时钟数)两种工作模式下的总线连接*两种工作模式下的总线连接可工作于两种模式下最小模式为单处理器模式控制信号较少一般可不必接总线控制器。最大模式为多处理器模式控制信号较多须通过总线控制器与总线相连。最小模式下的总线连接示意图*最小模式下的总线连接示意图CPU••控制总线数据总线地址总线地址锁存数据收发ALE时钟发生器最大模式下的总线连接示意图*最大模式下的总线连接示意图CPU数据总线地址总线地址锁存数据收发ALE时钟发生器总线控制器控制总线本章小结*本章小结微处理器的一般构成CPU的主要引线及其功能CPU的内部结构内部寄存器功能寄存器中数据的含义位寄存器中存放的均为运算的数据存储器寻址逻辑地址段基地址偏移地址物理地址堆栈栈顶地址栈底地址堆栈段基地址*第章指令系统*第章指令系统主要内容:*主要内容:指令系统的一般概念对操作数的寻址方式六大类指令的操作原理:操作码的含义指令对操作数的要求指令执行的结果概述*概述了解:*了解:指令及指令系统指令的格式指令中的操作数类型指令字长与机器字长指令的执行时间CISC和RISC指令系统一、指令与指令系统*一、指令与指令系统指令:控制计算机完成某种操作的命令指令系统:处理器所能识别的所有指令的集合指令的兼容性:同一系列机的指令都是兼容的。二、指令格式*二、指令格式指令中应包含的信息:运算数据的来源运算结果的去向执行的操作指令格式*指令格式操作码操作数操作数执行何种操作目标操作数源操作数参加操作的数据或数据存放的地址指令格式:*指令格式:零操作数指令:操作码单操作数指令:操作码操作数双操作数指令:操作码操作数操作数多操作数指令:三操作数及以上三、指令中的操作数*三、指令中的操作数立即数寄存器存储器表征参加操作的数据本身表征数据存放的地址立即数操作数*立即数操作数立即数本身是参加操作的数据可以是位或位只能作为源操作数。例:MOVAXHMOVBLH立即数无法作为目标操作数立即数可以是无符号或带符号数其数值应在可取值范围内。寄存器操作数:*寄存器操作数:参加运算的数存放在指令给出的寄存器中可以是位或位。例:MOVAXBXMOVDLCH存储器操作数*存储器操作数参加运算的数存放在存储器的某一个或某两个单元中。表现形式:立即数或寄存器中的内容是存放所寻找数据的单元的偏移地址存储器操作数例*存储器操作数例例:MOVAXHMOVALHHHH偏移地址AHAL四、指令字长*四、指令字长指令字长:由操作码的长度、操作数地址长度、操作数个数决定。五、指令的执行速度*五、指令的执行速度指令的字长影响指令的执行速度对不同的操作数指令执行的时间不同:存储器快!立即数寄存器六、CISC和RISC指令系统*六、CISC和RISC指令系统CISC(complexinstructionsetcomputer)指令的功能强种类多常用指令用硬件实现指令系统复杂难使用。RISC指令系统指令功能较弱种类少格式简单多数指令在一个计算机周期内完成对存储器的结构和存取速度要求较高。寻址方式*寻址方式寻址方式*寻址方式寻找操作数所在地址的方法寻找转移地址的方法本节寻址方式*寻址方式操作数可能的来源或存放处:由指令直接给出寄存器内存单元寻找操作数所在地址的方法可以有三种大类型指令直接给出的方式存放于寄存器中的寻址方式存放于存储器中的寻址方式一、立即寻址*一、立即寻址指令中的源操作数是立即数即源操作数是参加操作的数据本身例:MOVAXHHHAHALMOV代码段立即寻址仅适合于源操作数二、寄存器寻址*二、寄存器寻址参加操作的操作数在CPU的通用寄存器中。例:MOVAXBXAXBX三、直接寻址*三、直接寻址指令中直接给出操作数的偏移地址默认在数据段例:MOVAXHHHH偏移地址数据段AHAL直接寻址*直接寻址直接寻址方式下操作数的段地址默认为数据段但允许段重设即由指令定义段。例:MOVAXES:H四、寄存器间接寻址*四、寄存器间接寻址参与操作的操作数存放在内存中其偏移地址为指令中的寄存器的内容。寄存器间接寻址例*寄存器间接寻址例例:MOVAXBX设BX=HHHH偏移地址AHAL数据段代码段MOV寄存器间接寻址*寄存器间接寻址由寄存器间接给出操作数的偏移地址存放偏移地址的寄存器称为间址寄存器它们是:BXBPSIDI操作数的段地址(数据处于哪个段)取决于选择哪一个间址寄存器:BXSIDIBP默认在数据段默认在堆栈段寄存器间接寻址*寄存器间接寻址寄存器间接寻址基址寻址(间址寄存器为基址寄存器BXBP)变址寻址(间址寄存器为变址寄存器SIDI)五、寄存器相对寻址*五、寄存器相对寻址操作数的偏移地址为寄存器的内容加上一个位移量例:MOVAXBXDATA设:DS=HBX=HDATA=H则:AX=H六、基址、变址寻址*六、基址、变址寻址操作数的偏移地址为一个基址寄存器的内容一个变址寄存器的内容操作数的段地址由选择的基址寄存器决定基址寄存器为BX默认在数据段基址寄存器为BP默认在堆栈段基址变址寻址方式与相对寻址方式一样主要用于一维数组操作。例:*例:执行下列指令:MOVSIHMOVBXSIMOVAXSIBXHHH偏移地址AHAL数据段七、基址、变址、相对寻址*七、基址、变址、相对寻址操作数的偏移地址为:基址寄存器内容变址寄存器内容位移量操作数的段地址由选择的基址寄存器决定。基址变址相对寻址方式主要用于二维表格操作。例:*例:执行以下程序段:MOVDIHMOVBPDIMOVALBPDIHHH偏移地址AL堆栈段八、隐含寻址*八、隐含寻址指令中隐含了一个或两个操作数的地址即操作数在默认的地址中。例:MULBL指令执行:ALBLAX指令系统*指令系统掌握:*掌握:指令码的含义指令对操作数的要求指令的对标志位的影响指令的功能指令系统*指令系统从功能上包括六大类:数据传送算术运算逻辑运算和移位串操作程序控制处理器控制数据传送指令*数据传送指令通用数据传送输入输出地址传送标志位操作一、通用数据传送*一、通用数据传送一般数据传送指令堆栈操作指令交换指令查表转换指令字位扩展指令特点:该类指令的执行对标志位不产生影响一般数据传送指令*一般数据传送指令一般数据传送指令MOV格式:MOVdestsrc操作:src例:MOVALBLdest一般数据传送指令*一般数据传送指令注意点:两操作数字长必须相同两操作数不允许同时为存储器操作数两操作数不允许同时为段寄存器在源操作数是立即数时目标操作数不能是段寄存器IP和CS不作为目标操作数FLAGS一般也不作为操作数在指令中出现。一般数据传送指令例*一般数据传送指令例判断下列指令的正确性:MOVALBXMOVAXSIHMOVBXBPBXMOVDSHMOVDXHMOVSI一般数据传送指令应用例*一般数据传送指令应用例将(*)的ASCII码AH送入内存数据段H开始的个单元中。题目分析:确定首地址确定数据长度写一次数据修改单元地址修改长度值判断写完否?未完继续写入否则结束HBHAH数据段AHAHAH一般数据传送指令应用例*一般数据传送指令应用例程序段:MOVDIHMOVCXHMOVALAHAGAIN:MOVDIALINCDIDIDECCXCXJNZAGAINCX则继续HLT上段程序在代码段中的存放形式*上段程序在代码段中的存放形式設CS=EHIP=H则各条指令在代码段中的存放地址如下:CS:IP机器指令汇编指令E:BMOVDIHE:MOVCXHE:MOVALAHE:MOVDIALE:INCDIE:ADECCXE:BJNZHE:DHLT数据段中的分布*数据段中的分布送上AH后数据段中相应存储单元的内容改变如下:DS:AAAAAAAAAAAAAAAADS:AAAAAAAAAAAAAAAADS:AAAAAAAAAAAAAAAADS:AAAAAAAAAAAAAAAADS:AAAAAAAAAAAAAAAADS:AAAAAAAAAAAAAAAADS:AAAA偏移地址DI堆栈操作指令*堆栈操作指令掌握:有关堆栈的概念栈顶、栈首、栈底堆栈指令的操作原理执行过程执行结果堆栈操作的原则*堆栈操作的原则先进后出以字为单位堆栈操作指令*堆栈操作指令压栈指令PUSH格式:PUSHOPRD出栈指令POP格式:POPOPRD位寄存器或存储器两单元位寄存器或存储器两单元压栈指令PUSH*压栈指令PUSH指令执行过程:SPSP操作数高字节SP操作数低字节SPSP堆栈段SP高位低位压栈指令的操作*压栈指令的操作设AX=HSP=H执行PUSHAX指令后堆栈区的状态:H堆栈段SP=FEHHHH堆栈段HHAX入栈后入栈前出栈指令POP*出栈指令POP指令执行过程:SPSPSPSP操作数低字节操作数高字节SP堆栈段SP高位低位出栈指令的操作*出栈指令的操作执行POPAXHHFEH堆栈段代码段PUSHAXSPH出栈后出栈前堆栈操作指令说明*堆栈操作指令说明指令的操作数必须是位的操作数可以是寄存器或存储器两单元但不能是立即数不能从栈顶弹出一个字给CSPUSH和POP指令在程序中一般成对出现PUSH指令的操作方向是从高地址向低地址而POP指令的操作正好相反。堆栈操作指令例*堆栈操作指令例MOVAXHMOVSPAXMOVBXHMOVBXAHMOVBXBLPUSHAXPUSHBXPUSHWORDPTRBXPOPWORDPTRBXPOPAXPOPBX如此会使AX和BX的内容互换交换指令*交换指令格式:XCHGREGMEMREG注:两操作数必须有一个是寄存器操作数不允许使用段寄存器。例:XCHGAXBXXCHGCL查表指令*查表指令格式:XLAT说明:用BX的内容代表表格首地址AL内容为表内位移量BXAL得到要查找元素的偏移地址操作:将BXAL所指单元的内容送AL查表指令例*查表指令例数据段中存放有一张ASCII码转换表设首地址为H现欲查出表中第个代码的ASCII码HH‘’‘’‘’‘’‘A’‘B’‘E’‘F’查表指令例*查表指令例可用如下指令实现:MOVBXHBX表首地址MOVALBHAL序号XLAT查表转换执行后:AL=H还可用其他方法实现如:MOVBXHMOVALBXBH字位扩展指令*字位扩展指令将符号数的符号位扩展到高位指令为零操作数指令采用隐含寻址隐含的操作数为AX及AXDX无符号数的扩展规则为在高位补字节到字的扩展指令*字节到字的扩展指令格式:CBW操作:将AL内容扩展到AX规则:若最高位=则执行后AH=FFH若最高位=则执行后AH=H字到双字的扩展指令*字到双字的扩展指令格式:CWD操作:将AX内容扩展到DXAX规则:若最高位=则执行后DX=FFFFH若最高位=则执行后DX=H字位扩展指令例*字位扩展指令例判断以下指令执行结果:MOVALHCBWMOVAXAFDEHCWDMOVALHCBW二、输入输出指令*二、输入输出指令掌握:指令的格式及操作指令的两种寻址方式指令对操作数的要求输入输出指令*输入输出指令专门面向IO端口操作的指令指令格式:输入指令:INaccPORT输出指令:OUTPORTacc端口地址指令寻址方式*指令寻址方式根据端口地址码的长度指令具有两种不同的端口地址表现形式。直接寻址端口地址为位时指令中直接给出位端口地址寻址个端口。间接寻址端口地址为位时指令中的端口地址必须由DX指定可寻址K个端口。IO指令例*IO指令例INAXHMOVDXHINALDXOUTHAXOUTAXH三、地址传送指令*三、地址传送指令取偏移地址指令LEA*LDS指令*LES指令取偏移地址指令LEA*取偏移地址指令LEA操作:将变量的位偏移地址取出送目标寄存器当程序中用符号地址表示内存偏移地址时须使用该指令。格式:LEAREGMEM指令要求:源操作数必须是一个存储器操作数目标操作数通常是间址寄存器。符号地址LEA指令*LEA指令比较下列指令:MOVSIDATALEASIDATAMOVBXBXLEABXBXDATA符号地址HHHHHBX=H执行结果:SI=H执行结果:SI=DATA执行结果:BX=H执行结果:BX=HLEA指令在程序中的应用*LEA指令在程序中的应用将数据段中首地址为MEM的个字节的数据传送到同一逻辑段首地址为MEM的区域存放。编写相应的程序段。LEA指令在程序中的应用*LEA指令在程序中的应用开始取源地址取目标地址送数据块长度到CL传送一个字节修改地址指针修改计数值计数值=?结束NYLEA指令在程序中的应用*LEA指令在程序中的应用LEASIMEMLEADIMEMMOVCLNEXT:MOVALSIMOVDIALINCSIINCDIDECCLJNZNEXTHLT四、标志位操作指令*四、标志位操作指令LAHFSAHFPUSHFPOPF隐含操作数AH隐含操作数FLAGSLAHFSAHF*LAHFSAHFLAHF操作:将FLAGS的低位装入AHCFPFAFZFCF…AHF

精彩专题

职业精品

上传我的资料

热门资料

资料评价:

/ 681
所需积分:0 立即下载

意见
反馈

返回
顶部

Q