书签 分享 收藏 举报 版权申诉 / 681
上传文档赚钱

类型微机原理与接口技术课件全套.ppt

  • 上传人(卖家):晟晟文业
  • 文档编号:4131012
  • 上传时间:2022-11-13
  • 格式:PPT
  • 页数:681
  • 大小:8.30MB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《微机原理与接口技术课件全套.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    微机 原理 接口 技术 课件 全套
    资源描述:

    1、微机原理与接口技术清华大学课件全套2课程目标n掌握:掌握:n微型计算机的基本工作原理微型计算机的基本工作原理n汇编语言程序设计方法汇编语言程序设计方法n微型计算机接口技术微型计算机接口技术n建立微型计算机系统的整体概念,形成微机系统软建立微型计算机系统的整体概念,形成微机系统软硬件开发的初步能力硬件开发的初步能力5一、微型计算机系统n微型机的工作原理微型机的工作原理n微机系统的基本组成微机系统的基本组成61.计算机的工作原理冯冯 诺依曼计算机的工作原理诺依曼计算机的工作原理 存储程序工作原理存储程序工作原理7存储程序原理n将计算过程描述为由许多条指令按一定顺序组将计算过程描述为由许多条指令按一

    2、定顺序组成的程序,并放入存储器保存成的程序,并放入存储器保存n指令按其在存储器中存放的顺序执行;指令按其在存储器中存放的顺序执行;n由控制器控制整个程序和数据的存取以及程序由控制器控制整个程序和数据的存取以及程序的执行。的执行。8冯 诺依曼计算机体系结构运算器运算器存储器存储器控制器控制器输入设备输入设备输出设备输出设备9冯 诺依曼机的工作过程内存中的程序内存中的程序指令指令1指令指令2指令指令n分析分析获取操作数获取操作数执行执行存放结果存放结果程序计程序计数器数器PC地址地址CPU取出取出操作数操作数10冯 诺依曼机的工作过程n取一条指令的工作过程:取一条指令的工作过程:n将指令所在地址赋

    3、给程序计数器将指令所在地址赋给程序计数器PC;nPC内容送到地址寄存器内容送到地址寄存器AR,PC自动加自动加1;n把把AR的内容通过地址总线送至内存储器,经地址译码器译码,的内容通过地址总线送至内存储器,经地址译码器译码,选中相应单元。选中相应单元。nCPU的控制器发出读命令。的控制器发出读命令。n在读命令控制下,把所选中单元的内容(即指令操作码)读到数在读命令控制下,把所选中单元的内容(即指令操作码)读到数据总线据总线DB。n把读出的内容经数据总线送到数据寄存器把读出的内容经数据总线送到数据寄存器DR。n指令译码指令译码n因为取出的是指令的操作码,故数据寄存器因为取出的是指令的操作码,故数

    4、据寄存器DR把它送到指令寄存器把它送到指令寄存器IR,然后再送到指令译码器,然后再送到指令译码器ID 冯 诺依曼机的特点和不足n特点:特点:n程序存储,共享数据,顺序执行程序存储,共享数据,顺序执行n属于顺序处理机,适合于确定的算法和数值数据的属于顺序处理机,适合于确定的算法和数值数据的处理。处理。n不足:不足:n与存储器间有大量数据交互,对总线要求很高;与存储器间有大量数据交互,对总线要求很高;n执行顺序有程序决定,对大型复杂任务较困难;执行顺序有程序决定,对大型复杂任务较困难;n以运算器为核心,处理效率较低;以运算器为核心,处理效率较低;n由由PC控制执行顺序,难以进行真正的并行处理。控制

    5、执行顺序,难以进行真正的并行处理。11典型的非冯 诺依曼机结构n数据流驱动的计算机结构数据流驱动的计算机结构n当指令具有所需数据、且输出端没有数据时就可执当指令具有所需数据、且输出端没有数据时就可执行。行。12数据流处理机存储器主处理机数据通道控制通道高速数据总线磁盘存储器Dataflow Image Processing System132.系统组成 主机主机 硬件系统硬件系统 外设外设 微机系统微机系统 系统软件系统软件 软件系统软件系统 应用软件应用软件CPU存储器存储器输入输入/输出接口输出接口总线总线14微处理器n微处理器简称微处理器简称CPU,是计算机的核心。是计算机的核心。n主要

    6、包括:主要包括:运算器运算器 控制器控制器 寄存器组寄存器组15存储器n定义:定义:n用于存放计算机工作过程中需要操作的数据用于存放计算机工作过程中需要操作的数据和程序。和程序。16有关内存储器的几个概念n内存单元的地址和内容内存单元的地址和内容n内存容量内存容量n内存的操作内存的操作n内存的分类内存的分类17内存单元的地址和内容n内存按单元组织内存按单元组织n每单元都对应一个地址,以方便对单元的寻址每单元都对应一个地址,以方便对单元的寻址1011011038F04H内存地址内存地址单元内容单元内容18内存容量n内存容量:内存容量:n所含存储单元的个数,以字节为单位所含存储单元的个数,以字节为

    7、单位n内存容量的大小依内存容量的大小依CPUCPU的寻址能力而定的寻址能力而定n实地址模式下为实地址模式下为CPUCPU地址信号线的位数地址信号线的位数19内存操作n读:读:n将内存单元的内容取入将内存单元的内容取入CPUCPU,原单元内容不改变;原单元内容不改变;n写:写:nCPUCPU将信息放入内存单元,单元中原来的内容被覆盖。将信息放入内存单元,单元中原来的内容被覆盖。20内存储器的分类随机存取存储器(随机存取存储器(RAMRAM)只读存储器(只读存储器(ROMROM)按工作方按工作方式可分为式可分为21输入/输出接口n接口是接口是CPUCPU与外部设备间的桥梁与外部设备间的桥梁CPUI

    8、/OI/O接口接口外外设设22接口的分类串行接口串行接口并行接口并行接口数字接口数字接口模拟接口模拟接口输入接口输入接口输出接口输出接口23接口的功能n数据缓冲寄存;数据缓冲寄存;n信号电平或类型的转换;信号电平或类型的转换;n实现主机与外设间的运行匹配。实现主机与外设间的运行匹配。24总线n基本概念基本概念n分类分类n工作原理工作原理n常用系统总线标准及其主要技术指标常用系统总线标准及其主要技术指标 (具体内容见后续课程)(具体内容见后续课程)25软件系统n软件:软件:n为运行、管理和维护计算机系统或为实现某一功能为运行、管理和维护计算机系统或为实现某一功能而编写的各种程序的总和及其相关资料

    9、。而编写的各种程序的总和及其相关资料。系统软件系统软件应用软件应用软件操作系统操作系统编译系统编译系统网络系统网络系统工具软件工具软件软件软件26二、计算机中的数制和编码n数制和编码的表示数制和编码的表示n各种计数制之间的相互转换各种计数制之间的相互转换271.常用计数法 十进制(十进制(D D)二进制(二进制(B B)十六进制(十六进制(H H)28例:n234.98D或(或(234.98)Dn1101.11B或(或(1101.11)BnABCD.BFH或(或(ABCD.BF)H292.各种进制数间的转换非十进制数到十进制数的转换非十进制数到十进制数的转换十进制到非十进制数的转换十进制到非十

    10、进制数的转换二二进制与十六进制数之间的转换进制与十六进制数之间的转换 30非十进制数到十进制数的转换n按相应的权按相应的权值表达式展开值表达式展开n例:例:n1011.11B=123+022+121+120+12-1+12-2 =8+2+1+0.5+0.25 =11.75n5B.8H=5161+11160+816-1 =80+11+0.5 =91.531十进制到非十进制数的转换n到二进制的转换:到二进制的转换:对整数:除对整数:除2取余;取余;对小数:乘对小数:乘2取整。取整。n到十六进制的转换:到十六进制的转换:对整数:除对整数:除16取余;取余;对小数:乘对小数:乘16取整。取整。32二进

    11、制与十六进制间的转换n用用4位二进制数表示位二进制数表示1位十六进制数位十六进制数n例:例:n25.5 =11001.1B =19.8H n11001010.0110101B =CA.6AH333.计算机中的编码nBCD码码n用二进制编码表示的十进制数用二进制编码表示的十进制数nASCII码码n西文字符编码西文字符编码34BCD码码n压缩压缩BCD码码n用用4位二进制码表示一位十进制数位二进制码表示一位十进制数n每每4位之间有一个空格位之间有一个空格n扩展扩展BCD码码n用用8位二进制码表示一位十进制数,每位二进制码表示一位十进制数,每4位之间有一位之间有一个空格。个空格。35BCD码与二进制

    12、数之间的转换n先转换为十进先转换为十进 制数,再转换二进制数,再转换二进 制数;反之同制数;反之同样。样。n例例:n(0001 0001.0010 01010001 0001.0010 0101)BCDBCD =11.25 =11.25 =(1011.011011.01)B B36ASCII码n西文西文 字符的编码,一般用字符的编码,一般用7位二进位二进 制码表示。制码表示。nD D7 7位为校验位,默认情况下为位为校验位,默认情况下为0。n要求:要求:n理解校验位的作用理解校验位的作用n熟悉熟悉0-F的的ASCII码码37ASCII码的奇偶校验n奇校验奇校验n加上校验位后编码中加上校验位后编

    13、码中“1”的个数为奇数。的个数为奇数。n例:例:A的的ASCII码是码是41H(1000001B)n以奇校验传送则为以奇校验传送则为 C1H(11000001B)n偶校验偶校验n加上校验位后加上校验位后 编码中编码中“1”的个数为偶数。的个数为偶数。n上例若以偶校验传送,则为上例若以偶校验传送,则为 41H。38三、无符号二进制数的运算算术运算算术运算逻辑运算逻辑运算无符号数无符号数有符号数有符号数二进二进 制数的运算制数的运算39主要内容n无符号二进无符号二进 制数的算术运算制数的算术运算n无符号数的表达范围无符号数的表达范围n运算中的溢出问题运算中的溢出问题n无符号数的逻辑运算无符号数的逻

    14、辑运算n基本逻辑门和译码器基本逻辑门和译码器401.无符号数的算术运算n加法运算加法运算n1+1=0(有进位)(有进位)n减法运算减法运算n0-1=1(有借位)(有借位)n乘法运算乘法运算n除法运算除法运算41乘除运算例n000010110100 =00101100B n000010110100=00000010B 即:商即:商=00000010B 余数余数=11B422.无符号数的表示范围:0 0 X 2X 2n n-1-1若运算结果超出这个范围,则产生溢出。若运算结果超出这个范围,则产生溢出。对无符号数:运算时,当最高位向更高位对无符号数:运算时,当最高位向更高位 有进位(或借位)时则产生

    15、有进位(或借位)时则产生 溢出。溢出。43例:最高位向前有进位,产生溢出最高位向前有进位,产生溢出00000000 100000001 11111111 443.逻辑运算n与、或、非、异或与、或、非、异或n掌握:掌握:n与、或、非门逻辑符号和逻辑关系(真值表);与、或、非门逻辑符号和逻辑关系(真值表);n与非门、或非门的应用。与非门、或非门的应用。45“与”、“或”运算n“与与”运算:运算:n任何数和任何数和“0”相相“与与”,结果为,结果为0。n“或或”运算:运算:n任何数和任何数和“1”相相“或或”,结果为,结果为1。&1146“非”、“异或”运算n“非非”运算运算n按位求反按位求反n“异

    16、或异或”运算运算n相同则为相同则为0,相异则为,相异则为1474.译码器n掌握掌握74LS138译码器译码器n各引脚功能各引脚功能n输入端与输出端关系(真值表)输入端与输出端关系(真值表)4874LS138译码器G1G2AG2BCBAY0Y7 n主要引脚及功能主要引脚及功能49三、机器数(有符号数)的运算50计算机中符号数的表示n机器数机器数n计算机中的数据计算机中的数据n构成:构成:n符号位符号位+真值真值 “0”表示正表示正“1”表示负表示负51例 +52=+0110100=0 0110100 符号位符号位 真值真值-52=-0110100=1 0110100 符号位符号位 真值真值521

    17、.符号数的表示n机器数的表示方法:机器数的表示方法:n原码原码n反码反码n补码补码53原码n最高位为符号位(用最高位为符号位(用“0”表示正,用表示正,用“1”表表示负),其余为真值部分。示负),其余为真值部分。n优点:优点:n真值和其原码表示之间的对应关系简单,容易理解;真值和其原码表示之间的对应关系简单,容易理解;n缺点:缺点:n计算机中用原码进行加减运算比较困难计算机中用原码进行加减运算比较困难n0的表示不唯一。的表示不唯一。54数0的原码n8位数位数0的原码:的原码:+0=0 0000000 -0=1 0000000 即:数即:数0的原码不唯一。的原码不唯一。55反码对一个机器数对一个

    18、机器数X:n若若X0,则则 X反反=X原原n若若X0,则则X补补=X反反=X原原n若若X BX 若若 AX BX OF和和SF状态不同状态不同 AX BX239CMP指令例 LEA BX,MAX LEA SI,BUF MOV CL,20 MOV AL,SINEXT:INC SI CMP AL,SI JNC GOON ;CF=0转移转移 XCHG SI,ALGOON:DEC CL JNZ NEXT MOV BX,AL HLT240程序功能 MAXBUFXXHXXHXXH在在20个数中找最大个数中找最大的数,并将其存放的数,并将其存放在在MAX单元中。单元中。241三、乘法指令无符号的乘法指令无符

    19、号的乘法指令MUL*带符号的乘法指令带符号的乘法指令IMULn注意点:注意点:n乘法指令采用隐含寻址,隐含的是存放被乘数的累乘法指令采用隐含寻址,隐含的是存放被乘数的累加器加器ALAL或或AXAX及存放结果的及存放结果的AXAX,DX.DX.2421.无符号数乘法指令n格式:格式:MUL OPRD 不能是立即数不能是立即数n操作:操作:OPRD为字节数为字节数 OPRD为为16位数位数 ALOPRDAXOPRDDXAXAX243无符号数乘法指令例nMUL BYTE PTRBX BXXXHAL XXHAX244四、除法指令无符号除法指令无符号除法指令n格式:格式:nDIV OPRD有符号除法指令

    20、有符号除法指令n格式:格式:nIDIV OPRD245除法指令的操作若若OPRD是字节数是字节数n执行:执行:AX/OPRD n结果:结果:nAL=商商 AH=余数余数若若OPRD是双字节数是双字节数n执行:执行:DXAX/OPRDn结果:结果:nAX=商商 DX=余数余数指指令令要要求求被被除除数数是是除除数数的的双双倍倍字字长长246五、BCD码调整指令n将指令执行的二进制运算结果调整为压缩将指令执行的二进制运算结果调整为压缩BCD码或扩展码或扩展BCD码表示的十进制数。码表示的十进制数。n共共6条,均为隐含寻址方式,隐含的操作数是条,均为隐含寻址方式,隐含的操作数是 AL或或AL、AH;

    21、n不能单独使用,要紧跟在相应的算术运算指令不能单独使用,要紧跟在相应的算术运算指令 之后;之后;247逻辑运算和移位指令248指令类型n逻辑运算逻辑运算n与,或,非,异或与,或,非,异或n移位操作移位操作n非循环移位,循环移位非循环移位,循环移位249 一、逻辑运算n逻辑运算指令对逻辑运算指令对 操作数的操作数的 要求大多与要求大多与MOV指令指令 相同。相同。n“非非”运算指令运算指令 要求操作数要求操作数 不能是立即数;不能是立即数;n除除“非非”运算指令运算指令 外,其余指令的执行都会外,其余指令的执行都会使标志位使标志位OF=CF=02501.“与”指令:n格式:格式:n AND OP

    22、RD1,OPRD2n操作:操作:n两操作数相两操作数相“与与”,结果送目标地址。,结果送目标地址。251“与”指令的应用n实现两操作数实现两操作数 按位相与的按位相与的 运算运算nAND BL,SIn使目标操作数的使目标操作数的 某些位不变,某些位清零某些位不变,某些位清零nAND AL,0FHn在操作数在操作数 不变的不变的 情况下使情况下使CF和和OF清零清零nAND AX,AX252“与”指令应用例n从地址为从地址为3F8H 端口中读入一个字节数,端口中读入一个字节数,如果该数如果该数 bit1位为位为1,则可从,则可从38FH端口将端口将DATA为首地址的为首地址的 一个字输出,否则就

    23、不一个字输出,否则就不能进行数能进行数 据传送。据传送。编写相应的编写相应的 程序段。程序段。253“与”指令应用例开开 始始取待输出数的取待输出数的偏移地址偏移地址读入状态字读入状态字测试测试bit1位状态位状态Bit1=1?取输入口地址取输入口地址取输出口地址取输出口地址 输出一个字输出一个字NY254“与”指令应用例 LEA SI,DATA MOV DX,3F8HWATT:IN AL,DX AND AL,02H JZ WATT ;ZF=1转移转移 MOV DX,38FH MOV AX,SI OUT DX,AX2552.“或”运算指令n格式:格式:nOR OPRD1,OPRD2n操作:操作

    24、:n两操作数相两操作数相“或或”,结果送目标地址,结果送目标地址256“或”指令的应用n实现两操作数实现两操作数 相相“或或”的的 运算运算nOR AX,DIn使某些位不变,某些位置使某些位不变,某些位置“1”nOR CL,0FHn在不改变操作数的在不改变操作数的 情况下使情况下使OF=CF=0nOR AX,AX257“或”指令的应用例 OR AL,AL JPE GOON OR AL,80H GOON:.PF=1转移转移258“或”指令的应用将一个二进将一个二进制数制数9变为字变为字符符9如何实现如何实现?2593.“非”运算指令n格式:格式:nNOT OPRDNOT OPRDn操作:操作:n

    25、操作数按位取反再送回原地址操作数按位取反再送回原地址n注:注:n指令中的操作数不能是立即数指令中的操作数不能是立即数n指令的执行对标志位无影响指令的执行对标志位无影响n例:例:NOT BYTE PTRBXNOT BYTE PTRBX2604.“异或”运算指令n格式:格式:nXOR OPRD1,OPRD2n操作:操作:n两操作数相两操作数相“异或异或”,结果送目标地址,结果送目标地址n例:例:XOR BL,80H XOR AX,AX2615.“测试”指令n格式:格式:nTEST OPRD1,OPRD2n操作:操作:n执行执行“与与”运算,但运算的结果不送回目运算,但运算的结果不送回目标地址。标地

    26、址。n应用:应用:n常用于测试某些位的状态常用于测试某些位的状态262例:n从地址为从地址为3F8H的的 端口中读入一个字节数,当端口中读入一个字节数,当该数的该数的 bit1,bit3,bit5位同时为位同时为1时时,可,可从从38FH端口将端口将DATA为首地址的一个字输出,为首地址的一个字输出,否则就不能进行数否则就不能进行数 据传送。据传送。编写相应的编写相应的 程序段。程序段。263源程序代码:LEA SI,DATA MOV DX,3F8HWATT:IN AL,DX MOV DX,38FH MOV AX,SI OUT DX,AXAND AL,2AHCMP AL,2AHJNZ WATT

    27、TEST AL,02HJZ WATT ;ZF=1转移转移TEST AL,08HJZ WATTTEST AL,20HJZ WATTAND AL,2AHXOR AL,2AHJNZ WATT264二、移位指令 非循环移位指令非循环移位指令 循环移位指令循环移位指令注:注:n 移动一位时由指令直接给出;移动一位时由指令直接给出;n 移动两位及以上,则移位次数由移动两位及以上,则移位次数由CL指定。指定。2651.非循环移位指令n逻辑左移逻辑左移n算术左移算术左移n逻辑右移逻辑右移n算术右移算术右移266算术左移和逻辑左移n算术左移指算术左移指 令:令:SAL OPRD,1 SAL OPRD,CLn逻辑

    28、左移指逻辑左移指 令:令:SHL OPRD,1 SHL OPRD,CL有符号数有符号数无符号数无符号数267逻辑右移n格式:格式:SHR OPRD,1 SHR OPRD,CL0CF无符号数无符号数的右移的右移268逻辑右移例:nMOV AL,68HnMOV CL,2nSHR AL,CL0CF0 1 1 0 1 0 AL0 0 0 0 0 1 1 0 1 0 0ALCF0 00 0 0 1 1 0 1 0 ALCF0 0移动移动1次次移动移动2次次269算术右移n格式:格式:SAR OPRD,1 SAR OPRD,CL有符号数有符号数的右移的右移CF270非循环移位指令的应用n左移可实现乘法运算

    29、左移可实现乘法运算n右移可实现除法运算右移可实现除法运算 2712.循环移位指令n不带进位位的循环移位不带进位位的循环移位n带进位位的循环移位带进位位的循环移位左移左移 ROL右移右移 ROR左移左移 RCL右移右移 RCR指令格式、对操作数的要求与非循环移位指令相同指令格式、对操作数的要求与非循环移位指令相同272不带进位位的循环移位CFCF273带进位位的循环移位CFCF274循环移位指令的应用n用于对某些位状态的测试;用于对某些位状态的测试;n高位部分和低位部分的交换;高位部分和低位部分的交换;n与非循环移位指令一起组成与非循环移位指令一起组成32位或更长字位或更长字长数的移位。长数的移

    30、位。P124例例3-34P124例例3-35275程序功能n将将10001000H H开始存放的开始存放的4 4个压缩个压缩BCDBCD码转换码转换为为ASCIIASCII码存放在码存放在30003000H H开始的单元中开始的单元中去。去。12H34H56H78H1000H3000H276程序例 MOV SI,1000H MOV DI,3000H MOV CX,4Next:MOV AL,SI MOV BL,AL AND AL,0FH OR AL,30H MOV DI,AL INC DI MOV AL,BLPUSH CXMOV CL,4277串操作指令278串操作指令说明n针对数据块或字符串的

    31、操作;针对数据块或字符串的操作;n可实现存储器到存储器的数据传送;可实现存储器到存储器的数据传送;n待操作的数据串称为源串,目标地址称为待操作的数据串称为源串,目标地址称为目标串。目标串。279串操作指令的特点n源串一般存放在数据段,偏移地址由源串一般存放在数据段,偏移地址由SI指定。允许段指定。允许段重设;重设;n目标串必须在附加段,偏移地址由目标串必须在附加段,偏移地址由DI指定;指定;n指令自动修改地址指针,修改方向由指令自动修改地址指针,修改方向由DF决定。决定。DF=0 DF=1n数据块长度值由数据块长度值由CX指定指定n可增加自动重复前缀以实现自动修改可增加自动重复前缀以实现自动修

    32、改CX内容。内容。增地址方向;增地址方向;减地址方向;减地址方向;280重复前缀n无条件重复无条件重复nREPn条件重复条件重复nREPE 相等重复相等重复nREPZ 为零重复为零重复nREPNE 不相等重复不相等重复nREPNZ 不为零重复不为零重复CX0 ZF=1CX0 ZF=0CX0 重复重复281串操作指令流程(以传送操作为例)取源串地址取源串地址取目标串地址取目标串地址设串长度设串长度传送一个字节或字传送一个字节或字修改地址指针修改地址指针修改串长度值修改串长度值传送完否?传送完否?NY设操作方向设操作方向282串操作指令n串传送串传送 MOVSn串比较串比较 CMPSn串扫描串扫描

    33、 SCASn串装入串装入 LODSn串送存串送存 STOS2831.串传送指令n格式:格式:MOVS OPRD1,OPRD2 MOVSB MOVSWn串传送指令常与无条件重复前缀连用串传送指令常与无条件重复前缀连用284串传送指令n对比用对比用MOV指令和指令和MOVS指令实现将指令实现将200个字节数据从内存的一个区域送到个字节数据从内存的一个区域送到另一个区域的程序段。另一个区域的程序段。285串传送指令例n用串传送指令实现用串传送指令实现200个字节数据的传送:个字节数据的传送:LEA SI,MEM1 LEA DI,MEM2 MOV CX,200 CLD REP MOVSB HLT286

    34、2.串比较指令n格式:格式:CMPS OPRD1,OPRD2 CMPSB CMPSWn串比较指令常与条件重复前缀连用,指令的执串比较指令常与条件重复前缀连用,指令的执 行不改变操作数,仅影响标志位。行不改变操作数,仅影响标志位。n前缀的操作对标志位不影响前缀的操作对标志位不影响287串比较指令例测试测试200个字节数据是否传送正确:个字节数据是否传送正确:LEA SI,MEM1LEA DI,MEM2MOV CX,200CLD REPE CMPSB TEST CX,00FFH JZ STOP DEC SI MOV AL,SI MOV BX,SISTOP:HLT 2883.串扫描指令n格式:格式:

    35、SCAS OPRD SCASB SCASWn执行与执行与CMPS指令相似的操作,只是这里的源指令相似的操作,只是这里的源 操作数是操作数是AX或或AL目目 标标操作数操作数289串扫描指令的应用n常用于在指定存储区域中寻找某个关键字。常用于在指定存储区域中寻找某个关键字。290串装入指令n格式:格式:LODS OPRD LODSB LODSWn操作:操作:n对字节:对字节:n对对 字:字:源操作数源操作数DS:SIDS:SIDS:SIDS:SIALALAXAX2914.串装入指令n用于将内存某个区域的数据串依次装入累加用于将内存某个区域的数据串依次装入累加 器,以便显示或输出到接口。器,以便显

    36、示或输出到接口。nLODS指令一般不加重复前缀。指令一般不加重复前缀。2925.串存储指令n格式:格式:STOS OPRD STOSB STOSWn操作:操作:n对字节:对字节:ALALn对对 字:字:AXAX目目 标标操作数操作数ES:DIES:DI293串存储指令的应用n常用于将内存某个区域置同样的值常用于将内存某个区域置同样的值n此时:此时:n将待送存的数据放入将待送存的数据放入AL(字节数)或(字节数)或AX(字数据(字数据););n确定操作方向(增地址确定操作方向(增地址/减地址)和区域大小(串减地址)和区域大小(串长度值);长度值);n使用串存储指令使用串存储指令+无条件重复前缀,

    37、实现数据传送无条件重复前缀,实现数据传送。294串存储指令例 内存某个区域清零n将内存某单元清零将内存某单元清零n设计思想:设计思想:区域首地址送区域首地址送ES:DI串长度送串长度送CX置方向标志置方向标志DF0送累加器送累加器AL执行串送存指令执行串送存指令295程序控制指令n转移指令转移指令n循环控制循环控制n过程调用过程调用n中断控制中断控制296程序的执行方向n程序控制类指令的本质是:程序控制类指令的本质是:n控制程序的执行方向控制程序的执行方向n决定程序执行方向的因素:决定程序执行方向的因素:nCS,IPn控制程序执行方向的方法:控制程序执行方向的方法:n修改修改CS 和和IP,则

    38、程序转向另一个代码段执行;,则程序转向另一个代码段执行;n仅修改仅修改IP,则程序将改变当前的执行顺序,转向本,则程序将改变当前的执行顺序,转向本代码段内其它某处执行。代码段内其它某处执行。297一、转移指令无条件无条件转移指令转移指令 无条件转移到目标地址,执行新的指令无条件转移到目标地址,执行新的指令有条件转移指令有条件转移指令 在具备一定条件的情况下转移到目标地址在具备一定条件的情况下转移到目标地址通过修改指令的通过修改指令的偏移地址偏移地址或或段地址及偏移地址段地址及偏移地址实现程序的转移实现程序的转移2981.无条件转移指令n格式:格式:JMP OPRD目标地址目标地址与与JMP在同

    39、在同一代码段一代码段与与JMP不在同不在同一代码段一代码段原则上可实现在整个内存空间的转移原则上可实现在整个内存空间的转移299无条件段内转移n转移的转移的目标地址目标地址在当前代码段内,段地址不在当前代码段内,段地址不 改改变。变。n即:即:目标地址目标地址是是16位偏移地址。位偏移地址。指令中直接给出指令中直接给出目标地址目标地址由指令中的寄存器或由指令中的寄存器或存储器操作数指出目存储器操作数指出目标地址标地址段内直接转移段内直接转移段内间接转移段内间接转移300段内直接转移n转移的目标地址由指令直接给出转移的目标地址由指令直接给出n格式:格式:nJMP Label近地址标号近地址标号3

    40、01段内直接转移示图JMPLabel代代码码段段位移量位移量下一条要执行指令的偏移地址下一条要执行指令的偏移地址=当前当前IP+位移量位移量JMP Label302段内间接转移n段内间接转移段内间接转移n转移的目标地址存放在某个转移的目标地址存放在某个16位寄存器或存储器位寄存器或存储器 的某两个单元中的某两个单元中n例:例:nJMP BXn若:若:BX=1200Hn则:转移的目标地址则:转移的目标地址=1200HJMP代代码码段段1200HMOV303段内间接转移例nJMP WORD PTRBX 设:设:BX=1200HJMP代代码码段段数数据据段段BX=1200XXHXXHIP指令码指令码

    41、304无条件段间转移n转移的转移的目标地址目标地址不在当前代码段内。不在当前代码段内。n目标地址目标地址为为32位,包括段地址和偏移地址。位,包括段地址和偏移地址。指令中直接给出指令中直接给出目标地址目标地址由指令中的由指令中的32位存储器位存储器操作数指出目标地址操作数指出目标地址段间直接转移段间直接转移段间间接转移段间间接转移305段间直接转移n段内直接转移段内直接转移n转移的目标地址由指令直接给出转移的目标地址由指令直接给出n格式:格式:nJMP FAR Label远地址标号远地址标号306段间直接转移示图JMPLabel代代码码段段1Label与与JMP之间的位移量之间的位移量代代码码

    42、段段2XXHXXHXXHXXHIPCS307段间间接转移n段内间接寻址段内间接寻址n转移的目标地址由指令中的转移的目标地址由指令中的32位操作数给出位操作数给出n 例:例:nJMP DWORD PTRBXXXHXXHXXHXXHBXIPCSJMP指令码指令码代代码码段段1代代码码段段2数数据据段段308无条件转移指令例(1)2000:0100 MOV AX,1200H(2)2000:0103 JMP NEXT (3)2000:0120 NEXT:MOV BX,1200H(4)JMP BX (5)2000:1200 309无条件转移指令例nMOV SI,1122HnMOV WORD PTRSI,

    43、0120HnADD SI,2nMOV WORD PTRSI,0122HJMP DWORD PTRSI-2JMP WORD PTRSIJMP1122H代代码码段段数数据据段段01H22H20H01HIPCSIP3102.条件转移指令n在满足一定条件下,程序转移到目标地在满足一定条件下,程序转移到目标地址继续执行址继续执行n条件转移指令均为段内短转移,即转移条件转移指令均为段内短转移,即转移 范围为:范围为:-128-+127311条件转移指令的应用n几种条件转移指令的应用几种条件转移指令的应用nJC/JNCn判断判断CF的状态。常用于比大小的状态。常用于比大小nJZ/JNZn判断判断ZF的状态。

    44、常用于循环体的结束判断的状态。常用于循环体的结束判断nJO/JNOn判断判断OF的状态。常用于有符号数溢出的判断的状态。常用于有符号数溢出的判断nJP/JPEn判断判断PF的状态。用于判断运算结果低的状态。用于判断运算结果低8位中位中1的个数是否为偶数的个数是否为偶数nJA/JAE/JB/JBEn判断判断CF或或CF+ZF的状态。常用于无符号数的大小比较的状态。常用于无符号数的大小比较312转移指令例n统计内存数据段中以统计内存数据段中以TABLE为首地址的为首地址的100个个8位符号数中正数、负数和零元数位符号数中正数、负数和零元数的个数。的个数。313转移指令例(流程图)将存放各元素个将存

    45、放各元素个数的单元清零数的单元清零取首地址取首地址设串长度设串长度取一个字节数取一个字节数正数个数加正数个数加1零元素加零元素加1为负?为负?为零?为零?负数个数加负数个数加1NYNYp133314二、循环控制指令n循环范围:循环范围:n以当前以当前IP为中心的为中心的-128+127范围内循环。范围内循环。n循环次数由循环次数由CX寄存器指定。寄存器指定。n循环指令:循环指令:LOOP *LOOPZ *LOOPNZ无条件循环指令无条件循环指令条件循环指令条件循环指令315无条件循环指令n格式:格式:LOOP LABELn循环条件:循环条件:CX 0n操作:操作:DEC CX JNZ 符号地址

    46、符号地址P133例例3-44316三、过程调用和返回n用于调用一个子过程;用于调用一个子过程;n子过程由程序员预先设计子过程由程序员预先设计 并装入内存并装入内存 n子过程执行结束后要返回子过程执行结束后要返回 原调用处原调用处调用程序调用程序断断点点入入口口地地址址子程序子程序317调用指令的执行过程n保护断点;保护断点;n将调用指令的下一条指令的地址(断点)压入堆栈将调用指令的下一条指令的地址(断点)压入堆栈n获取子过程的入口地址;获取子过程的入口地址;n子过程第子过程第1条指令的偏移地址条指令的偏移地址n执行子过程,含相应参数的保存及恢复;执行子过程,含相应参数的保存及恢复;n恢复断点,

    47、返回原程序。恢复断点,返回原程序。n将断点偏移地址由堆栈弹出将断点偏移地址由堆栈弹出318过程调用段内调用段内调用段间调用段间调用段内直接调用段内直接调用段内间接调用段内间接调用段间直接调用段间直接调用段间间接调用段间间接调用3191.段内调用n被调用程序与调用程序在同一代码段被调用程序与调用程序在同一代码段n调用前只需保护断点的偏移地址调用前只需保护断点的偏移地址n格式:格式:CALL NEAR PROCn执行过程:执行过程:近过程名近过程名代代码码段段1调用程序调用程序被调用程序被调用程序代代码码段段1n 将断点的偏移地址压入堆栈将断点的偏移地址压入堆栈n 根据过程名找子程序入口根据过程名

    48、找子程序入口320段内调用例(1)CALL TIMRE(2)CALL WORD PTRSI直接调用直接调用间接调用间接调用44H33HCALL代代码码段段数数据据段段设:设:SI=1200H CS=6000H1200H执行第(执行第(2)条指令后:)条指令后:6000HCS=3344HIP=3212.段间调用n子过程与原调用程序不在同一代码段子过程与原调用程序不在同一代码段n断点保护时的压栈顺序:断点保护时的压栈顺序:n先将断点的先将断点的CS压栈,再压入压栈,再压入IP。调用前需保护断点的段基地址和偏移地址调用前需保护断点的段基地址和偏移地址322段间调用例n格式:格式:CALL FAR P

    49、ROCn格式例:格式例:nCALL FAR TIMREnCALL DWORD PTRSIXXHXXHCALL代代码码段段数数据据段段SIXXHXXHCSIP3233.返回指令n功能:功能:n从堆栈中弹出断点地址,返回原程序从堆栈中弹出断点地址,返回原程序n格式:格式:RETRETnRETRET指令一般位于子程序的最后。指令一般位于子程序的最后。324四、中断指令n中断中断n中断源中断源n中断的类型中断的类型n中断指令中断指令n引起引起CPU产生一次中断的指令产生一次中断的指令325中断与过程调用:n中断是随机事件或异常事件引起,调用则是事中断是随机事件或异常事件引起,调用则是事 先已在程序中安

    50、排好先已在程序中安排好;n响应中断请求不仅要保护断点地址,还要保护响应中断请求不仅要保护断点地址,还要保护 FLAGS内容;内容;n调用指令在指令中直接给出子程序入口地址,调用指令在指令中直接给出子程序入口地址,中断指令只给出中断向量码,入口地址则在向中断指令只给出中断向量码,入口地址则在向 量码指向的内存单元中。量码指向的内存单元中。3261.中断指令n格式:格式:INT nn说明:说明:n4中断类型码中断类型码n=0 255n 4 XXHXXHXXHXXH入口的段地址入口的段地址入口的偏移地址入口的偏移地址存放中断服务子程序入口存放中断服务子程序入口地址的单元的偏移地址地址的单元的偏移地址

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:微机原理与接口技术课件全套.ppt
    链接地址:https://www.163wenku.com/p-4131012.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库