微机原理与接口技术清华大学课件全套

上传人:人*** 文档编号:567296256 上传时间:2024-07-19 格式:PPT 页数:681 大小:13.18MB
返回 下载 相关 举报
微机原理与接口技术清华大学课件全套_第1页
第1页 / 共681页
微机原理与接口技术清华大学课件全套_第2页
第2页 / 共681页
微机原理与接口技术清华大学课件全套_第3页
第3页 / 共681页
微机原理与接口技术清华大学课件全套_第4页
第4页 / 共681页
微机原理与接口技术清华大学课件全套_第5页
第5页 / 共681页
点击查看更多>>
资源描述

《微机原理与接口技术清华大学课件全套》由会员分享,可在线阅读,更多相关《微机原理与接口技术清华大学课件全套(681页珍藏版)》请在金锄头文库上搜索。

1、1微机原理与接口技术微机原理与接口技术大家好大家好!2课程目标n掌握:掌握:n微型微型计算机的基本工作原理算机的基本工作原理n汇编语言程序言程序设计方法方法n微型微型计算机接口技算机接口技术n建立微型建立微型计算机系算机系统的整体概念,形成微机系的整体概念,形成微机系统软硬件开硬件开发的初步能力的初步能力3教材及实验指导书n教材:教材:n微机原理与接口技微机原理与接口技术(第(第3版)版). 冯博琴,吴宁博琴,吴宁主主编. 清清华大学出版社大学出版社n实验指指导书n微机原理与接口技微机原理与接口技术实验指指导书(讲义) 陈文革,吴宁,夏秦文革,吴宁,夏秦编. 西安交通大学西安交通大学n微机原理

2、与接口技微机原理与接口技术题解及解及实验指指导(第(第3版)版). 吴宁,吴宁,陈文革文革编. 清清华大学出版社大学出版社4第1章 微型计算机基础概论n主要内容主要内容:n微机系微机系统的的组成成n计算机中的算机中的编码、数制及其、数制及其转换n无符号二无符号二进制数的运算制数的运算n算算术运算和运算和逻辑运算运算n运算中的溢出运算中的溢出n机器数的表示及运算机器数的表示及运算n基本基本逻辑门及及译码器器5一、微型计算机系统n微型机的工作原理微型机的工作原理n微机系统的基本组成微机系统的基本组成61. 计算机的工作原理冯 诺依曼依曼计算机的工作原理算机的工作原理 存存储程序工作原理程序工作原理

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

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

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

6、数据流数据流驱动的的计算机算机结构构n当指令具有所需数据、且当指令具有所需数据、且输出端没有数据出端没有数据时就可就可执行。行。12Dataflow Image Processing System132. 系统组成 主机主机 硬件系硬件系统 外外设 微机系微机系统 系系统软件件 软件系件系统 应用用软件件CPU存储器存储器输入输入/输出接口输出接口总线总线14微处理器n微微处理器理器简称称CPU,是是计算机的核心。算机的核心。n主要包括:主要包括: 运算器运算器 控制器控制器 寄存器寄存器组15存储器n定定义:n用于存放用于存放计算机工作算机工作过程中需要操作的数据程中需要操作的数据和程序。和

7、程序。16有关内存储器的几个概念n内存内存单元的地址和内容元的地址和内容n内存容量内存容量n内存的操作内存的操作n内存的分内存的分类17内存单元的地址和内容n内存按内存按单元元组织n每每单元都元都对应一个地址,以方便一个地址,以方便对单元的元的寻址址1011011038F04H内存地址内存地址单元内容单元内容18内存容量n内存容量:内存容量:n所含存所含存储单元的个数,以字元的个数,以字节为单位位n内存容量的大小依内存容量的大小依CPUCPU的的寻址能力而定址能力而定n实地址模式下地址模式下为CPUCPU地址信号地址信号线的位数的位数19内存操作n读:n将内存将内存单元的内容取入元的内容取入C

8、PUCPU,原原单元内容不改元内容不改变;n写:写:nCPUCPU将信息放入内存将信息放入内存单元,元,单元中原来的内容被覆盖。元中原来的内容被覆盖。20内存储器的分类随机存取存随机存取存储器(器(RAMRAM)只只读存存储器(器(ROMROM)按工作方按工作方式可分为式可分为21输入/输出接口n接口是接口是CPUCPU与外部与外部设备间的的桥梁梁CPUI/OI/O接口接口外外设设22接口的分类串行接口串行接口并行接口并行接口数字接口数字接口模拟接口模拟接口输入接口输入接口输出接口输出接口23接口的功能n数据数据缓冲寄存;冲寄存;n信号信号电平或平或类型的型的转换;n实现主机与外主机与外设间的

9、运行匹配。的运行匹配。24总线n基本概念基本概念n分分类n工作原理工作原理n常用系常用系统总线标准及其主要技准及其主要技术指指标 (具体内容(具体内容见后后续课程)程)25软件系统n软件:件:n为运行、管理和运行、管理和维护计算机系算机系统或或为实现某一功能某一功能而而编写的各种程序的写的各种程序的总和及其相关和及其相关资料。料。系统软件系统软件应用软件应用软件操作系统操作系统编译系统编译系统网络系统网络系统工具软件工具软件软件软件26二、计算机中的数制和编码n数制和编码的表示数制和编码的表示n各种计数制之间的相互转换各种计数制之间的相互转换271. 常用计数法 十十进制(制(D D) 二二进

10、制(制(B B) 十六十六进制(制(H H)28例:n234.98D或(或(234.98)Dn1101.11B或(或(1101.11)BnABCD . BFH或(或(ABCD . BF) H292. 各种进制数间的转换非十非十进制数到十制数到十进制数的制数的转换十十进制到非十制到非十进制数的制数的转换二二进制与十六制与十六进制数之制数之间的的转换 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

11、=80+11+0.5 =91.531十进制到非十进制数的转换n到二到二进制的制的转换: 对整数:除整数:除2取余;取余; 对小数:乘小数:乘2取整。取整。n到十六到十六进制的制的转换: 对整数:除整数:除16取余;取余; 对小数:乘小数:乘16取整。取整。32二进制与十六进制间的转换n用用4位二位二进制数表示制数表示1位十六位十六进制数制数n例:例:n25.5 = 11001.1B = 19.8H n11001010.0110101B =CA.6AH333. 计算机中的编码nBCD码n用二用二进制制编码表示的十表示的十进制数制数nASCII码n西文字符西文字符编码34BCD码码n压缩BCD码n

12、用用4位二位二进制制码表示一位十表示一位十进制数制数n每每4位之位之间有一个空格有一个空格n扩展展BCD码n用用8位二位二进制制码表示一位十表示一位十进制数,每制数,每4位之位之间有一有一个空格。个空格。35BCD码与二进制数之间的转换n先先转换为十十进 制数,再制数,再转换二二进 制数;反之同制数;反之同样。n例例:n(0001 0001 .0010 01010001 0001 .0010 0101)BCDBCD =11 .25 =11 .25 = =(1011 .011011 .01) B B36ASCII码n西文西文 字符的字符的编码,一般用,一般用7位二位二进 制制码表示。表示。nD

13、D7 7位位为校校验位,默位,默认情况下情况下为0。n要求:要求:n理解校理解校验位的作用位的作用n熟悉熟悉0-F的的ASCII码37ASCII码的奇偶校验n奇校奇校验n加上校加上校验位后位后编码中中“1”的个数的个数为奇数。奇数。n例:例:A的的ASCII码是是41H(1000001B)n以奇校以奇校验传送送则为 C1H(11000001B)n偶校偶校验n加上校加上校验位后位后 编码中中“1”的个数的个数为偶数。偶数。n上例若以偶校上例若以偶校验传送,送,则为 41H。38三、无符号二进制数的运算算术运算算术运算逻辑运算逻辑运算无符号数无符号数有符号数有符号数二进二进 制数的运算制数的运算3

14、9主要内容n无符号二无符号二进 制数的算制数的算术运算运算n无符号数的表达范无符号数的表达范围n运算中的溢出运算中的溢出问题n无符号数的无符号数的逻辑运算运算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例: 最高位向前有最高位向前有进位,位,产生溢出生溢出443. 逻辑运算n与、或、非、异或与、或、非、异或n掌握:掌握:n与、或、非与、或、非门逻辑符号和符号和逻辑关系(真关系(真值表);表);n与非与非门、或非、或非门的的应用。用。45“与”、“或”运算n“与与”运算:运算:n任何数和任何数和“0”相相“与与”,结果果为0。n“或或”运算:运算:n任何数和任何数和“1”相相“或或”,结果果为1。&1146“非”、“异或”运算n“非

16、非”运算运算n按位求反按位求反n“异或异或”运算运算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 011

17、0100 符号位符号位 真值真值521. 符号数的表示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;n不能不能单独使用,要独使用,要紧跟在相跟在相应

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

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

23、用例开开 始始取待输出数的取待输出数的偏移地址偏移地址读入状态字读入状态字测试测试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操作:操作: n两操作数相两操作数相“或或”,结果送目果送目标地址地址256“或”指令的应用n实现两操作数两操作数 相相

24、“或或”的的 运算运算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操作数按位取反再送回原地址操作数按位取反再送回原地址n注:注:n指令中的操作数不能是立即数指令中的操作数不能是立即数n指令

25、的指令的执行行对标志位无影响志位无影响n例:例:NOT BYTE PTRBXNOT BYTE PTRBX2604.“异或”运算指令n格式:格式: nXOR OPRD1,OPRD2n操作:操作:n两操作数相两操作数相“异或异或”,结果送目果送目标地址地址n例:例: XOR BL,80H XOR AX,AX2615.“测试”指令n格式:格式: nTEST OPRD1,OPRD2n操作:操作: n执行行“与与”运算,但运算的运算,但运算的结果不送回目果不送回目标地址。地址。n应用:用:n常用于常用于测试某些位的状某些位的状态262例:n从地址从地址为3F8H的的 端口中端口中读入一个字入一个字节数,

26、数,当当该数的数的 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 WATTTEST AL,02HJZ WATT ;ZF=1转移转移TEST AL,08HJZ WATTTEST AL,20HJZ WATTAND AL,2AHXOR AL,

27、2AHJNZ WATT264二、移位指令 非循非循环移位指令移位指令 循循环移位指令移位指令注:注:n 移动一位时由指令直接给出;移动一位时由指令直接给出;n 移动两位及以上,则移位次数由移动两位及以上,则移位次数由CL指定。指定。2651. 非循环移位指令n逻辑左移左移n算算术左移左移n逻辑右移右移n算算术右移右移266算术左移和逻辑左移n算算术左移指左移指 令:令: SAL OPRD,1 SAL OPRD,CLn逻辑左移指左移指 令:令: SHL OPRD,1 SHL OPRD,CL有符号数有符号数无符号数无符号数267逻辑右移n格式:格式: SHR OPRD,1 SHR OPRD,CL0

28、CF无符号数无符号数的右移的右移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左移可左移可实现乘法运算乘法运算n右移可右移可实现除法运算除法运算 教材教材教材教材p121p121例例例例2712. 循环移位指令n不不带进位位的循位位的循环移位移位n带进位位的循位位的循环

29、移位移位左移左移 ROL右移右移 ROR左移左移 RCL右移右移 RCR指令格式、对操作数的要求与非循环移位指令相同指令格式、对操作数的要求与非循环移位指令相同272不带进位位的循环移位CFCF273带进位位的循环移位CFCF274循环移位指令的应用n用于用于对某些位状某些位状态的的测试;n高位部分和低位部分的交高位部分和低位部分的交换;n与非循与非循环移位指令一起移位指令一起组成成32位或更位或更长字字长数的移位。数的移位。P124例例3-34P124例例3-35275程序功能n将将10001000H H开开始始存存放放的的4 4个个压缩BCDBCD码转换为 ASCIIASCII码 存存 放

30、放 在在30003000H H开开始始的的单元元中中去。去。 12H34H56H78H 1000H3000H276程序例 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,4SHR AL,CLSHR AL,CLOR AL,30HOR AL,30HMOV DI,ALMOV DI,ALINC DIINC DIINC SIINC SIPOP CXPOP CXDEC CXDEC CXJNZ NextJNZ Next

31、HLTHLT277串操作指令278串操作指令说明n针对数据数据块或字符串的操作;或字符串的操作;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 HLT2862. 串比

34、较指令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格式:格式: SCAS OPRD SCASB

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

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

37、零n将内存某将内存某单元清零元清零n设计思想:思想: 区域首地址送区域首地址送ES:DI串长度送串长度送CX置方向标志置方向标志DF0送累加器送累加器AL执行串送存指令执行串送存指令295程序控制指令n转移指令转移指令n循环控制循环控制n过程调用过程调用n中断控制中断控制296程序的执行方向n程序控制程序控制类指令的本指令的本质是:是:n控制程序的控制程序的执行方向行方向n决定程序决定程序执行方向的因素:行方向的因素:nCS,IPn控制程序控制程序执行方向的方法:行方向的方法:n修改修改CS 和和IP ,则程序程序转向另一个代向另一个代码段段执行;行;n仅修改修改IP,则程序将改程序将改变当前

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

39、条件段内转移n转移的移的目目标地址地址在当前代在当前代码段内,段地址不段内,段地址不 改改变。n即:即:目目标地址地址是是16位偏移地址。位偏移地址。指令中直接给出指令中直接给出目标地址目标地址由指令中的寄存器或由指令中的寄存器或存储器操作数指出目存储器操作数指出目标地址标地址段内直接转移段内直接转移段内间接转移段内间接转移300段内直接转移n转移的目移的目标地址由指令直接地址由指令直接给出出n格式:格式:nJMP Label近地址标号近地址标号301段内直接转移示图JMPLabel 代代码码段段位移量位移量下一条要执行指令的偏移地址下一条要执行指令的偏移地址=当前当前IP+位移量位移量JMP

40、 Label302段内间接转移n段内段内间接接转移移n转移的目移的目标地址存放在某个地址存放在某个16位寄存器或存位寄存器或存储器器 的某两个的某两个单元中元中n例:例:nJMP BXn若:若:BX=1200Hn则:转移的目移的目标地址地址=1200HJMP 代代码码段段1200HMOV303段内间接转移例nJMP WORD PTRBX 设:BX=1200HJMP 代代码码段段数数据据段段BX=1200 XXHXXHIP指令码指令码304无条件段间转移n转移的移的目目标地址地址不在当前代不在当前代码段内。段内。n目目标地址地址为32位,包括段地址和偏移地址。位,包括段地址和偏移地址。指令中直接

41、给出指令中直接给出目标地址目标地址由指令中的由指令中的32位存储器位存储器操作数指出目标地址操作数指出目标地址段间直接转移段间直接转移段间间接转移段间间接转移305段间直接转移n段内直接段内直接转移移n转移的目移的目标地址由指令直接地址由指令直接给出出n格式:格式:nJMP FAR Label远地址标号远地址标号306段间直接转移示图JMPLabel 代代码码段段1Label与与JMP之间的位移量之间的位移量代代码码段段2XXHXXHXXHXXHIPCS307段间间接转移n段内段内间接接寻址址n转移的目移的目标地址由指令中的地址由指令中的32位操作数位操作数给出出n 例:例:nJMP DWOR

42、D 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,0120HnADD SI,2nMOV WORD PTRSI,0122HJMP DWORD PTRSI-2JMP WORD PTRSIJMP1122H 代代码码段段数数据据段段

43、01H22H20H01HIPCSIP3102. 条件转移指令n在在满足一定条件下,程序足一定条件下,程序转移到目移到目标地址地址继续执行行n条件条件转移指令均移指令均为段内短段内短转移,即移,即转移移 范范围为: -128-+127311条件转移指令的应用n几种条件几种条件转移指令的移指令的应用用nJC/JNCn判断判断CF的状的状态。常用于比大小。常用于比大小nJZ/JNZn判断判断ZF的状的状态。常用于循。常用于循环体的体的结束判断束判断nJO/JNOn判断判断OF的状的状态。常用于有符号数溢出的判断。常用于有符号数溢出的判断nJP/JPEn判断判断PF的状的状态。用于判断运算。用于判断运

44、算结果低果低8位中位中1的个数是否的个数是否为偶数偶数nJA/JAE/JB/JBEn判断判断CF或或CF+ZF的状的状态。常用于无符号数的大小比。常用于无符号数的大小比较312转移指令例n统计内存数据段中以内存数据段中以TABLE为首地址的首地址的100个个8位符号数中正数、位符号数中正数、负数和零元数数和零元数的个数。的个数。313转移指令例(流程图)将存放各元素个将存放各元素个数的单元清零数的单元清零取首地址取首地址设串长度设串长度取一个字节数取一个字节数正数个数加正数个数加1零元素加零元素加1为负?为负?为零?为零?负数个数加负数个数加1NYNYp133314二、循环控制指令n循循环范范

45、围:n以当前以当前IP为中心的中心的-128+127范范围内循内循环。n循循环次数由次数由CX寄存器指定。寄存器指定。n循循环指令:指令:LOOP *LOOPZ *LOOPNZ无条件循环指令无条件循环指令条件循环指令条件循环指令315无条件循环指令n格式:格式: LOOP LABELn循循环条件:条件: CX 0n操作:操作: DEC CX JNZ 符号地址符号地址P133例例3-44316三、过程调用和返回n用于用于调用一个子用一个子过程;程;n子子过程由程序程由程序员预先先设计 并装入内存并装入内存 n子子过程程执行行结束后要返回束后要返回 原原调用用处调用程序调用程序断断点点入入口口地地

46、址址子程序子程序317调用指令的执行过程n保保护断点;断点;n将将调用指令的下一条指令的地址(断点)用指令的下一条指令的地址(断点)压入堆入堆栈n获取子取子过程的入口地址;程的入口地址;n子子过程第程第1条指令的偏移地址条指令的偏移地址n执行子行子过程,含相程,含相应参数的保存及恢复;参数的保存及恢复;n恢复断点,返回原程序。恢复断点,返回原程序。n将断点偏移地址由堆将断点偏移地址由堆栈弹出出318过程调用段内段内调用用段段间调用用段内直接调用段内直接调用段内间接调用段内间接调用段间直接调用段间直接调用段间间接调用段间间接调用3191. 段内调用n被被调用程序与用程序与调用程序在同一代用程序在

47、同一代码段段n调用前只需保用前只需保护断点的偏移地址断点的偏移地址n格式:格式: CALL NEAR PROCn执行行过程:程:近过程名近过程名代代码码段段1调用程序调用程序被调用程序被调用程序代代码码段段1n 将断点的偏移地址压入堆栈将断点的偏移地址压入堆栈n 根据过程名找子程序入口根据过程名找子程序入口320段内调用例(1)CALL TIMRE(2)CALL WORD PTRSI直接调用直接调用间接调用间接调用44H33HCALL代代码码段段数数据据段段 设:设:SI=1200H CS=6000H1200H执行第(执行第(2)条指令后:)条指令后:6000HCS =3344HIP =321

48、2. 段间调用n子子过程与原程与原调用程序不在同一代用程序不在同一代码段段n断点保断点保护时的的压栈顺序:序:n先将断点的先将断点的CS压栈,再,再压入入IP。调用前需保护断点的段基地址和偏移地址调用前需保护断点的段基地址和偏移地址322段间调用例n格式:格式: CALL FAR PROCn格式例:格式例:nCALL FAR TIMREnCALL DWORD PTRSIXXHXXHCALL代代码码段段数数据据段段 SIXXHXXHCSIP3233. 返回指令n功能:功能:n从堆从堆栈中中弹出断点地址,返回原程序出断点地址,返回原程序n格式:格式: RETRETnRETRET指令一般位于子程序的

49、最后。指令一般位于子程序的最后。324四、中断指令n中断中断n中断源中断源n中断的中断的类型型n中断指令中断指令n引起引起CPU产生一次中断的指令生一次中断的指令325中断与过程调用:n中断是随机事件或异常事件引起,中断是随机事件或异常事件引起,调用用则是事是事 先已在程序中安排好先已在程序中安排好 ; n响响应中断中断请求不求不仅要保要保护断点地址,断点地址,还要保要保护 FLAGS内容;内容;n调用指令在指令中直接用指令在指令中直接给出子程序入口地址,出子程序入口地址, 中断指令只中断指令只给出中断向量出中断向量码,入口地址,入口地址则在向在向 量量码指向的内存指向的内存单元中。元中。32

50、61. 中断指令n格式:格式: INT nn说明:明: n4中断类型码中断类型码n=0 255n 4 XXHXXHXXHXXH入口的段地址入口的段地址入口的偏移地址入口的偏移地址存放中断服务子程序入口存放中断服务子程序入口地址的单元的偏移地址地址的单元的偏移地址代代码码段段数数据据段段 该单元在数据段,段地址该单元在数据段,段地址=DS 327中断指令的执行过程n将将FLAGS压入堆入堆栈;n将将INT指令的下一条指令的指令的下一条指令的CS、IP压栈;n由由n4得到存放得到存放中断向量的地址;中断向量的地址;n将中断向量(中断服将中断向量(中断服务程序入口地址)送程序入口地址)送CS和和IP

51、寄存器;寄存器;n转入中断服入中断服务程序。程序。328中断指令的执行过程n4 22H11H00H67HIPCS68122HMOV代代码码段段数数据据段段 堆堆栈栈段段SPFLAGSHFLAGSLIPHCSLCSHIPL SPSPSP329中断指令例执行程序段:行程序段: CS IP 6200H:0110H INT 21H6200H:0112H MOV AX,BX 12H01H00H62HSP=1200FLAGSLFLAGSHSP=11FA执行执行INT指令后指令后堆堆栈栈段段330中断指令例n执行行INT 21H指令后指令后 IP=21H4 CS=(21H4)+20084H 23H11H00

52、H20HIP CS数数据据段段 代代码码段段XX21123H 中断服中断服务子程序子程序3312. 溢出中断指令n格式:格式: INTO n若若OF=1,OF=1,则启启动一个一个类型型为4 4的中断的中断过程程, ,给出出一个出一个出错标志志, ,如果如果OF=0,OF=0,不做任何操作。不做任何操作。nINTOINTO指令通常安排在有符号数加减运算指令之指令通常安排在有符号数加减运算指令之后。后。相当于相当于INT 43323. 中断返回指令n格式:格式: IRETn中断服中断服务程序的最后一条指令,程序的最后一条指令,负责恢复断点恢复断点恢复标志寄存器内容恢复标志寄存器内容333六、处理

53、器控制指令对标志位的操作志位的操作与外部与外部设备的同步的同步说明见说明见p139表表334结束语:掌握:掌握:n指令的格式及意指令的格式及意义;n指令指令对操作数的要求及操作数的要求及对标志位的影响;志位的影响;n指令的指令的应用。用。335第第4 4章章汇编语言程序设计336主要内容n汇编语言源程序的言源程序的结构构n汇编语言言语句格式句格式n伪指令指令n功能功能调用用n汇编语言程序言程序设计3374.1 汇编语言源程序了解:了解:n汇编语言源程序的言源程序的结构构n汇编语言言语句句类型及格式型及格式338一、汇编语言源程序结构3391. 汇编语言源程序与汇编程序n汇编语言源程序言源程序n

54、汇编程序程序用助记符编写用助记符编写汇编程序汇编程序汇编语言汇编语言源程序源程序机器语言机器语言目标程序目标程序源程序的编译程序源程序的编译程序3402. 汇编语言程序设计与执行过程n输入入汇编语言源程序(言源程序(EDIT)n汇编(MASM)n链接(接(LINK)n调试(TD)源文件源文件 . ASM目标文件目标文件 .OBJ可执行文件可执行文件.EXE最终程序最终程序341二、汇编语言语句类型及格式二、汇编语言语句类型及格式3421. 汇编语言语句类型指令性指令性语句句指示性指示性语句句CPU执行的语句,能执行的语句,能够生成目标代码够生成目标代码CPU不执行,而由汇编不执行,而由汇编程序

55、执行的语句,不生程序执行的语句,不生成目标代码成目标代码3432. 汇编语言语句格式 指令性指令性语句:句: 标号:号: 前前缀 助助记符符 操作数操作数,操作数操作数 ;注;注释指令的符号地址指令的符号地址标号后要有冒号标号后要有冒号操作码操作码注释前加分号注释前加分号344指示性语句格式名字名字 伪指令助指令助记符符 操作数操作数 ,操作数,操作数, ;注;注释变量的符号地址变量的符号地址其后不加冒号其后不加冒号指示性语句中至指示性语句中至少有一个操作数少有一个操作数3453. 标号、名字n标号后有冒号,在指令性号后有冒号,在指令性语句前;名字后不加句前;名字后不加冒号,在指示性冒号,在指

56、示性语句前。句前。n英文字母、数字及英文字母、数字及专用字符用字符组成成, ,最大最大长度不度不能超能超过3131个个, ,且不能由数字打且不能由数字打头, ,不能用保留字不能用保留字( (如寄存器名如寄存器名, ,指令助指令助记符符, ,伪指令指令) )。 3464. 操作数寄存器寄存器存存储器器单元元常量常量变量或量或标号号表达式表达式347常 量n数字常量数字常量n字符串常量字符串常量n例:例:A nMOV AL,An例:例:ABCD汇编时被译成对应的汇编时被译成对应的ASCII码码41414141H H H H,42424242H H H H,43H43H43H43H,44H44H44

57、H44H用单引号引起的字符或字符串用单引号引起的字符或字符串348变 量n代表内存中的数据区,程序中代表内存中的数据区,程序中视为存存储器器操作数操作数n变量的属性:量的属性: 变量所在段的段地址量所在段的段地址 变量量单元地址与段首地址之元地址与段首地址之 间的位移量。的位移量。 字字节型、字型和双字型型、字型和双字型段段 值值偏移量偏移量类类 型型349表达式算算术运算运算逻辑运算运算*关系运算关系运算取取值运算和属性运算运算和属性运算其它运算其它运算350算术运算和逻辑运算符n算算术运算符运算符n+,-,*,/,MODn逻辑运算符运算符nAND,OR,NOT,XORn例:例:nMOV A

58、L,8 AND 4nMOV AL,8+4-1351取值运算符取得其后变量或标号的偏移地址取得其后变量或标号的偏移地址取得其后变量或标号的段地址取得其后变量或标号的段地址TYPE 取取变量的类型变量的类型变量的类型变量的类型LENGTH 取所定义存储区的长度取所定义存储区的长度SIZE 取所定义存储区的字节数取所定义存储区的字节数n用于分析存储器操作数的属性用于分析存储器操作数的属性n获取变量的属性值获取变量的属性值OFFSETSEG352取值运算符例 MOV AX,SEG DATA MOV DS,AX MOV BX,OFFSET DATA LEA BX,DATA等价于等价于353取值运算符例n

59、若若BUFFER存存储区用如下区用如下伪指令定指令定义: BUFFER DW 200 DUP(0)BUFFER DW 200 DUP(0) 则: TYPETYPE BUFFER BUFFER 等于等于2 2 LENGTH BUFFERLENGTH BUFFER等于等于200200 SIZE BUFFERSIZE BUFFER等于等于400400354属性运算符n 用于指定其后存储器操作数的类型用于指定其后存储器操作数的类型n 运算符:运算符:PTRn 例:例: MOV BYTR PTRBX,12H355其它运算符n方括号:方括号: n段重段重设符符 段寄存器名:段寄存器名: 方括号中内容为操作

60、数的偏移地址方括号中内容为操作数的偏移地址用于修改默认的段基地址用于修改默认的段基地址3564.2 伪指令掌握:掌握:n伪指令的格式及指令的格式及实现的操作的操作n伪指令的指令的应用用357伪指令n由由汇编程序程序执行的行的“指令系指令系统”n作用:作用:n定定义变量;量;n分配存分配存储区区n定定义逻辑段;段;n指示程序开始和指示程序开始和结束;束;n定定义过程等。程等。358常用伪指令数据定数据定义伪指令指令符号定符号定义伪指令指令段定段定义伪指令指令结束束伪指令指令过程定程定义伪指令指令宏命令宏命令伪指令指令359一、数据定义伪指令n用于定用于定义数据区中数据区中变量的量的类型及大小型及

61、大小n格式:格式: 变量名量名 伪指令助指令助记符符 操作数,操作数, ;注注释符号地址符号地址定义变量类型定义变量类型定义变量值定义变量值及区域大小及区域大小3601. 数据定义伪指令助记符nDB 定定义的的变量量为字字节型型nDW 定定义的的变量量为字字类型(双字型(双字节)nDD 定定义的的变量量为双字型(双字型(4字字节)nDQ 定定义的的变量量为4字型(字型(8字字节)nDT 定定义的的变量量为10字字节型型361数据定义伪指令例nDATA1 DB 11H,22H,33H,44HnDATA2 DW 11H,22H,3344HnDATA3 DD 11H*2,22H,33445566H以

62、上变量在内存以上变量在内存中的存放形式中的存放形式362数据定义伪指令例_变量在内存中的分变量在内存中的分布布DATA111223344DATA2224411000033DATA32200220000XX66554433363数据定义伪指令的几点说明n伪指令的性指令的性质决定所定决定所定义变量的量的类型;型;n定定义字符串必字符串必须用用DB伪指令指令n例:例: DATA1 DB ABCD,66HAB CD41H42H43H44H66H3642. 重复操作符n作用:作用:n为一个数据区的各一个数据区的各单元元设置相同的初置相同的初值n目的:目的:n常用于声明一个数据区常用于声明一个数据区n格式

63、:格式: 变量名量名 伪指令助指令助记符符 n DUP(初初值,)n例:例: BW 20 DUP(0)M1 DB 10 DUP(0)3653. “?”的作用n表示随机表示随机值,用于,用于预留存留存储空空间nMEM1 DB 34H,A,?,? DW 20 DUP(?)(?)预留预留40个字节单元,每单元为随机值个字节单元,每单元为随机值随机数随机数占占1个字节单元个字节单元366数据定义伪指令例nM1 DB How are you?nM2 DW 3 DUP(11H),3344Hn DB 4 DUP(?)(?)nM3 DB 3 DUP(22H,11H,?),?)变量在内存中的分区变量在内存中的分

64、区367数据定义伪指令例M1How aM211H11H00H44H33H r e you?11H00H00H随机数随机数M311H22H11H22H11H22HXXXXXXXXXXXXXX368二、符号定义伪指令n格式:格式: 符号名符号名 EQUEQU 表达式表达式n操作:操作: 用符号名取代后用符号名取代后边的表达式,不可重新定的表达式,不可重新定义n例:例: CONSTANTCONSTANTEQUEQU100100 VAR EQU 30H+99HVAR EQU 30H+99HEQU说明的表达式不占用内存空间说明的表达式不占用内存空间369三、段定义伪指令n说明明逻辑段的起始和段的起始和结

65、束;束;n说明不同程序模明不同程序模块中同中同类逻辑段之段之间的的联系形系形 态370段定义伪指令格式段名段名 SEGMENT SEGMENT 定位定位类类型型 组组合合类类型型 类别类别 段名段名 ENDSENDS说明逻辑说明逻辑段的起点段的起点说明不同模块中同名说明不同模块中同名段的组和连接方式段的组和连接方式371定位类型nPARA: 段的起点从段的起点从节边界开始界开始 (16个字个字节为1节)nBYTE: 段的起点从存段的起点从存储器任何地址开始器任何地址开始nWORD:段的起点从偶地址开始段的起点从偶地址开始nPAGE: 段的起点从段的起点从页边界开始界开始 (256个字个字节为1

66、页)372组合类型n与其它模与其它模块中的同名段在中的同名段在满足定位足定位类型的前提型的前提 下具有的下具有的组合方式:合方式:nNONE: 不不组合合nPUBLIC: 依次依次连接(接(顺序由序由LINK程序确定)程序确定)nCOMMON: 覆盖覆盖连接接nSTACK: 堆堆栈段的依次段的依次连接接nAT 表达式:段定表达式:段定义在表达式在表达式值为段基的段基的节边界界nMEMORY: 相相应段在同名段的最高地址段在同名段的最高地址处。373类别n不同模不同模块连接接时将相同将相同类别的段放在的段放在连续的内存区域中的内存区域中374段定义伪指令例DATA SEGMENT MEM1 DB

67、 11H,22H MEM2 DB Hello! MEM3 DW 2 DUP(?)(?)DATA ENDS变变量量在在逻逻辑辑段段中中的的位位置置就就代代表表了了它它的的偏偏移移地址地址表表示示变变量量所所在在逻逻辑辑段段的的段段地地址址表表示示变变量量的的类类型型375四、设定段寄存器伪指令n说明所定明所定义逻辑段的性段的性质n格式:格式: ASSUME 段寄存器名段寄存器名:段名段名,段寄存器名,段寄存器名:段名,段名,376五、结束伪指令n表示源程序表示源程序结束束n格式:格式: END 标号号377汇编语言源程序结构数据段名数据段名 SEGMENT 数据段名数据段名 ENDS附加段名附加

68、段名 SEGMENT 附加段名附加段名 ENDS堆栈段名堆栈段名 SEGMENT 堆栈段名堆栈段名 ENDS代码段名代码段名 SEGMENT 代码段名代码段名 ENDS END 378一个完整源程序结构例DSEG SEGMENT DATA1 DB 1,2, 3 DUP(?)(?) DATA2 DW 1234HDSEG ENDSESEG SEGMENT DB 20 DUP(?)(?)ESEG ENDSSSEG SEGMENT STACK STACK DB 200 DUP(?)(?)SSEG ENDS379一个完整源程序结构例 CSEG SEGMENT ASSUME CS:CSEG,DS:DSEG

69、, ES:ESEG,SS:SSEG START:MOV AX,DSEG MOV DS,AX MOV AX,ESEG MOV ES,AX MOV AX,SSEG MOV SS,AX CSEG ENDS END START源程序源程序 代码代码段寄存器初始化段寄存器初始化将段地址送将段地址送相应的段寄存器相应的段寄存器380六、过程定义伪指令n用于定用于定义一个一个过程体程体n格式:格式: 过程名程名 PROC NEAR / FAR RET 过程名程名 ENDPP157例例过程入口的过程入口的符号地址符号地址过程定义及调用例n定定义延延时子程序子程序 nDELAY PROCn PUSH BXn P

70、USH CXn MOV BL,2nNEXT: MOV CX,4167nW10M: LOOP W10Mn DEC BLn JNZ NEXTn POP CXn POP BXn RETnDELAY ENDP381n调用延时子程序:调用延时子程序: nCALL DELAY 382七、宏命令伪指令n 源程序中由源程序中由汇编程序程序识别的具有独的具有独 立功能的一段程序代立功能的一段程序代码n格式:格式: 宏命令名宏命令名 MACRO ENDM宏体宏体宏宏383八、其它伪指令 段内程序代段内程序代码或或变量的起始偏移地址量的起始偏移地址n格式:格式: ORG 表达式表达式n例:例: ORG 2000H计

71、算值为计算值为非负常数非负常数ORG384其它伪指令nNAME-为目目标程序程序设定一个名字定一个名字n格式:格式: NAME 模模块名名nTITLE-为程序清程序清单指定打印指定打印标题n格式:格式: TITLE 标题名名3854.3 功能调用DOS 功能功能调用用 BIOS功能功能调用用386DOS 功能调用n包含多个子功能的功能包;包含多个子功能的功能包;n用用软中断指令中断指令调用,中断用,中断类型型码固定固定为21H;n各子功能采用功能号来区分。各子功能采用功能号来区分。387DOS 功能调用设备设备管理管理目目目目录录录录管理管理管理管理文件管理文件管理文件管理文件管理其它其它其它

72、其它388DOS 功能调用n调用格式:用格式: MOV AH,功能号功能号 INT 21H389一、单字符输入n调用方法:用方法: MOV AH,01 INT 21Hn输入的字符在入的字符在AL中中390单字符输入例GET_KEY:GET_KEY: MOVMOVAH,1AH,1 INTINT21H21H CMPCMPAL,AL,Y Y JZ JZ YESYES CMP CMPAL,AL,N N JZ JZ NONO JMP JMPGET_KEYGET_KEY YES: YES: NO: NO: 交互式应交互式应 答程序答程序391二、字符串输入n注意注意问题:n调用格式用格式n字符字符输入入缓

73、冲区的定冲区的定义3921. 调用格式 功能号功能号OAH 字符串在内存中的存放地址字符串在内存中的存放地址nINT 21Hn AHn DS:DX3932. 定义字符缓冲区n用用户自定自定义缓冲区格式:冲区格式:0DHN1N2整个缓冲区整个缓冲区最大可键入字符数最大可键入字符数实际键入字符数实际键入字符数存放键入的字符存放键入的字符存放字符个数:存放字符个数:255394输入字符串程序段n DAT1 DB 20,?,?,20 DUP(?)(?) n LEA DX,DAT1 MOV AH,0AH INT 21H在数据段在数据段中定义中定义395输入缓冲区14H ?20个字节个字节定义后的输入缓冲

74、定义后的输入缓冲区初始状态:区初始状态:396三、单字符显示输出 功能号功能号O2H 待待输出字符出字符nINT 21Hn AHn DL397单字符显示输出例nMOVAH,02nMOVDL,41HnINT21H执行结果:执行结果:屏幕显示屏幕显示A398四、字符串输出显示 功能号功能号O9H 待输出字符串的偏移地址待输出字符串的偏移地址nINT 21Hn AHn DS:DX399字符串输出显示n被被显示的字符串必示的字符串必须以以$ $结束束, ,且所且所显示示的的 内容不内容不应出出现非可非可见的的ASCIIASCII码400字符串输出显示例DATA SEGMENTMESS1 DB Inpu

75、t String:, 0DH,0AH,$DATA ENDSCODE SEGMENT MOV AH,09MOV DX,OFFSET MESS1INT21H 4014.4 汇编语言程序设计设计步步骤:n根据根据实际问题抽象出数学模型抽象出数学模型n确定算法确定算法n画程序流程画程序流程图 n分配内存工作分配内存工作单元和寄存器元和寄存器n程序程序编码n调试402程序流程图符号起始:起始:功能:功能:判断:判断:子过程:子过程:403汇编语言程序结构n顺序序结构构n循循环结构构n先判定型先判定型n后判定型后判定型n分枝分枝结构构n单分枝分枝n多分枝多分枝n子程序子程序结构构404本章注意点n完整的完

76、整的汇编语言源程序言源程序结构构n定定义逻辑段,段,说明段的含明段的含义,初始化段寄存器,初始化段寄存器n伪指令指令n数据定数据定义方式方式n字符及字符串的字符及字符串的输入和入和显示示输出出n字符字符输入入缓冲区的定冲区的定义,输出字符串的定出字符串的定义n源程序的源程序的编写写n几种几种结构(构(顺序、循序、循环、分枝等)、分枝等)405第第5 5章章 存储器系统406主要内容:n存存储器系器系统的概念的概念n半半导体存体存储器的分器的分类及其特点及其特点n半半导体存体存储芯片的外部特性及其与系芯片的外部特性及其与系统的的连接接n存存储器接口器接口设计(存(存储器器扩展技展技术)n高速高速

77、缓存存4075.1 概 述主要内容:主要内容:n存存储器系器系统及其主要技及其主要技术指指标n半半导体存体存储器的分器的分类及特点及特点n两两类半半导体存体存储器的主要区器的主要区别408一、存储器系统4091. 存储器系统的一般概念n将两个或两个以上速度、容量和价格各不相同将两个或两个以上速度、容量和价格各不相同 的存的存储器用硬件、器用硬件、软件或件或软硬件相硬件相结合的方法合的方法 连接起来接起来n系系统的存的存储速度接近最快的存速度接近最快的存储器,容量接近器,容量接近 最大的存最大的存储器。器。构成存储系统。构成存储系统。4102. 两种存储系统n在一般在一般计算机中主要有两种存算机

78、中主要有两种存储系系统:Cache存储系统存储系统主存储器主存储器高速缓冲存储器高速缓冲存储器虚拟存储系统虚拟存储系统主存储器主存储器磁盘存储器磁盘存储器411Cache存储系统n对程序程序员是透明的是透明的n目目标:n提高存提高存储速度速度Cache主存储器主存储器412虚拟存储系统n对应用程序用程序员是透明的。是透明的。n目目标:n扩大存大存储容量容量主存储器主存储器磁盘存储器磁盘存储器4133. 主要性能指标n存存储储容量容量(S S)(字(字节、千字、千字节、兆字、兆字节等)等)n存取存取时间时间(T T)(与系(与系统命中率有关)命中率有关)n命中率(命中率(H H)nT=H*TT=

79、H*T1 1+ +(1-H1-H)* *T T2 2n单位容量价格(位容量价格(C C)n访问效率(效率(e e)4144. 微机中的存储器 通用寄存器组及通用寄存器组及 指令、数据缓冲栈指令、数据缓冲栈高速缓存高速缓存主存储器主存储器联机外存储器联机外存储器脱机外存储器脱机外存储器片内存储部件片内存储部件内存储部件内存储部件外存储部件外存储部件415二、半导体存储器4161. 半导体存储器n半半导体存体存储器由能器由能够表示二表示二进制数制数“0”和和“1”的、具有的、具有记忆功能的半功能的半导体器件体器件组成。成。n能存放一位二能存放一位二进制数的半制数的半导体器件称体器件称为一个存一个存

80、 储元。元。n若干存若干存储元构成一个存元构成一个存储单元。元。4172. 半导体存储器的分类n内存内存储器器随机存取存储器(随机存取存储器(RAM)只读存储器(只读存储器(ROM)418随机存取存储器(RAM)nRAM静态存储器(静态存储器(SRAM)动态存储器(动态存储器(DRAM)419只读存储器(ROM)n只只读存存储器器掩模掩模ROM一次性可写一次性可写ROMEPROMEEPROM4203. 主要技术指标n存存储容量容量n存存储单元个数元个数每每单元的二元的二进制数位数制数位数n存取存取时间n实现一次一次读/ /写所需要的写所需要的时间n存取周期存取周期n连续启启动两次独立的存两次独

81、立的存储器操作所需器操作所需间隔的最小隔的最小时间n可靠性可靠性n功耗功耗4215.2 随机存取存储器掌握:掌握:nSRAM与与DRAM的主要特点的主要特点n几种常用存几种常用存储器芯片及其与系器芯片及其与系统的的连接接n存存储器器扩展技展技术422一、静态存储器SRAM4231. SRAM的特点n存存储元由双元由双稳电路构成,存路构成,存储信息信息稳定。定。p1964242. 典型SRAM芯片掌握:掌握: n主要引脚功能主要引脚功能n工作工作时序序n与系与系统的的连接使用接使用425典型SRAM芯片SRAM6264:n容量:容量:8K X 8bn外部引外部引线图4266264芯片的主要引线n

82、地址地址线:A0-A12;n数据数据线:D0-D7;n输出允出允许信号:信号:OE;n写允写允许信号:信号:WE;n选片信号:片信号:CS1,CS2。4276264的工作过程n读操作操作n写操作写操作 工作时序工作时序4283. 8088总线信号8 80 08 88 8总总线线A19-A0A15-A0MEMR、MEMWIOR、IOW 存储器存储器输入输入/输出输出RD、WR4294. 6264芯片与系统的连接D0D7A0A12WEOECS1CS2A0A12MEMWMEMR译码译码电路电路高位地高位地址信号址信号D0D7SRAM 62648088总总线线+5V 4305. 存储器编址001100

83、001111000001011010低位地址(片内地低位地址(片内地址)址)高位地址(选片地高位地址(选片地址)址)431存储器地址片选地址片选地址片内地址片内地址高位地址高位地址低位地址低位地址内存地址内存地址4326264芯片的编址片首地片首地址址A19A12A0A19A12A00 0 0 0 0 0 0 0 0 0 0 0 0X X X X X X XX X X X X X X 1 1 1 1 1 1 1 1 1 1 1 1 1片尾地片尾地址址433存储器编址001100001111000001011010CS00译译码码器器1CS4346. 译码电路n将将输入的一入的一组高位地址信号通

84、高位地址信号通过变换,产 生一个有效的生一个有效的输出信号,用于出信号,用于选中某一个中某一个 存存储器芯片,从而确定了器芯片,从而确定了该存存储器芯片在器芯片在 内存中的地址范内存中的地址范围。n将将输入的一入的一组二二进制制编码变换为一个特定一个特定 的的输出信号。出信号。435译码方式n全地址全地址译码n部分地址部分地址译码436全地址译码n用全部的高位地址信号作用全部的高位地址信号作为译码信号,使信号,使 得存得存储器芯片的每一个器芯片的每一个单元都占据一个唯元都占据一个唯 一的内存地址。一的内存地址。437全地址译码例A19A18A17A16A15A14A13& 1CS11SRAM

85、6264CS2+5V011110004386264芯片全地址译码例片首地片首地址址A19A12A0A19A12A00 0 0 0 0 0 0 0 0 0 0 0 01 1 1 1 0 0 01 1 1 1 0 0 01 1 1 1 1 1 1 1 1 1 1 1 1片尾地片尾地址址该6264芯片的地址范芯片的地址范围 = F0000HF1FFFH439全地址译码例n若已知某若已知某SRAM 6264芯片在内存中的地址芯片在内存中的地址为: 3E000H3FFFFHn试画出将画出将该芯片芯片连接到系接到系统的的译码电路。路。440全地址译码例n设计步步骤:n写出地址范写出地址范围的二的二进制表示

86、;制表示;n确定各高位地址状确定各高位地址状态;n设计译码器。器。片首地片首地址址A19A12A0A19A12A00 0 0 0 0 0 0 0 0 0 0 0 00 0 1 1 1 1 10 0 1 1 1 1 11 1 1 1 1 1 1 1 1 1 1 1 1片尾地片尾地址址441全地址译码例A19A18A17A16A15A14A13& 1CS1高位地址:高位地址:0011111SRAM 6264CS2+5V00111110442部分地址译码n用部分高位地址信号(而不是全部)作用部分高位地址信号(而不是全部)作为译码 信号,使得被信号,使得被选中存中存储器芯片占有几器芯片占有几组不同不同

87、 的地址范的地址范围。443部分地址译码例两两组地址:地址: F0000H F1FFFH B0000H B1FFFHA19A17A16A15A14A13&16264CS1111000高位地址:高位地址: 1110001011000,1111000444应用举例n将将SRAM 6264芯片与系芯片与系统连接,使其地接,使其地址范址范围为:38000H39FFFH。n使用使用74LS138译码器构成器构成译码电路。路。445存储器芯片与系统连接例n由由题知地址范知地址范围: 0 0 1 1 1 0 0 0 0 0 0 1 1 1 0 0 1 1高位地址高位地址A19A12A0446应用举例D0D7

88、A0A12WEOECS1CS2A0A12MEMWMEMRD0D7A19G1G2AG2BCBA&A18A14A13A17A16A15VCCY0447二、动态随机存储器DRAM4481. DRAM的特点n存存储元主要由元主要由电容构成;容构成;n主要特点:主要特点:n需要需要定定时刷新刷新。4492. 典型DRAM芯片2164An2164A:64K1bitn采用行地址和列地址来确定一个采用行地址和列地址来确定一个单元;元;n行列地址分行列地址分时传送,送, 共用一共用一组地址信号地址信号线;n地址信号地址信号线的数量的数量仅 为同等容量同等容量SRAM芯芯 片的一半。片的一半。450主要引线n 行

89、地址行地址选通信号。用于通信号。用于锁存行地址;存行地址;n 列地址列地址选通信号。通信号。n地址地址总线上先送上行地址,后送上列地址,它上先送上行地址,后送上列地址,它们 分分别在在#RAS和和#CAS有效期有效期间被被锁存在存在锁存器中。存器中。nDIN: 数据数据输入入nDOUT:数据数据输出出WE=0WE=1n WE:写允许信写允许信号号RAS:CAS:数据写入数据写入数据读出数据读出451工作原理n数据数据读出出n数据写入数据写入n刷新刷新工作时序工作时序452刷新n将存放于每位中的信息将存放于每位中的信息读出再照原出再照原样写写 入原入原单元的元的过程程-刷新刷新刷新时序刷新时序4

90、533. 2164A在系统中的连接与系统连接图与系统连接图4542164A在系统中的连接nDRAM 2164A与系与系统连接的几点接的几点说明:明:n芯片上的每个芯片上的每个单元中只存放元中只存放1位二位二进制制码,每字,每字节数据分数据分别存存放在放在8片芯片中;片芯片中;n系系统的每一次的每一次访存操作需同存操作需同时访问8片片2164A芯片,芯片,该8片芯片芯片必片必须具有完全相同的地址;具有完全相同的地址;n芯片的地址芯片的地址选择是按行、列分是按行、列分时传送,由系送,由系统的低的低8位送出行位送出行地址,高地址,高8位送出列地址。位送出列地址。n结论:n每每8片片2164A构成一个

91、存构成一个存储体(体(单独一片独一片则无意无意义););n每个存每个存储体内的所有芯片具有相同的地址(片内地址),体内的所有芯片具有相同的地址(片内地址),应同同时被被选中,中,仅有数据信号由各片分有数据信号由各片分别引出。引出。三、存储器扩展技术(内存储器设计)(内存储器设计)4561. 存储器扩展n用多片存储芯片构成一个需要的内存空间;用多片存储芯片构成一个需要的内存空间;n各各存存储储器器芯芯片片在在整整个个内内存存中中占占据据不不同同的的地地址址范范围;围;n任一时刻仅有一片(或一组)被选中。任一时刻仅有一片(或一组)被选中。n存储器芯片的存储容量等于:存储器芯片的存储容量等于: 单元

92、数单元数每单元的位数每单元的位数字节数字节数字长字长扩展扩展单元单元扩展扩展字长字长4572. 存储器扩展方法n位位扩展展n字字扩展展n字位字位扩展展扩展字长扩展字长扩展单元数扩展单元数既扩展字长也扩展单元数既扩展字长也扩展单元数458位扩展n构成内存的存构成内存的存储器芯片的字器芯片的字长小于内存小于内存单元元 的字的字长时需需进行位行位扩展。展。n位位扩展:每展:每单元字元字长的的扩展。展。459位扩展例n用用8片片2164A芯片构成芯片构成64KB存存储器。器。LS158A0A7A8A152164A2164A2164ADBABD0D1D70000HFFFFH.460位扩展方法:n将每片的

93、地址将每片的地址线、控制、控制线并并联,数据,数据线分分 别引出。引出。n位位扩展特点:展特点:n存存储器的器的单元数不元数不变,位数增加。,位数增加。461字扩展n地址空地址空间的的扩展展n芯片每个芯片每个单元中的字元中的字长满足,但足,但单元数不元数不满足。足。n扩展原展原则:n每个芯片的地址每个芯片的地址线、数据、数据线、控制、控制线并并联。n片片选端分端分别引出,以使每个芯片有不同的地址范引出,以使每个芯片有不同的地址范围。462A0A10DBABD0D7A0A10R/WCS2K8D0D7A0A102K8D0D7D0D7A0A10CS译译码码器器Y0Y1高高位位地地址址R/W字扩展示意

94、图463字扩展例n用两片用两片64K8位的位的SRAM芯片构成容量芯片构成容量为128KB的存的存储器器n两芯片的地址范两芯片的地址范围分分别为:n20000H2FFFFHn30000H3FFFFH 464字扩展例G1G2AG2BCBAY2Y3&MEMRMEMWA19A18A17A1674LS138高位地址:高位地址:n 芯片芯片1: 0 0 1 0n 芯片芯片2: 0 0 1 1A19A18A17A16芯片芯片1芯片芯片2465字位扩展n设计过程:程:n根据内存容量及芯片容量确定所需存根据内存容量及芯片容量确定所需存储芯片数;芯片数;n进行位行位扩展以展以满足字足字长要求;要求;n进行字行字

95、扩展以展以满足容量要求。足容量要求。n若已有存若已有存储芯片的容量芯片的容量为L LK K,要构成容量要构成容量为M M N N的存的存储器,需要的芯片数器,需要的芯片数为: (M / L) (N / K)466字位扩展例n用用32Kb芯片构成芯片构成256KB的内存。的内存。4675.3 5.3 只读存储器(ROMROM)nEPROMnEEPROM(紫外线擦除)紫外线擦除)(电擦除)电擦除)468一、EPROM4691. 特点n可多次可多次编程写入;程写入;n掉掉电后内容不后内容不丢失;失;n内容的擦除需用紫外内容的擦除需用紫外线擦除器。擦除器。4702. EPROM 2764n8K8bit

96、芯片芯片n地址信号:地址信号:A0 A12n数据信号:数据信号:D0 D7n输出信号:出信号:OEn片片选信号:信号:CEn编程脉冲程脉冲输入:入:PGMn其引脚与其引脚与SRAM 6264完全兼容完全兼容.4712764的工作方式数据读出数据读出编程写入编程写入擦除擦除标准编程方式标准编程方式快速编程方式快速编程方式编程写入:编程写入:每出现一个编程负脉冲就写入一个字节数据每出现一个编程负脉冲就写入一个字节数据472二、二、EEPROM4731. 特点n可在可在线编程写入;程写入;n掉掉电后内容不后内容不丢失;失;n电可擦除。可擦除。4742. 典型EEPROM芯片98C64An8K8bit

97、芯片;芯片;n13根地址根地址线(A0 A12);n8位数据位数据线(D0 D7););n输出允出允许信号(信号(OE););n写允写允许信号(信号(WE););n选片信号(片信号(CE););n状状态输出端(出端(READY / BUSY)。4753. 工作方式n数据数据读出出n编程写入程写入n擦除擦除字节写入:每一次字节写入:每一次BUSY正脉冲写正脉冲写 入一个字节入一个字节自动页写入:每一次自动页写入:每一次BUSY正脉冲写正脉冲写 入一页(入一页(1 32字节)字节)字节擦除:一次擦除一个字节字节擦除:一次擦除一个字节片擦除:一次擦除整片片擦除:一次擦除整片4764. EEPROM的

98、应用n可通可通过程序程序实现对芯片的芯片的读写;写;n仅当当READY / BUSY=1时才能才能进行行“写写”操作操作n“写写”操作的方法:操作的方法:n根据参数定根据参数定时写入写入n通通过判断判断READY / BUSY端的状端的状态进行写入行写入n仅当当该端端为高高电平平时才可写入下一个字才可写入下一个字节。P215例例477四、闪速EEPROM特点:特点:n通通过向内部控制寄存器写入命令的方法向内部控制寄存器写入命令的方法来控制芯片的工作方式。来控制芯片的工作方式。478工作方式数据读出数据读出编程写入:编程写入:擦擦 除除读单元内容读单元内容读内部状态寄存器内容读内部状态寄存器内容

99、读芯片的厂家及器件标记读芯片的厂家及器件标记数据写入,写软件保护数据写入,写软件保护字节擦除,块擦除,片擦除字节擦除,块擦除,片擦除擦除挂起擦除挂起4795.45.4 高速缓存(Cache)Cache)了解:了解:nCache的基本概念;的基本概念;n基本工作原理;基本工作原理;n命中率;命中率;nCache的分的分级体系体系结构构480Cache的基本概念n设置置Cache的理由:的理由:nCPU与主存之与主存之间在在执行速度上存在行速度上存在较大差异;大差异;n高速存高速存储器芯片的价格器芯片的价格较高;高;n设置置Cache的条件:的条件:n程序的局部性原理程序的局部性原理n时间局部性:

100、局部性:n最近的访问项可能在不久的将来再次被访问最近的访问项可能在不久的将来再次被访问n空空间局部性局部性:n一个进程所访问的各项,其地址彼此很接近一个进程所访问的各项,其地址彼此很接近481Cache的工作原理CPUCache主主 存存DBDBDB命中命中存在存在不命中不命中482Cache的命中率n访问内存内存时,CPU首先首先访问Cache,找到,找到则 “命中命中”,否,否则为“不命中不命中”。n命中率影响系命中率影响系统的平均存取速度。的平均存取速度。Cache存存储器系器系统的平均存取速度的平均存取速度= Cache存取速度存取速度命中率命中率+RAM存取速度存取速度不命中率不命中

101、率nCache与内存的空与内存的空间比一般比一般为:1 128483Cache的读写操作读操作读操作写操作写操作贯穿读出式贯穿读出式旁路读出式旁路读出式写穿式写穿式回写式回写式484贯穿读出式CPUCache主主 存存n CPU CPU对主存的所有数据请求都首先送到对主存的所有数据请求都首先送到CacheCache, 在在CacheCache中查找。中查找。n 若若命中,切断命中,切断CPUCPU对主存的请求,并将数据送出;对主存的请求,并将数据送出;n 如果不命中,则将数据请求传给主存如果不命中,则将数据请求传给主存。485旁路读出式nCPU向向Cache和主存同和主存同时发时发出出数据数据

102、请求。求。n命中,命中,则则Cache将数据回送将数据回送给给CPU,并同并同时中断中断CPU对对主主 存的存的请请求;求;n若不命中,若不命中,则则Cache不做任何不做任何动动作,由作,由CPU直接直接访问访问主存主存CPUCache主主 存存486写穿式n从从CPU发出的写信号送出的写信号送Cache的同的同时也写入主存。也写入主存。CPUCache主主 存存487回写式(写更新)n数据一般只写到数据一般只写到Cache,当当Cache中的数据中的数据被再次更新被再次更新时,将原更新的数据写入主存相,将原更新的数据写入主存相应单元,并接受新的数据。元,并接受新的数据。CPUCache主主

103、 存存更新更新写入写入488Cache的分级体系结构n一一级Cache:容量一般容量一般为8KB-64KBn一一级Cache集成在集成在CPU片内。片内。L1 Cache分分为指令指令Cache和数据和数据Cache。使指令和数据的使指令和数据的访问互不影互不影响。响。指令指令Cache用于存放用于存放预取的指令。数据取的指令。数据Cache中存放指令的操作数。中存放指令的操作数。 n二二级Cache:容量一般容量一般为128KB-2MBn在在Pentium之后的微之后的微处理器芯片上都配置了二理器芯片上都配置了二级Cache,其工作,其工作频率与率与CPU内核的内核的频率相同。率相同。 48

104、9Cache的分级体系结构n系系统中的二中的二级Cache CPU L1CacheL2Cache速度和存储速度和存储容量兼备容量兼备提高存取速度提高存取速度主主 存存提供存储容量提供存储容量490IBM PC/XTIBM PC/XT存储器的空间分配00000H9FFFFHBFFFFHFFFFFHRAM区区 640KB保留区保留区 128KBROM区区 256KB491本章主要应掌握的知识点n译码电路路设计n半半导体存体存储器系器系统设计nSRAM存存储器系器系统设计nEPROM和和EEPROM与系与系统的的连接及其接及其读操作或操作或读、写操作。写操作。492第5章应注意的几点n基本概念:基本

105、概念:n不同半不同半导体存体存储器的特点及器的特点及应用用场合合nCacheCache的基本概念的基本概念n系系统设计:n存存储器芯片与系器芯片与系统的的连接接n译码电路及其他控制信号路及其他控制信号n存存储器器扩展技展技术能够设计出所需能够设计出所需要的内存储器要的内存储器493 第6章 输入输出及中断技术494主要内容n基本概念基本概念n输入入输出系出系统nI/O接口和端口接口和端口n端口的端口的编址方式址方式n简单接口芯片及其接口芯片及其应用用n基本基本输入入输出方法出方法n中断的基本概念及工作中断的基本概念及工作过程程4956.1 输入输出系统496了解和掌握:n接口的基本功能接口的基

106、本功能n端口的概念端口的概念n端口的端口的编址方式址方式nI/O地址地址译码497一、一、I/O接口n接口要解决的接口要解决的问题n速度匹配速度匹配(Buffer)n信号的信号的驱动能力能力(电平平转换器、器、驱动器器) n信号形式和信号形式和电平的匹配平的匹配(A/D、D/A) n信息格式信息格式(字字节流、流、块、数据包、数据包、帧) n时序匹配序匹配(定定时关系关系)n总线隔离隔离(三三态门)498接口的功能n数据的数据的缓冲与冲与暂存存n信号信号电平与平与类型的型的转换n增加信号的增加信号的驱动能力能力n对外外设进行行监测、控制与管理,中断、控制与管理,中断处理理499二、二、I/O端

107、口数据端口数据端口状态端口状态端口控制端口控制端口端口端口500I/O端口CPU数据数据状态状态控制控制外设外设I/O接接口口DB501接口和端口接口接口1接口接口2接口接口N端口端口1端口端口2端口端口m端口端口1端口端口1端口端口2端口端口2端口端口m端口端口m端口端口编址编址端口地址端口地址=芯片地址(高位地址)芯片地址(高位地址)+片内地址片内地址502三、I/O端口的编址方式n8086/8088的的寻址能力:址能力:n内存:内存:n1MBn端口:端口:n64K个个n编址方式:址方式:n与内存与内存统一一编址址n独立独立编址址503端口与内存的统一编址特点:特点:n指令及控制信号指令及

108、控制信号统一;一;n内存地址内存地址资源减少源减少内存内存地址地址960KBI/O地址地址64KB00000HF0000HFFFFFH504端口的独立编址特点:特点:n内存地址内存地址资源充分利用源充分利用n能能够应用于端口的指令用于端口的指令 较少少内存内存地址地址I/O地址地址00000HFFFFFHFFFFH0000H505端口的寻址n8088/8086寻址端口数:址端口数:n64K个个n寻址端口的信号:址端口的信号:nIOR、IOWnA15 A05068088/8086的I/O端口编址n采用采用I/O独立独立编址方式址方式(但地址但地址线与存与存储器共用器共用)n地址地址线上的地址信号

109、用上的地址信号用IO/M来区分来区分nI/O操作只使用操作只使用20根地址根地址线中的中的16根:根:A15A0n可可寻址的址的I/O端口数端口数为64K(65536)个个nI/O地址范地址范围为0FFFFHnIBM PC只使用了只使用了1024个个I/O地址地址(03FFH)507四、I/O地址的译码目的:目的:n确定端口的地址确定端口的地址参加参加译码的信号:的信号:nIOR,IOW,高位地址信号高位地址信号nOUT指令将使指令将使总线的的IOW信号有效信号有效nIN指令将使指令将使总线的的IOR信号有效信号有效508I/O译码的地址信号n当接口只有一个端口当接口只有一个端口时,16位地址

110、位地址线一般一般应 全部参与全部参与译码,译码输出直接出直接选择该端口;端口;n当接口具有多个端口当接口具有多个端口时,则16位地址位地址线的高的高 位位参与参与译码(决定接口的基地址),而低位(决定接口的基地址),而低位 则用于确定要用于确定要访问哪一个端口。哪一个端口。509I/O地址译码例n某外某外设接口有接口有4个端口,地址个端口,地址为2F0H2F3H,由由A15A2译码得到,而得到,而A1、A0用用来区分接口中的来区分接口中的4个端口。个端口。试画画该接口与系接口与系统的的连接接图。510I/O地址译码例n地址范地址范围:n 0 0 1 0 1 1 1 1 0 0 0 0n 0 0

111、 1 0 1 1 1 1 0 0 1 1任意状态任意状态A11片内地址片内地址图中不接入图中不接入511I/O地址译码例n译码电路路图: 1A1111A1010A1818A3 3A2 2A9 9A7 7A4 4&CEA1 1A0 0接口芯片接口芯片IORIOW&5126.2 简单接口电路513掌握:n接口接口电路的分路的分类及特点;及特点;n两两类简单接口芯片的接口芯片的应用用514一、接口的基本构成数据线数据线控制线控制线状态线状态线DBCBAB数据输入寄存器数据输入寄存器(or 三态门三态门)数据输出寄存器数据输出寄存器(锁存器锁存器)状态寄存器状态寄存器(or 三态门三态门)命令寄存器命

112、令寄存器译码译码电路电路控制控制逻辑逻辑515接口的基本构成n数据数据输入入/输出寄存器出寄存器 n暂存存输入入/输出的数据出的数据n命令寄存器命令寄存器 n存放控制命令存放控制命令n设定接口功能、工作参数和工作方式。定接口功能、工作参数和工作方式。n状状态寄存器寄存器 n保存外保存外设当前状当前状态,以供,以供CPU读取。取。516二、接口的类型及特点n按按传输信息的方向分信息的方向分类:n输入接口入接口n输出接口出接口n按按传输信息的信息的类型分型分类:n数字接口数字接口n模模拟接口接口n按按传输信息的方式分信息的方式分类:n并行接口并行接口n串行接口串行接口517接口特点n输入接口:入接

113、口:n要求要求对数据具有控制能力数据具有控制能力n常用三常用三态门实现n输出接口:出接口:n要求要求对数据具有数据具有锁存能力存能力n常用常用锁存器存器实现518三、三态门接口n高高电平、低平、低电平、平、高阻高阻态51974LS244n含含8个三个三态门的集成的集成电路芯片路芯片n在外在外设具有数据保持能力具有数据保持能力时用来用来输入接口入接口n74LS244应用例用例n教材教材p238P238图图520四、锁存器接口n通常由通常由D触触发器构成;器构成;n特点:特点:n具有具有对数据的数据的锁存能力;存能力;n不具不具备对数据的控制能力数据的控制能力521常用锁存器芯片n74LS273n

114、8D触触发器,不具器,不具备数据的控制能力数据的控制能力n74LS373n含三含三态的的8D触触发器,具有器,具有对数据的控制能力。数据的控制能力。n既可以做既可以做输入接口,也可以做入接口,也可以做输出接口。出接口。P240图图522I/O接口综合应用例n根据开关状根据开关状态在在7段数段数码管上管上显示数字或符号示数字或符号n设输出接口的地址出接口的地址为F0Hn设输入接口地址入接口地址为F1Hn当开关的状当开关的状态分分别为00001111时,在,在7段段数数码管上管上对应显示示0F7段数码管图见教材段数码管图见教材p242O1 I1O2 I2O3 I3O4 I4E1 K0K3+5V G

115、 G2A G2B C B A1174LS244D0 Q0 | Q1D7 Q2 Q3 Q4CP Q5 Q6 Q7 abcdefgDP7406反相器反相器74LS273Rx81174LS138D0D7IOWIORY0Y1F0H = 1111 0000F1H = 1111 0001&A6A4A3A2A1A0D0D1D2D3译码译码器器A7A01符号符号形状形状7段码段码.gfedcba符号符号形状形状7段码段码.gfedcba000111111801111111100000110901100111201011011A01110111301001111B01111100401100110C001110

116、01501101101D01011110601111101E01111001700000111F01110001525I/O接口综合应用例 程序段Seg7 DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,67H,77H,7CH,39H,5EH,79H,71H LEA BX, Seg7 MOV AH, 0 GO: INAL, 0F1H AND AL, 0FH MOV SI, AX MOV AL, BX+SI OUT 0F0H, AL JMP GO5266.3 基本输入/输出方法527基本输入/输出方法无条件无条件传送送查询式式传送送中断方式中断方式传送送直接存直接存

117、储器存取器存取(DMA)程序控制方式程序控制方式528一、无条件传送n要求外要求外设总是是处于准于准备好状好状态n优点:点:n软件及接口硬件件及接口硬件简单n缺点:缺点:n只适用于只适用于简单外外设,适,适应范范围较窄窄529无条件传送例n读取开关的状取开关的状态;n当开关当开关闭合合时,输出出编码使使发光二极管亮。光二极管亮。DCPQD0D1输出口地输出口地址址38F3H输入口地输入口地址址38F0H+5V1531二、查询工作方式n仅当条件当条件满足足时才能才能进行数据行数据传送;送;n每每满足一次条件只能足一次条件只能进行一次数据行一次数据传送。送。n适用适用场合:合:n外外设并不并不总是

118、准是准备好好n对传送速率和效率要求不高送速率和效率要求不高n工作条件:工作条件:n外外设应提供提供设备状状态信息信息n接口接口应具具备状状态端口端口READY?READY?进行一次进行一次数据交换数据交换读入并测试外设状态读入并测试外设状态YN传送完传送完?Y结结 束束N每满足一每满足一次条件只次条件只能进行一能进行一次数据传次数据传送送开开 始始查询工作方式流程图查询工作方式流程图超时超时?READY?READY?与外设进与外设进行数据交换行数据交换超时错超时错读入并测试外设状态读入并测试外设状态YNYN传送完传送完?防止死循环防止死循环复位计时器复位计时器NY结结 束束N534查询工作方式

119、例外外设状状态端口地址端口地址为03FBH,第,第5位位(bit5)为状状态标志(志(=1忙,忙,=0准准备好)好)外外设数据端口地址数据端口地址为03F8H,写入数据会使状,写入数据会使状态标志置志置1 ;外;外设把数据把数据读走后又把它置走后又把它置0。试画出其画出其电路路图,并将,并将DATA下下100B数据数据输出。出。状态端口状态端口D5D7-D0A9|A31&A15|A1013F8HA2A1A0GG2AG2BCBA74LS138Y01D7-D0CPQ7Q6Q5Q4Q3Q2Q1Q074LS273外外设设D7D6D5D4D3D2D1D0BUSYY33FBHIOWIOR状态端口地址:状态

120、端口地址:0000 0011 1111 1011数据端口地址:数据端口地址:0000 0011 1111 1000 LEA SI,DATA MOV CX,100AGAIN : MOV DX,03FBHWAITT:IN AL,DX TEST AL,20H JNZ WAITT MOV DX,03F8H MOV AL,SI OUT DX,AL INC SI LOOP AGAIN HLT 读状态读状态 进行一次传送进行一次传送Bit5=1?传送完否传送完否? ? 修改地址指针修改地址指针 初始化初始化YNNY 结结 束束控制程序控制程序查询工作方式n优点:点:n软硬件比硬件比较简单n缺点:缺点:nCP

121、U效率低,数据效率低,数据传送的送的实时性差,性差,速度速度较慢慢537538三、中断控制方式n特点:特点:n外外设在需要在需要时向向CPU提出提出请求,求,CPU再去再去为它它 服服务。服。服务结束后或在外束后或在外设不需要不需要时,CPU可可 执行自己的程序。行自己的程序。n优点:点:nCPU效率高,效率高,实时性好,速度快。性好,速度快。n缺点:缺点:n程序程序编制相制相对较为复复杂。539以上三种I/O方式的共性n信息的信息的传送均需通送均需通过CPUn软件:件: n外外设与内存之与内存之间的数据的数据传送是通送是通过CPU执行程序来完行程序来完成的(成的(PIO方式);方式);n硬件

122、:硬件:nI/O接口和存接口和存储器的器的读写控制信号、地址信号都是由写控制信号、地址信号都是由CPU发出的。出的。n 缺点:缺点:n程序的程序的执行速度限定了行速度限定了传送的最大速度送的最大速度540四、DMA控制方式n特点:特点:n外外设直接与存直接与存储器器进行数据交行数据交换 ,CPU不再担当数不再担当数据据传输的中介者;的中介者;n总线由由DMA控制器(控制器(DMAC)进行控制(行控制(CPU要放要放弃弃总线控制控制权),内存),内存/外外设的地址和的地址和读写控制信号写控制信号均由均由DMAC提供。提供。541DMA控制方式DMAC外设外设接口接口CPUQRDMEMDACKHO

123、LDHLDABUS控制信号控制信号地址信号地址信号542DMA控制方式的工作过程n外外设向向DMA控制器控制器发出出“DMA传送送请求求”信号信号 DRQ;nDMA控制器收到控制器收到请求后,向求后,向CPU发出出“总线请 求求”信号信号HOLD;nCPU在完成当前在完成当前总线周期后会立即周期后会立即发出出HLDA 信号,信号,对HOLD信号信号进行响行响应;nDMA控制器收到控制器收到HLDA信号后,就开始控制信号后,就开始控制总 线,并向外,并向外设发出出DMA响响应信号信号DACK。543DMA控制方式工作过程例n例:从外例:从外设向内存向内存传送若干字送若干字节数据数据nDMAC向向

124、I/O接口接口发出出读信号;信号;n向地址向地址总线上上发出存出存储器的地址;器的地址;n发出存出存储器写信号和器写信号和AEN信号;信号;n传送数据并自送数据并自动修改地址和字修改地址和字节计数器数器n判断是否需要重复判断是否需要重复传送操作送操作;n若数据若数据传送完,送完,DMA控制器撤控制器撤销发往往CPU的的HOLD信号;信号;nCPU检测到到HOLD失效后,失效后,则撤撤销HLDA信号,并在下一信号,并在下一时钟周期重新开始控制周期重新开始控制总线。544DMA工作方式n周期窃取:周期窃取:n每个每个DMA周期只周期只传送一个字送一个字节或一个字就立即或一个字就立即释放放总线。n数

125、据数据块传送:送:nDMAC在申在申请到到总线后,将一后,将一块数据数据传送完后才送完后才释放放总线,而不管中,而不管中间DREQ是否有效。是否有效。n直接存取方式:直接存取方式:nDMA的数据的数据传送送请求直接求直接发到主存到主存储器,在得到响器,在得到响应后,整个工作后,整个工作过程在程在DMA控制器中由硬件完成。控制器中由硬件完成。周期窃取的DMA方式:NYN允许允许DMADMAC请求总线请求总线CPU响应响应, DMAC获总线控制权获总线控制权DMA传送一个数据传送一个数据块结束?块结束?释放总线至少一个总线周期释放总线至少一个总线周期地址增量,计数器减量地址增量,计数器减量DMAC

126、释放总线释放总线Y测试测试I/O的的DREQ DMA请求?请求?546DMA控制方式n数据数据传输由由DMA硬件来控制,数据硬件来控制,数据直接在内存直接在内存和外和外设之之间交交换,可以达到很高的,可以达到很高的传输速率。速率。n控制复控制复杂,硬件成本相,硬件成本相对较高。高。5476.4 中断技术548掌握:n中断的基本概念中断的基本概念n中断响中断响应的一般的一般过程程n中断向量表及其初始化中断向量表及其初始化n8088/8086中断系中断系统549一、中断的基本概念n中断:中断:nCPU执行程序行程序时,由于,由于发生了某种随机的事件生了某种随机的事件(外外部或内部部或内部),引起,

127、引起CPU暂时中断正在运行的程序,中断正在运行的程序,转去去执行一段特殊的服行一段特殊的服务程序程序(称称为中断服中断服务程序或程序或中断中断处理程序理程序),以,以处理理该事件,事件,该事件事件处理完后又理完后又返回被中断的程序返回被中断的程序继续执行,行,这一一过程称程称为中断。中断。550中断源n引起引起CPU中断的事件,中断的事件,发出中断出中断请求的来源。求的来源。内部中断内部中断外部中断外部中断异常中断异常中断软件中断软件中断可屏蔽中断可屏蔽中断非屏蔽中断非屏蔽中断异常事件引起异常事件引起中断指令引起中断指令引起INTR中断中断NMI中断中断551引入中断的原因n提高数据提高数据传

128、输率;率;n避免了避免了CPU不断不断检测外外设状状态的的过程,提高了程,提高了CPU的利用率。的利用率。n实现对特殊事件的特殊事件的实时响响应。552二、外部中断响应的一般过程n中断中断请求求n中断源中断源识别及中断判及中断判优n中断响中断响应n中断中断处理(服理(服务)n中断返回中断返回553中断请求n中断中断请求信号求信号应保持到中断被保持到中断被处理理为止;止;nCPU响响应中断后,中断中断后,中断请求信号求信号应及及时撤撤销。NMIINTR554中断源识别n软件件查询法法n中断矢量法中断矢量法n由中断源提供中断由中断源提供中断类型号,型号,CPU根据根据类型确定中型确定中断源。断源。

129、中断源识别及判优由硬件系统完成中断源识别及判优由硬件系统完成555中断判优n当有多个中断源同当有多个中断源同时提出提出请求求时,需要确定,需要确定首先响首先响应哪一个中断源。哪一个中断源。n优先先级法法则n低低优先先级的中断程序允的中断程序允许被高被高优先先级的中断源所的中断源所中断中断n排排队法法则n先来先响先来先响应中断嵌套中断嵌套556中断判优n软件判件判优n顺序序查询中断中断请求,先求,先查询的先服的先服务n即先即先查询的的优先先级别高高n硬件判硬件判优n链式判式判优、并行判、并行判优(中断向量法)(中断向量法)菊花链逻辑电路菊花链逻辑电路INTAinIREQINTR&=1 1INTA

130、outDB三态门三态门中中断断向向量量码码E外设接口外设接口中断确认中断确认菊花链菊花链逻辑电路逻辑电路558中断响应n向中断源向中断源发出出INTA中断响中断响应信号;信号;n关中断关中断n保保护硬件硬件现场n将将FLAGS压入堆入堆栈n保保护断点断点n将将CS、IP压入堆入堆栈n获得中断服得中断服务程序入口地址程序入口地址由由硬硬件件系系统统完完成成559中断处理n执行中断服行中断服务子程序子程序n中断服中断服务子程序的特点:子程序的特点:n为“远过程程”n用用IRET指令返回指令返回560中断服务子程序完成的工作n关中断,保关中断,保护现场,保,保护断点,找入口地址断点,找入口地址n保保

131、护软件件现场(参数)(参数)n开中断(开中断(STI)n中断中断处理理n关中断(关中断(CLI)n恢复恢复现场n中断返回中断返回561中断返回n执行行IRET指令,使指令,使IP、CS和和FLAGS从堆从堆栈弹出出恢复断点和硬件现场恢复断点和硬件现场中断处理过程流程562563三、8088/8086中断系统内部中断内部中断外部中断外部中断异常中断异常中断软件中断软件中断非屏蔽中断非屏蔽中断可屏蔽中断可屏蔽中断256个中个中断源断源除法错中断除法错中断溢出中断溢出中断单步中断单步中断 NMIINTR中断逻辑中断逻辑软件中断指令软件中断指令溢出中断溢出中断除法错除法错单步中断单步中断非屏蔽中断请非

132、屏蔽中断请求求中断控中断控制器制器8259APIC8086/8088CPU8086/8088CPU内部逻辑内部逻辑断点中断断点中断可可屏屏蔽蔽中中断断请请求求n430128086/8088中断源类型:中断源类型:565中断向量表 00000H003FFH1KB566中断向量表n存放各存放各类中断的中断服中断的中断服务程序的入口地址;程序的入口地址;n每个入口占用每个入口占用4 Bytes,低字,低字为段内偏移,高段内偏移,高 字字为段基址;段基址;n表的地址位于内存的表的地址位于内存的00000H003FFH,大,大 小小为1KB,共,共256个入口。个入口。567中断向量表的初始化n将用将用

133、户自定自定义的中断服的中断服务程序入口地址放入向程序入口地址放入向量表量表n注意点:注意点:n向量表所在的段地址向量表所在的段地址=0n存放子程序入口的存放子程序入口的单元的偏移地址元的偏移地址=n4n例:例:n将中断向量将中断向量码为48H的服的服务程序入口地址放入向量程序入口地址放入向量表表p275568中断向量表的初始化nMOV AX,0000HnMOV DS,AXnMOV SI,0120HnMOV BX,OFFSET TIMERnMOV SI,BXnMOV BX,SEG TIMER nMOV SI+2,BX5698088内部中断与NMI中断特点:特点:n无INTA周期周期n中断中断类型

134、型码固定或由指令固定或由指令给出出8088/8086的中断响应和处理流程NYNYNNNNNYY执行指令执行完否?取指令IF=1?内部中断?NMI?INTR?TF=1?类型码=0255类型码=2类型码=1中断响应,读回类型码保护FLAGSTEMPTFTF=TF=0CS、IP入栈计算向量表地址高字CS低字IP执行中断服务程序NMI?TEMP=1?转入中断服务程序恢复CS和IP恢复FLAGS返回被中断的程序YYYYNIRET指 令的操作571572 第7章 常用数字接口电路常用数字接口电路573主要内容:n掌握两种可掌握两种可编程并行接口芯片的程并行接口芯片的应用用574可编程定时器8253575掌

135、握:n引引线功能及功能及计数启数启动方法方法n6种工作方式及其种工作方式及其输出波形出波形n应用用:n芯片与系芯片与系统的的连接接n芯片的初始化芯片的初始化编程程5768253芯片特点n可可编程的程的逻辑器件;器件;n非通道型的接口,具有特定功能;非通道型的接口,具有特定功能;n可可实现计数和定数和定时;n工作方式:工作方式:n减法减法计数数n计数数值减减为0时输出相出相应控制信号控制信号n输出控制信号的形式可通出控制信号的形式可通过软件件设置置5771. 外部引线及内部结构n连接系接系统端的主要引端的主要引线:nD0-D7nCSnRDnWRnA0,A1 n连接外接外设端的主要引端的主要引线:

136、nCLK - 时钟脉冲脉冲输入入nGATE - 门控信号控信号输入入nOUT - 定定时输出出 578结构特点n每个每个计数器含数器含n控制寄存器控制寄存器1616位初值寄存器位初值寄存器1616位计数寄存器位计数寄存器存放控制命令字存放控制命令字n内部内部3个计数器均为减法计数器个计数器均为减法计数器n根据计数脉冲的频率及需要定时的时间长度确定计数初值根据计数脉冲的频率及需要定时的时间长度确定计数初值相同端口地址相同端口地址存放计数初值存放计数初值计数初值计数初值579外部引线及内部结构n三个可独立工作的三个可独立工作的16位定位定时/计数器,一个控数器,一个控制寄存器。共占用制寄存器。共占

137、用4个端口地址,个端口地址,4个端口的地个端口的地址址编码: A1 A0 0 0 CNT0 0 1 CNT1 1 0 CNT2 1 1 控制寄存器控制寄存器引线引线5802. 计数启动方式n软件启件启动n硬件启硬件启动GATE端为高电平端为高电平GATE端有一个上升沿端有一个上升沿由由GATE端信号的形式决定端信号的形式决定5813. 工作方式n方式方式0n软件启件启动,不自,不自动重复重复计数;数;n计数数结束束输出高出高电平。平。n方式方式1 n硬件启硬件启动,不自,不自动重复重复计数;数;n计数开始数开始输出低出低电平,平,结束后又束后又变高。高。582工作方式n方式方式2n软、硬件启、

138、硬件启动,自,自动重复重复计数。数。n计数到最后一个脉冲数到最后一个脉冲时输出低出低电平平n方式方式3n软、硬件启、硬件启动,自,自动重复重复计数。数。n输出出对称方波称方波583工作方式n方式方式4n软件启件启动,不自,不自动重复重复计数。数。n计数数结束束输出一个出一个CLK宽度的低度的低电平平n方式方式5n硬件启硬件启动,不自,不自动重复重复计数数n波形与方式波形与方式4相同相同584工作方式小结n需要两个写脉冲需要两个写脉冲n第第1个写脉冲写入控制字个写脉冲写入控制字n第第2个写脉冲写入个写脉冲写入计数初数初值n不同的工作方式,有不同的不同的工作方式,有不同的计数启数启动方法。方法。n

139、可根据可根据对输出波形的要求,出波形的要求,选择不同的工作不同的工作方式。方式。n能能输出出连续波形的只有方式波形的只有方式2和方式和方式3。两条两条OUT指令指令5854. 控制字n用于确定各用于确定各计数器的工作方式数器的工作方式格格 式式5865. 8253的应用n与系与系统的的连接接n初始化程序初始化程序设计n写入控制字写入控制字n置置计数初数初值587与系统的连接示意CLKGATEOUTD0D7WRRDA1A0CSDBIOWIORA1A0译码器译码器高高位位地地址址外设外设8253外部时钟外部时钟门控信号门控信号588应用中的注意点n每一次启每一次启动计数,需有两次写操作:数,需有两

140、次写操作:n写控制字写控制字n写写计数器初数器初值n如果初如果初值为8位字位字长,则一次写入;若初一次写入;若初值为16位字位字长,则 需两次写入需两次写入n每个每个计数器的控制命令字均送入控制寄存器数器的控制命令字均送入控制寄存器n各各计数器的数器的计数初数初值送到送到该计数器的数器的计数寄存器及数寄存器及 初初值寄存器;寄存器;589初始化程序流程写控制字写控制字写计数值低写计数值低8位位写计数值高写计数值高8位位*非必须非必须590初始化程序流程n当有两个以上当有两个以上计数器被数器被应用用时的初始化程序的初始化程序设计流程:流程:初始化初始化CNT0初始化初始化CNT1初始化初始化CN

141、T2写写CNT0控制字控制字写写CNT0计数初值计数初值591初始化程序流程写入全部计数器控制字写入全部计数器控制字写写CNT0计数初值计数初值写写CNT1计数初值计数初值写写CNT2计数初值计数初值原则:原则:u先写入控制字先写入控制字u后写入计数初值后写入计数初值5928253应用例一n采用采用8253作定作定时/计数器,其接口地址数器,其接口地址为0120H0123H。n输入入8253的的时钟频率率为2MH。要求:要求:nCNT0每每10ms输出一个出一个CLK周期周期宽的的负脉冲脉冲nCNT1输出出10KHz的的连续方波信号方波信号nCNT2在定在定时5ms后后产生生输出高出高电平平n

142、画画线路路连接接图,并,并编写初始化程序写初始化程序. 工作的计数器工作的计数器工作方式工作方式计数初值计数初值启动方式启动方式计数脉冲频率计数脉冲频率5938253应用例n计算算计数初数初值: CNT0:10ms/0.5us=20000 CNT1:2 MHz/10KHz=200 CNT2: 5ms/0.5us=10000n确定控制字:确定控制字: CNT0:方式方式2,16位位计数数值 CNT1:方式方式3,低,低8位位计数数值 CNT2:方式方式0,16位位计数数值0011010001010110101100005948253应用例CLK0GATE0OUT1D0D7WRRDA1A0CSDB

143、IOWIORA1A0译码器译码器8253CLK2GATE1GATE2+5VCLK12MHzOUT0OUT25958253应用例初始化程序初始化程序CNT0:MOV DX,0123HMOV AL,34HOUT DX,ALMOV DX,0120HMOV AX,20000OUT DX,ALMOV AL,AHOUT DX,ALCNT1: CNT2: 5968253应用例二n安全安全检测和和报警警控制系控制系统。5978253应用例二n初始状初始状态下,下,D触触发器的器的Q端端输出低出低电平;平;n系系统通通过三三态门循循环读取取检测器状器状态,有异常出,有异常出现时,检测器器输出高出高电平。此平。此

144、时在在D触触发器的器的Q端端输出高出高电平,平,启启动8253计数器的通道数器的通道0输出出100Hz的的连续方波信号方波信号,使使报警灯警灯闪烁,直到有任意,直到有任意键按下按下时停止;停止;n使使计数器停止数器停止输出方波的方法是在出方波的方法是在Q端端输出低出低电平。平。CLK0的的输入脉冲入脉冲为2MHz。要求:。要求:n设计8253的的译码电路;路;n编写写8253计数器的初始化程序及数器的初始化程序及实现上述功能的控制程序。上述功能的控制程序。 598例二解n8253地址范地址范围:n0011 1110 00000011 1110 0011n译码电路:译码电路:G1G2AG2BCB

145、A&11IOWIORA9A5:A11A10A4A3A2Y0599例二解n8253计数初数初值:n2MHz/100Hz=20000n8253工作方式:工作方式:n方式方式3n8253初始化程序:初始化程序:nMOV DX,3E3HnMOV AL,00110110nOUT DX,ALnMOV DX,3E0HnMOV AX,20000nOUT DX,ALnMOV AL,AHnOUT DX,AL 600例二解控制程序控制程序 XOR AL,AL MOV DX,3E5H OUT DX,AL MOV DX,3E4HNEXT:IN AL,DX AND AL,01H JZ NEXT MOV DX,3E5H M

146、OV AL,2 OUT DX,ALGOON:MOV AH,1 INT 16H JZ GOON XOR AL,AL OUT DX,AL MOV AH,4C INT 21H 601三、可编程并行接口8255602掌握:n主要引主要引线功能及功能及结构构n3种工作方式及其特点种工作方式及其特点n应用用:n芯片与系芯片与系统的的连接接n芯片的初始化芯片的初始化编程程n数据数据输入入/输出控制程序出控制程序设计603并行接口8255的特点:n通道型接口通道型接口n含含3个独立的个独立的8位并行输入位并行输入/输出端口,各输出端口,各 端口均具有数据的控制和锁存能力端口均具有数据的控制和锁存能力n可通过编

147、程,设置各端口工作在某一确定可通过编程,设置各端口工作在某一确定 状态下。状态下。6041. 引线连接系接系统端的主要引端的主要引线:nD0-D7nCSnRDnWRnA0,A1 nREAST A1 A00 0 A端口端口0 1 B端口端口1 0 C端口端口1 1 控制寄存器控制寄存器605引线连接外接外设端的引脚:端的引脚:nPA0 PA7nPB0 PB7nPC0 PC7分别对应分别对应A、B、C三个端口三个端口6068255与系统的连接示意图D0D7WRRDA1A0CSDBIOWIORA1A0译码器译码器8255A口口B口口C口口D0D7外外 设设6072. 结构A组B组 端口端口A端口端口

148、C的高的高4位位端口端口B端口端口C的低的低4位位6083. 工作方式基本基本输入入/输出方式(方式出方式(方式0)选通工作方式(方式通工作方式(方式1)双向双向传送方式(方式送方式(方式2)609方式0:n相当于三个独立的相当于三个独立的8位位简单接口接口n各端口既可各端口既可设置置为输入口,也可入口,也可设置置为输出出 口,但不能同口,但不能同时实现输入及入及输出出nC端口可以是一个端口可以是一个8位的位的简单接口,也可以分接口,也可以分为 两个独立的两个独立的4位端口位端口n常用于常用于连接接简单外外设,适于无条件或,适于无条件或查询方式方式610方式0的应用:n习惯上:上:nA端口和端

149、口和B端口作端口作为8位数据的位数据的输入或入或输出口出口nC口的某些位作口的某些位作为状状态输入入n注:注:n若使若使C端口低端口低4位中某一位作位中某一位作为输入口,入口,则低低4位中其位中其他位都他位都应作作为输入口。同入口。同时可可设高高4位作位作为输出。出。6118255工作于方式0的连接示意图D0D7WRRDA1A0CSDBIOWIORA1A0译码器译码器8255PA0 |PA7B口口PC0D0D7数据数据状态状态数据数据外设外设1外设外设2612方式1:n利用一利用一组选通控制信号控制通控制信号控制A端口和端口和B端口的数端口的数 据据输入入输出出nA口、口、B口作口作输入或入或

150、输出口,出口,C口的部分位用作口的部分位用作 选通控制信号通控制信号nA口、口、B口在作口在作为输入入和和输出出时的的选通信号不同通信号不同输入输入输出输出613方式1的应用:n方式方式1主要用于中断控制方式下的主要用于中断控制方式下的输入入输出出nC口的口的8位除用作位除用作选通信号外,其余位可工作通信号外,其余位可工作 于方式于方式0下,作下,作为输入或入或输出口。出口。614方式2:n双向双向输入入输出方式出方式n可以既作可以既作为输入口,又作入口,又作为输出口。出口。n只有只有A端口可工作在方式端口可工作在方式2下下615方式2的应用:n可使可使A端口作端口作为双向端口所有双向端口所有

151、n用于中断控制方式用于中断控制方式n当当A口工作于方式口工作于方式2时:nB口可工作于方式口可工作于方式1n此此时C口的所有位都用作口的所有位都用作选通控制信号的通控制信号的输入入输出出nB口也可工作于方式口也可工作于方式0n此此时C口的剩余位也可工作于方式口的剩余位也可工作于方式06164. 方式控制字及位控制字n方式控制字:方式控制字:n用于确定用于确定3个端口的工作方式及数据个端口的工作方式及数据传送方向;送方向;n位控制字位控制字n仅用于用于C端口端口n可可设置置C口某位的初始状口某位的初始状态(为高高电平或低平或低电平)平)n当其工作于方式当其工作于方式0下且作下且作为输出口出口时,

152、一般需要,一般需要对作作为输出的位出的位设置初始状置初始状态(即初始化)(即初始化)6175. 8255芯片的应用n芯片与系芯片与系统的的连接接n芯片的初始化芯片的初始化n相相应的控制程序的控制程序例例7-38255应用例:n8086CPU通通过8255实施施监控。控。8255端口地址端口地址为1020H-1023H,启启动操作由端口操作由端口B的的PB7控制控制(高(高电平有效),平有效),端口端口A输入入8个个监控点的状控点的状态(每个引脚接(每个引脚接一个一个监控点),只要其中任一路出控点),只要其中任一路出现异常情况(高异常情况(高电平),系平),系统就通就通过与与PC0相相连的信号灯

153、的信号灯报警警(高(高电平平灯亮),要求信号灯亮灯亮),要求信号灯亮灭3次。要求:次。要求:n设计系系统线路路图,要求用,要求用138译码器器设计译码电路;路;n编写写8255初始化程序及启初始化程序及启动、测试和和报警控制程警控制程序序618n地址范地址范围:n0001 0000 0010 00XX619控制程序 MOV DX,1023H MOV AL,1001X000B OUT DX,AL MOV AL,0 OUT DX,AL MOV DX,1021H MOV AL,80H OUT DX,ALA:MOV DX,1020H IN AL,DX CMP AL,0 JZ A620 MOV CX,3

154、 MOV DX,1022H MOV AL,1B:OUT DX,AL INC AL CALL DELAY MOV AL,0 LOOP B JMP A621622第8章 模拟量的输入输出623主要内容:模拟量输入输出通道的组成模拟量输入输出通道的组成D/A转换器的工作原理、连接及编转换器的工作原理、连接及编程程A/D转换器的工作原理、连接及编转换器的工作原理、连接及编程程624模拟量的输入输出通道625模拟量I/O通道:模拟接口电路的任务模拟接口电路的任务模拟电路的任务模拟电路的任务0010110110101100工工业业生生产产过过程程传传感感器器放大放大滤波滤波多路转换多路转换&采样保持采样保

155、持A/D转换转换放大放大驱动驱动D/A转换转换输出输出接口接口微微型型计计算算机机执行执行机构机构输入输入接口接口物理量物理量变换变换信号信号处理处理信号信号变换变换I/O接口接口输入通道输入通道输出通道输出通道变变送送器器626模拟量的输入通道n传感器(感器(Transducer)n非非电量量电压、电流流 n变送器(送器(Transformer)n转换成成标准的准的电信号信号n信号信号处理(理(Signal Processing)n放大、整形、放大、整形、滤波波n多路多路转换开关(开关(Multiplexer)n多多选一一n采采样保持保持电路(路(Sample Holder,S/H)n保保证

156、变换时信号恒定不信号恒定不变nA/D变换器(器(A/D Converter)n模模拟量量转换为数字量数字量627模拟量的输出通道nD/A变换器(器(D/A Converter)n数字量数字量转换为模模拟量量n低通低通滤波波n平滑平滑输出波形出波形n放大放大驱动n提供足提供足够的的驱动电压,电流流628闭环控制系统应用案例n水泥厂增湿塔出口温度控制系统水泥厂增湿塔出口温度控制系统629数/模(D/A)变换器630掌握:nD/A变换器的工作原理器的工作原理nD/A变换器的主要技器的主要技术指指标nDAC0832的三种工作模式的三种工作模式nDAC0832的的应用用631一、D/A变换器的工作原理n

157、组成:成:n模模拟开关开关n电阻网阻网络n运算放大器运算放大器VrefRf 模拟开关模拟开关电阻网络电阻网络VO数字量数字量632基本变换原理n当运放的放大倍数足当运放的放大倍数足够大大时,输出出电压VO与与输入入电压Vin的关系的关系为:VinRf VOR 633基本变换原理n若若输入端有入端有n个支路个支路, 则输出出电压VO与与输入入电压Vi的关系的关系为:VinRf VOR1Rn634n=8的权电阻网络2R4R8R16R32R64R128R256RVrefRf VOS1S2S3S4S5S6S7S8635基本变换原理n如果每个支路由一个开关如果每个支路由一个开关Si控制,控制,Si=1表

158、示表示Si合上,合上,Si=0表示表示Si断开,断开,则上式上式变换为若若Si=1,该项对该项对VO有贡献;有贡献;若若Si=0,该项对该项对VO无贡献无贡献636基本变换原理n如果用如果用8位二位二进制代制代码来控制来控制图中的中的S1S8(Di=1时Si闭合;合;Di=0时Si断开断开),则不同的不同的二二进制代制代码就就对应不同不同输出出电压VO;n当代当代码在在0FFH之之间变化化时,VO相相应地在地在 0(255/256)Vref之之间变化;化;n为控制控制电阻网阻网络各支路各支路电阻阻值的精度,的精度,实际的的D/A转换器采用器采用R-2R梯形梯形电阻网阻网络,它只用两,它只用两种

159、阻种阻值的的电阻阻(R和和2R)。637实际的D/A转换器 R-2R梯形电阻网络638二、主要技术指标n分辨率(分辨率(Resolution)n输入的二入的二进制数每制数每1个最低有效位个最低有效位 (LSB)使使输出出变化的程度。化的程度。n分辨率表示方法:分辨率表示方法:n可用可用输入数字量的位数来表示,如入数字量的位数来表示,如8位、位、10位等;位等;n也可用一个也可用一个LSB (Least Significant BitLeast Significant Bit)使使输出出变化化的程度来表示。的程度来表示。639分辩率例n一个一个满量程量程为5V的的10位位D/A变换器,器,1 L

160、SB的的变化所引起化所引起输出模出模拟量的量的变化化为: 5/(210-1) = 5/1023 = 0.04888V = 48.88mV640转换精度(误差)实际输出出值与理与理论值之之间的最大偏差的最大偏差n影响影响转换精度的因素:精度的因素: 分分辩率率 电源波源波动 温度温度变化化 641转换时间n从开始从开始转换到与到与满量程量程值相差相差1/2 LSB1/2 LSB所所对应的模的模拟量所需要的量所需要的时间tV1/2 LSBtCVFULL642三、典型D/A转换器DAC0832特点:特点:n8位位电流流输出型出型D/A转换器器nT型型电阻网阻网络n差差动输出出643DAC0832的内

161、部结构644主要引脚功能输入寄存器控制信号:入寄存器控制信号:nD7D0:输入数据入数据线nILE:输入入锁存允存允许nCS:片:片选信号信号nWR1:写:写输入入锁存器存器645主要引脚功能用于用于DAC寄存器的控制信号:寄存器的控制信号:nWR2:写:写DAC寄存器寄存器nXFER:允:允许输入入锁存器的数据存器的数据传送到送到DAC寄寄存器存器646主要引脚功能其它引其它引线:nVREF:参考:参考电压。 -10V+10V,一般,一般为+5V或或+10VnIOUT1、IOUT2:D/A转换差差动电流流输出。出。 用于用于连接运算放大器的接运算放大器的输入入nRfb:内部反:内部反馈电阻引

162、脚,接运放阻引脚,接运放输出出nAGND、DGND:模:模拟地和数字地地和数字地 647工作模式单缓冲模式冲模式双双缓冲模式冲模式无无缓冲模式冲模式648单缓冲模式n使使输入入锁存器或存器或DAC寄存器二者之一寄存器二者之一处于直通,于直通,即芯片只占用一个端口地址。即芯片只占用一个端口地址。nCPU只需一次写入即开始只需一次写入即开始转换。写入数据的程。写入数据的程序序为: MOV DX,PORT MOV AL,DATA OUT DX,AL649单缓冲模式例n利用教材利用教材图8-12所示所示线路路图输出三角波:出三角波:n端口地址:端口地址:0278Hn最大最大输出出值5V,对应数字量:数

163、字量:FFHn最小最小输出出值0V,对应数字量:数字量:00Hn MOV DX,0278Hn MOV AL,0nNET1: OUT DX,ALn INC ALn CMP AL,0FFHn JNZ NET1n DEC ALNET2: OUT DX,AL DEC AL CMP AL,0 JNZ NET2 JMP NET1650双缓冲模式(标准模式)n对输入寄存器和入寄存器和DAC寄存器均需控制。寄存器均需控制。n当当输入寄存器控制信号有效入寄存器控制信号有效时,数据写入,数据写入输入入 寄存器中;再在寄存器中;再在DAC寄存器控制信号有效寄存器控制信号有效时, 数据才写入数据才写入DAC寄存器,并

164、启寄存器,并启动变换。n此此时芯片占用两个端口地址。芯片占用两个端口地址。n优点:点:n数据接收与数据接收与D/A转换可异步可异步进行;行;n可可实现多个多个DAC同步同步转换输出。出。n分分时写入、同步写入、同步转换。651工作时序写输入写输入寄存器寄存器写写DAC寄存器寄存器652双缓冲模式同步转换例译码器译码器A10-A00832-10832-2port1port2port3653MOV AL,data MOV DX,port1OUT DX,ALMOV DX,port2OUT DX,AL MOV DX,port3OUT DX,AL HLT双缓冲模式的数据写入程序0832-1的输入寄存器地

165、址的输入寄存器地址0832-2的输入寄存器地址的输入寄存器地址DAC寄存器地址寄存器地址654无缓冲器模式n使内部的两个寄存器都使内部的两个寄存器都处于直通状于直通状态。模。模拟输出始出始终跟随跟随输入入变化。化。n不能直接与数据不能直接与数据总线连接,需外加并行接口接,需外加并行接口(如如74LS373、8255等等)。655四、D/A转换器的应用 信号信号发生器生器 用于用于闭环控制系控制系统向向D/AD/A转换器写入某种按规律转换器写入某种按规律变化的数据,即可在输出端变化的数据,即可在输出端获得相应的各种波形获得相应的各种波形656模/数(A/D)转换器657要点:nA/D转换器的一般

166、工作原理器的一般工作原理nA/D转换器的主要技器的主要技术指指标nA/D转换器的器的应用用n与系与系统的的连接接n数据采集程序的数据采集程序的编写写658A/D转换器n用于将用于将连续变化的模化的模拟信号信号转换为数字信号的数字信号的装置,装置,简称称ADC,是模是模拟系系统与与计算机之算机之间的的接口部件。接口部件。659A/D转换器类型n计数型数型A/D转换器器 -速度慢、价格低,适用于慢速系速度慢、价格低,适用于慢速系统n双双积分型分型A/D转换器器 -分分辩率高、抗干率高、抗干扰性好、性好、转换速度慢,适用于中速速度慢,适用于中速 系系统n逐位反逐位反馈型型A/D转换器器 -转换精度高

167、、速度快、抗干精度高、速度快、抗干扰性差性差660一、A/D转换器的工作原理n逐位反逐位反馈型型A/D转换器器n类似天平称重量似天平称重量时的的尝试法,逐步用砝法,逐步用砝码的累的累积重量重量去逼近被称物体去逼近被称物体661二、主要技术指标n转换精度精度n量化量化误差差n非非线性性误差差n其它其它误差差n总误差差=各各误差的均方根差的均方根662量化间隔n一个最低有效位一个最低有效位对应的模的模拟量量 =Vmax /(2n-1)n例:某例:某8位位ADC的的满量程量程电压为5V,则其分辨其分辨率率为: 5V/255=19.6mV663量化误差n绝对量化量化误差差n绝对量化量化误差差=1/2

168、n相相对量化量化误差差n相相对量化量化误差差=(1/2) 100%n例:例: 设满量程量程电压=10V,A/D变换器位数器位数=10位,位,则:绝对量化量化误差差 10/211 = 4.88mV相相对量化量化误差差 1/211 *100% = 0.049%664转换时间n实现一次一次转换需要的需要的时间。精度越高(字。精度越高(字长越越长),),转换速度越慢。速度越慢。665输入动态范围n允允许转换的的电压的范的范围。 如如05V、010V等。等。666三、典型的A/D转换器芯片ADC0809:n8通道(通道(8路)路)输入入n8位字位字长 n逐位逼近型逐位逼近型n转换时间100s n内置三内

169、置三态输出出缓冲器冲器667主要引脚功能nD7D0:输出数据出数据线(三(三态)nIN0IN7:8通道(路)模通道(路)模拟输入入nADDA、ADDB、ADDC:通道地址:通道地址nALE:通道地址:通道地址锁存存nSTART:启:启动转换nEOC:转换结束状束状态输出出nOE:输出允出允许(打开(打开输出三出三态门)nCLK:时钟输入(入(10KHz1.2MHz)668内部结构IN7IN08个个模模拟拟输输入入通通道道START EOC CLK OED7D0VREF(+) VREF(-)ADDCADDBADDAALE比较器比较器8路模路模拟开拟开关关逐位逼近寄存器逐位逼近寄存器SAR树状开关

170、树状开关电阻网络电阻网络三态三态输出输出锁存锁存器器时序与控制时序与控制地址地址锁存锁存及及译码译码D/A8选选1669工作时序670ADC0809的工作过程由由时序序图知知ADC0809的工作的工作过程如下:程如下:n送通道地址,以送通道地址,以选择要要转换的模的模拟输入;入;n锁存通道地址到内部地址存通道地址到内部地址锁存器;存器;n启启动A/D变换;n判断判断转换是否是否结束;束;n读转换结果果671ADC0809的工作流程 送通道地址送通道地址通道地址锁存通道地址锁存启动启动A/D变换变换转换结束否?转换结束否?送送OE开门信号开门信号读取转换结果读取转换结果YN672判断转换结束的方

171、法n软件延件延时等待等待(比如延(比如延时120us)n此此时不用不用EOC信号,信号,CPU效率最低效率最低n软件件查询EOC状状态。n把把EOC作作为中断申中断申请信号信号,接到,接到8259的的IN端。端。n在中断服在中断服务程序中程序中读入入转换结果,效率果,效率较高高673ADC0809的应用n芯片与系芯片与系统的的连接接n通常情况下需要通常情况下需要经数字接口与系数字接口与系统连接接n编写相写相应的数据采集程序的数据采集程序n从数据采集到存从数据采集到存储674ADC0809与系统的连接例单路模拟量输入:单路模拟量输入:D0IN0A15-A0 D7-D0D7-D0EOCOESTAR

172、TALEADDCADDBADDA译译码码器器ADC0809数字数字I/O接口接口输出输出接口接口IORIOW675ADC0809与系统的连接例D0IN0A15-A0 IOR IOWD7-D0D7-D0EOCOESTARTALEADDCADDBADDA译译码码器器ADC0809I/O接接口口数字数字I/O接口接口IN7多路模拟量输入:多路模拟量输入:676数据采集程序流程 初始化初始化 送通道地址送通道地址送送ALE信号信号送送START信号信号读读EOC状态状态送读允许送读允许OE信号信号EOC=1?读转换结果读转换结果采集结束否?采集结束否?NY结结 束束Y送下一路通道地址送下一路通道地址

173、(1)(1)N677A/D转换器应用例题题8.148.14n82558255的地址范围的地址范围n00000011111101000000111111010000 00000011111101000000111111011111n设计与系统的连接线路图设计与系统的连接线路图n单路模拟量输入,无需连接通道地址和地址锁存信号;单路模拟量输入,无需连接通道地址和地址锁存信号;n利用利用82558255的的A A口和口和B B口读取转换结果,口读取转换结果,C C端口输出和输入各端口输出和输入各种控制信息。种控制信息。67982558255初始化程序 INIT PROC NEARnPUSH DXnPU

174、SH AX nMOV DX,03F7HnMOV AL,9AHnOUT DX,ALnMOV AL,01H ;PC0初始置初始置1nOUT DX,ALnMOV AL,02HnOUT DX,AL ;PC1初始置初始置0nPOP AXnPOP DXnRET INIT ENDP680数据采集程序 START:MOV AX,SEG DATAnMOV DS,AXnLEA SI,DATAnCALL INITnMOV DX,03F6HnMOV AL,03HnOUT DX,ALnNOP nMOV AL,01HnOUT DX,ALWAITT:IN AL,DX nAND AL,40HnJZ WAITTnAND AL,0FEHnOUT DX,ALnMOV DX,03F5HnIN AL,DXnMOV SI,ALnINC SInMOV DX,03F4HnIN AL,DXnMOV SI,ALnHLT 681

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号