《微机原理与接口技术》.doc

上传人:精*** 文档编号:877737 上传时间:2024-03-08 格式:DOC 页数:28 大小:466.76KB
下载 相关 举报
《微机原理与接口技术》.doc_第1页
第1页 / 共28页
《微机原理与接口技术》.doc_第2页
第2页 / 共28页
《微机原理与接口技术》.doc_第3页
第3页 / 共28页
《微机原理与接口技术》.doc_第4页
第4页 / 共28页
《微机原理与接口技术》.doc_第5页
第5页 / 共28页
点击查看更多>>
资源描述

1、武汉理工大学微机原理与接口技术课程设计说明书1.设计任务及要求1.1微机原理与接口技术课程设计目的 对典型的微机应用系统进行设计,要求根据具体的课题题目画出系统结构框图、系统接线图;能用所学习的汇编语言进行典型的程序设计并上机进行调试。并能根据要求写出设计课程设计报告,报告要求文字整洁、语言通顺、制图规范、程序完整正确。1.2设计任务本课程设计是一个在键盘上练习打字并统计时间及正确率的实用程序。在缓冲区中预放了一些字母,运行时,可按照屏幕上显示的字母输入练习,按某个键开始练习,可显示出练习的时间及正确率,并一行练习完毕后系统自动生成另外一行随机字母。1.3设计要求1设计要求:(1)设计一个在键

2、盘上练习打字并能统计时间及正确率的程序。(2)熟悉和掌握有关键盘和时间的中断及字符显示计数。(3)编制键盘中断和时间中断处理程序,并保存原中断向量。程序运行时,使用自编的中断向量处理程序。程序退出时,恢复中断向量。2设计功能:(1)按照显示的字母输入练习,每输入完一行按回车键后,可显示出练习输入的时间及正确率,打字练习过程中输入的字符与打字练习的内容不符时会产生警报,打字练习可以一直进行下去直至练习者停止 (2)能用自编的中断向量处理程序处理中断。 2.方案比较及论证2.1方案比较根据打字计时练习的设计要求可知,我们可以依据缓冲区中字符系列的产生这一要求的实现有两种设计方案:方案一是缓冲区中的

3、字母是预先设定好的,后面所进行的打字练习是依照预先设定好的字符系列进行;方案二是缓冲区中的字母是随机生成的,每一次打字练习的字符系列都是随机产生的。其他要求的实现都是一样的。方案一:缓冲区中的字符系列是预先设定好的。这种设计方案要求在内存中预先开辟一段存储空间存放将要进行打字练习的字符系列,在后面进行打字练习的时候再将字符系列取出进行操作。这种设计方案占用的内存较多并且需要先将字符系列取出后再进行操作,程序写起来很长,指令太多,同时设计的方案对于使用者来说太过单一,想尝试不同字符系列的打字练习时还要另行修改程序,适用性差。方案二:缓冲区中的字符系列是系统自动随机生成的。这种设计方案要求系统随机

4、生成字符系列,不需要预先分配内存单元,在开始新一轮的打字练习时就自动随机生成字符系列。这种设计方案运用到的指令少,占用的内存少,设计的程序适用性好,不需要修改程序就可以尝试不同的字符系列的打字练习。2.2方案论述在设计打字练习时,根据打字练习的过程来设计打字计时练习的程序,首先在打字练习的界面上要有输出的提示信息提示对打字练习要进行的操作,其次是打字练习内容字母系列的生成,然后才开始进行打字练习,打字计时练习的过程在系统内部是一个不断循环的过程,在系统内部时钟每次嘀嗒计数循环一次,首先需要判断是否从键盘键入字符,这里面有一个循环检测的过程直至有字符键入系统,其次需要知道键入的字符是否是特殊字符

5、,判断打字练习进行哪步操作。这是一个大的分支程序,需要有很多的跳转并且需要不断的调用子程序实现不同的功能。最后在一轮打字练习结束时需要有一个分支的选择,是再次进行打字练习的设置还是退出打字练习的程序。3.软件设计说明3.1软件思想由打字计时练习的设计要求可知设计主要分为以下几个步骤:打字练习过程中提示信息的输出,随机字母系列的生成,打字练习过程中键入字符的正确与否,打字练习过程的时间及正确率的显示,字母系列是否键入完毕。运用汇编语言设计的程序分为主程序和子程序。主程序主要用于随机字母系列的生成,打字计时练习过程键入字符正确与否的判断,字母系列是否输入完毕,打字计时练习的新一轮的开始。子程序分别

6、实现不同的功能,分别如下:子程序SHUCHU_TISHI中,实现的是打字练习过程中输出提示信息。子程序BINDEC实现的是显示时间,分别将各遍野单元的二进制数转换为十进制数,并以COUNT5:COUNT4:COUNT3的形式显示出来。子程序DECDIV实现的是数字以ASCII字符形式输出子程序TIME实现的是打字练习过程的计时及输出子程序SOUND实现的打字计时练习过程中键入字符与相应打字内容不等时的警报。方案一的设计思路:系统随机生成打字练习的内容将需要输出的提示信息,记录打字练习的正确率参数及计时单元等预先放在DATA数据段中,程序开始时就输出提示信息然后系统随机生成打字内容存放在内存中,

7、然后开始打字练习,由自编的中断程序PRESS检测按键时产生的中断,并把按键的扫描码转换为ASCII码,这个工作和ROM09类型的键盘中断例行程序所完成的工作大致相同,只是在解释各个键时作了简化,即只解释了可显示字符,如英文字母、数字及一些符号;其他特殊键,如组合键、双态键、功能键等都未作解释,只作为字符码0来处理。在主程序部分保存原09类型的中断向量,设置自编例行程序的中断向量,设置中断屏蔽位,然后开中断。键入的字符时,还应判断字符是否为空格(20H)。如为空格,需要再次的调用INT21H中断,从键盘输入字符直至输入的字符不是空格,还要判断是否是退出和回车,如果是跳到重新输入字符处,重新开始从

8、键盘键入字符判断。如果不是,进入键入的字符是否是正确处,进行各自相应的操作直至键入某一功能键(如Esc键、Shift键等)退出程序,结束打字练习。在键盘打字计时采用10类型的键盘中断,来取得输入字符并将字符显示在屏幕上;在统计时间时利用08类型的定时器中断所嵌套的ICH软中断来计时。当一个字符输入完后(回车键作为结束符),屏幕上以COUNT5:COUNT4:COUNT3的格式显示出打字练习的时间。在统计时间和正确率时需要利用数制转换子程序,将系统自行计数的二进制转换成十进制输出。自行编制键盘中断和时间中断处理程序,并保存原中断向量。程序运行时,使用自编的中断向量处理程序。程序退出时,恢复中断向

9、量。自编中断处理程序也是本课题需要考虑的重要问题。虽然系统自带了许多中断例行程序可以由INT指令来执行,但在本课题中需要对原中断例行程序的功能进行扩充才可。3.2程序流程图主程序如图所示:图一主程序流程图上图为主程序流程图,是依据设计思路中未调用子程序的几个步骤得来TIME PROC 时间子程序流程图如图2所示:PUSH AX判断DH是否为零PUSH DXMAIN: 否MOV AH, 2INT 1AHCMP DH, SECONTJNE GETJMP NEXT 是 秒表COUNT3加一GET: MOV SECONT,DHINC COUNT3MOV AX, COUNT3CMP AX, 60判断CO

10、UNT5是否为60JNE NEXT4MOV COUNT3, 0INC COUNT4MOV AX, COUNT4 否CMP AX, 60JNE NEXT4 是MOV COUNT4, 0将COUNT5置零,并将分钟加一INC COUNT5NEXT4:MOV DH, 20MOV DL, 23MOVTO DH, DL 是MOV AX, COUNT5 判断COUNT4是否为60CALL BINDEC 否MOV AH, 2MOV DL, :INT 21HMOV AX, COUNT4CALL BINDEC将COUNT4置零,并将小时加一MOV AH, 2MOV DL, :INT 21HMOV AX, COU

11、NT3CALL BINDEC 显示时间NEXT:POP DXPOP AXRET 图二 时间子程序流程图TIMEENDPSOUND PROC PUSH AX 报警子程序流程图如图3所示:PUSH CX 输入控制参数 IN AL, 61H AND AL, 11111101B OUT 61H, AL MOV CX, 10000 将AL的第二位取反AGAIN_S: XOR AL, 2 OUT 61H, AL CALL DELAY LOOP AGAIN_S 将AL的值通过端口地址传进去 POP CX POP AX RETSOUND ENDPDELAY PROC PUSH CX 延迟 MOV CX, 0F

12、FFHNEXT_D: NOP LOOP NEXT_D POP CX 图3 报警子程序流程图 RETDELAY ENDP 在主程序中对键入字符ACSII是否介于33和127之间的判断,其流程图如图4所示:图4:键入字符的判断流程图3.3代码设计1. 功能模块说明(1)定义数据段,设置主要参数: 输出提示信息,记录正确率和计时的参数(2)代码段调用中断8259,键盘中断,时钟中断,设置打字计时文件程序顺序(3)使用子程序分化各子功能SHUCHU_TISHI PROC ;输出提示信息SOUND PROC ;发声BINDEC PROC NEAR ;将二进制转化为十进制显示时间DECDIV PROC N

13、EAR ;转化成字符显示TIME PROC ;统计时间 2. 具体代码实现及关键代码分析;定义堆栈段;*SSEG SEGMENT STACK STACK DW 100 DUP(?)SSEG ENDS;* 整个程序按两个中断源分为两部分。在数据段中,前半部分是键盘处理所需要的数据变量,包括输入字符,字符缓冲区,09H中断向量的保存单元等。后半部分是定时器中断处理所需要的数据变量,其中有一个打字练习内容及其地址表SADDR,计时单元COUNT3,COUNT4,COUNT5以及记录真确率的变量COUNT0,COUNT1中断向量的存贮单元等。在堆栈段定义一个“先进先出”的缓冲区(buffer):由于键

14、盘是通过中断方式工作的,由于键盘中断的出现是完全随机的,因此要示键盘I/O程序要缓冲或保留它接收的任一键盘输入。故需定义一个缓冲区,也叫循环队列。;定义数据段;*DSEG SEGMENT DATA;显示窗口内容 MSG1 DB PRESS ENTER TO START!$ MSG2 DB PRESS ESC TO END! $ MSG3 DB THE PASSED TIME:$ MSG4 DB THE RATE OF CORRECT:$ MSG5 DB PRESS ENTER TO RESTART!$ MSG6 DB PRESS ESC TO OUT! $ SECONT DB 0 COUNT0

15、 DW 0 ;为了记录正确的字符数 COUNT1 DW 0 ;字符总个数 COUNT2 DW 0 ;为了到行尾时自动翻行的控制 COUNT3 DW 0;秒 COUNT4 DW 0;分 COUNT5 DW 0;时DSEG ENDS;*数据段定义了在后面要用到的计时变量,记录打字练习的正确率及需要输出的提示信息;定义代码段;*CSEG SEGMENT CODE ASSUME CS:CSEG, SS:SSEG, DS:DSEG;*主程序start:输出打字操作的提示信息,随机生成字符系列,打字练习过程,打字时间的统计及正确率的计算。;输出提示信息程序SHUCHU_TISHI PROC:通过对DH,D

16、L的赋值将光标定位在DH行DL列,调用宏定义OUTPUT设置输出字符串的属性并在DH行DL列输出;输出提示信息*SHUCHU_TISHI PROC ADD DH,3 ADD DL,28 OUTPUT MSG1,14, DH, DL ADD DH, 2 ADD DL,2 OUTPUT MSG2, 11, DH, DL RETSHUCHU_TISHI ENDP;*;正确率统计和报警程序由于本次课设还要求设计的汇编语言程序具有统计正确率的功能,所以必须要有一段可以实现记录输入字符个数,并通过一个判断输入的字符是否与屏幕上由程序自动生成的字符串当中相对应的字符相同的程序,若相同的话,则使得统计输入正确

17、的字符的寄存器增加一,然后将这两个程序联合使用来实现正确率的功能。由于这两个程序当中有需要调用其他子程序,涉及到的程序过多,这里只给出一小段核心程序,如下:MOVTO DH, DL ; 显示光标的位置MOV AX, COUNT0CALL BINDEC ; 显示输入字母的个数MOV AH, 2MOV DL, / INT 21H MOV AX, BINDEC ; 显示输入正确的字母个数CALL CHANGEPOP DXJMP PRESS 首先在这段程序当中,用到了宏指令MOVTO,前面也说到了该宏指令可以通过控制DH、DL的值来控制输出字符的位置。从而可以方便的控制想要显示的内容在屏幕上的位置。在

18、这段程序当中还涉及到了INT 21H中断的应用,当AH当中为02H时,DL当中的存储内容就是直接显示的内容,在这里我们用到“/”即分数的形式来表达正确率,而不是直接计算出百分比。“/” 前面显示的内容是用户输入的内容与程序显示的字符一致的个数,作为分子,而“/”后面显示的内容是用户一共键入的字符个数,作为分母。由于在计算机当中,数据均以二进制的形式来储存,但二进制并不是我们所习惯的数值表达方式,所以数据输出前需要经过一个进制转换程序的处理,经转换以后再输出到屏幕上供用户观看。在这里就又涉及到了进制转换程序。由于在本程序当中,进制转换程序并不是主要的程序单元,它只用作为辅助程序。需要提到的是当用

19、户键入的字符错误,即不与程序自动产生的字符串中对应的字符相同时,需要调用到报警程序单元。用户键入错误字符有报警是本次课设的又一个主要要求,显然在调用报警程序之前,需要先判断键入的字符是否正确,在错误时才会调用报警程序,这就需要有一个可以判断键入字符的单元程序,该判断单元需要在用户每键入一个字符后便执行一次,因此它可以直接接在输入字符程序后面。;将二进制转化为十进制并显示时间的程序BINDEC PROC NEAR:通过给CX赋值并调用DECDIV PROC 程序将系统内部计时的二进制数转换成十进制,并以ASCII码形式输出 ;将数字以ASCII码形式输出程序DECDIV PROC:完成二十进制的

20、转换并以ASCII码的形式输出,与前面的BINDEC PROC程序一起实现二十进制的转换及输出功能;将2进制数转换成10进制数*BINDEC PROC NEAR MOV CX,10D ;显示十位CALL DECDIV MOV CX,1 ;显示个位CALL DECDIV RET BINDEC ENDP DECDIV PROC NEAR ;转化成字符显示MOV DX,0 DIV CX MOV BX,0 ADD AL,30H ;转换成ASCIIMOV AH,0EH INT 10H ;显示一个字符MOV AX,DX RET DECDIV ENDP;*;统计时间程序TIME PROC:由课程设计的要求中

21、可以知道,本程序只要在加入一段可以计时的程序段即可基本满足课程设计的要求。在8086/8088的各种中断中,有时钟服务指令INT 1AH可以实现读取时间的功能。它的入口参数是AH=02H,也即当AH=02H时,出口参数CH为BCD码格式的小时,CL为BCD码格式的分钟,DH为BCD码格式的秒,由于程序需要实现的是从零开始的计时功能,所以只利用输出参数DH即可,另外标志位CF的值可以控制时钟是否在走,当CF=0时时钟在走,否则时钟停止。在显示程序的时候要注意显示的问题,由于在显示时间的时候有两位数,若采用以为显示的INT 21H中的AH=02H,将会出现错误,所以在显示时间时,将二进制转变为十进

22、制的时候要注意显示两位数,十位和各位,这点同时也用在正确率统计上。利用该中断指令的这一功能,我们得到如下的具有计时功能的程序段代码。将每次打字练习的经过的时间放在变量SECONT中,每次键入字母时将目前的时间与上次键入字母的时间相比,看在键入字母的的过程系统的时间是否变了,如果变了就把新的时间存在SECONT中,并且计时的秒数自加一,然后依此计算分钟和小时,然后调用二十进制转换将时间以COUNT5:COUNT4:COUNT3的形式输出;*时间*TIME PROCPUSH AXPUSH DXMAIN:MOV AH, 2INT 1AHCMP DH, SECONTJNE GETJMP NEXTGET

23、: MOV SECONT,DHINC COUNT3MOV AX, COUNT3CMP AX, 60JNE NEXT4MOV COUNT3, 0INC COUNT4MOV AX, COUNT4CMP AX, 60JNE NEXT4MOV COUNT4, 0INC COUNT5NEXT4:MOV DH, 20MOV DL, 23MOVTO DH, DLMOV AX, COUNT5CALL BINDECMOV AH, 2MOV DL, :INT 21HMOV AX, COUNT4CALL BINDECMOV AH, 2MOV DL, :INT 21HMOV AX, COUNT3CALL BINDEC

24、NEXT:POP DXPOP AXRETTIMEENDP;*4. 程序的调试与运行4.1调试环境简介软件简介: MFPCI98 集成实验环境是针对汇编语言初学者的特点开发的一个简单易用的汇编语言学习软件(支持最新操作系统Vista),它具有错误信息自动定位、关键字实时帮助并且在帮助中动画演示汇编指令的执行过程、语法着色、无限次撤消与恢复、WORD式的查找、替换、定位、支持中文、长文件名、软件可以安装在任意文件夹等功能。4.2 调试过程及结果分析1. 程序调试过程启动全屏幕编辑软件MFPCI98,输入源程序。输入完毕后,按Ctrl+S保存程序,规定扩展名为*.ASM。对源程序进行汇编。源程序进行

25、汇编有三个步骤:第一个是汇编生成OBJ文件,即二进制目标文件,这是汇编的主要目的。第二个是连接。第三个是运行。汇编过程中,如果源程序有语法错误,则汇编结束后,会指出源程序中的错误,这时可以通过修改源程序中的错误,最后,得到没有语法错误的OBJ文件。当没有语法错误而又无法得到正确结果时,可用调试来进行验证。它通过单步、设置断点等多种方式为我们提供非常有效的调试手段。2. 程序运行结果调试窗口如下:1)设置主程序段显示输出信息,程序功能应该实现下图所示:2)按下ENTER键后开始打字练习出现的界面:3)从键盘上键入字母系列后的界面:4)按下ESC键后,程序停止运行,运行RESTART程序,其输出界

26、面如下:5)按下ENTER后重新开始新一轮的打字练习,界面如下:3. 调试中出现的问题:在设计程序过程中没有注意到要操作的目标数据(内存中的数据)的大小和使用的操作容器(寄存器)的大小不是一致。在整个程序中没有考虑到光标的定位,致使字符的输出在屏幕上没有任何规律。在对堆栈进行操作时,没考虑到压入和弹出堆栈的顺序。在自编中断程序时当中断结束时,必须恢复原来的中断向量,否则后续程序不能正确使用系统提供的例行程序。设置和恢复中断向量时,要访问程序内部数据变量,DS作为调用参数寄存器,要正确设置。 某些硬件中断例行程序在程序起始处将DS置成了ROM的数据段,所以在该中断的嵌套例行程序中,若要访问自编程

27、序的数据变量,则必须将DS切换成用户数据段。5.课程设计收获及心得体会 为期两周的课程设计终于完成了,回想起来有很多的感悟与收获。运用汇编语言来编写一个实用的程序对于我们初学者来说是很有难度的。但是当真的要做的时候也只好尽自己最大的努力去做,做到自己最好的。我在这个过程中有很多自己的感受,我感觉汇编语言真的是很神奇,很有意思。我们从最刚开始的什么都不会到后来可以自己编程序,看着自己做出来的东西,心里感觉很快乐,设计和其他课程设计有共同的地方,那就是不仅加深和巩固了我们的课本知识,而且增强了我们自己动脑,自己动手的能力。但是我想他也有它的独特指出,那就是让我们进入一个神奇的世界,那就是编程。对于

28、很多学过汇编或者其他的类似程序的同学来说,这不算新奇,但是对于我来说真的新奇,很有趣,也使我有更多的兴趣学习微机原理和其他的汇编。在课程设计中过程中尤其是汇编的时候总会出现这样或者那样的问题,这要求我们要学会分析问题并且学会解决问题,有时需要查书籍查资料看自己的错误在哪里,在这个过程中调试是极为重要的,通过一步一步的调试找出问题的症结所在。有时刚刚解决了这里的一个问题别的地方又有新的问题出现,这是我们不能泄气,我们要学会思考,是什么原因使得别的地方又有新的问题,是不匹配还是其他原因。同时我觉得团队精神也十分重要,有时同学的一句话就会点醒我们,找到错误之处。总的来说我觉得微机原理与接口技术是一门

29、很有趣的课程。他在讨论某一部分原理时又要涉及到其它部分的工作原理。这样一来,不仅不能在短时间内较深入理解计算机的工作原理,而且也很难孤立地理解某一部分的工作原理。所以,在循序渐进的课堂教学过程中,我总是处于“学会了一些新知识,弄清了一些原来保留的问题,又出现了一些新问题”的循环中,直到课程结束时,才把保留的问题基本搞清楚。参考文献1 赵润林、范国渠. 汇编语言程序设计教程与实训.北京大学出版社.20062 杨季文. 80X86汇编语言程序设计教程.清华大学出版社.19983 钱晓捷. 汇编语言程序设计.电子工业出版社.20004 温冬蝉,沈美明.IBM PC汇编语言程序设计.第2版.清华大学出

30、版社.20025 艾德才等编著.微型接口技术实用教程.清华大学出版社.20026 姚燕南、薛均义主编.微型计算机原理与接口技术.高等教育出版社.2004附录一程序代码如下:LF EQU 0AHCR EQU 0DH ;宏定义部分PRINT MACRO P1,P2 ;输出“*”PUSH AXPUSH BXPUSH CXMOV AH, 09HMOV AL, P1MOV BH, 0 MOV BL, P2MOV CX, 1INT 10HPOP CXPOP BXPOP AXENDMMOVTO MACRO P1,P2 ;移动光标到指定位置PUSH AXPUSH DXMOV AH, 2MOV DH, P1MO

31、V DL, P2INT 10HPOP DXPOP AXENDMOUTPUT MACRO MSG,P1,P2,P3 ;输出字符串LOCAL DIFFER, EXITOFPUSH AXPUSH BXPUSH CXPUSH DXPUSH DIMOV DH, P2MOV DL, P3MOV BH, 0 MOV BL, P1 MOV DI, 0DIFFER:MOV AH, 02HINT 10HMOV CL, MSGDICMP CL, $JE EXITOF MOV AH, 9 MOV AL, MSGDI MOV CX, 1 INT 10H INC DI INC DL JMP DIFFEREXITOF: P

32、OP DI POP DX POP CX POP BX POP AX ENDM DSEG SEGMENT DATA;显示窗口内容 MSG1 DB PRESS ENTER TO START!$ MSG2 DB PRESS ESC TO END! $ MSG3 DB THE PASSED TIME:$ MSG4 DB THE RATE OF CORRECT:$ MSG5 DB PRESS ENTER TO RESTART!$ MSG6 DB PRESS ESC TO OUT! $ SECONT DB 0 COUNT0 DW 0 ;为了记录正确的字符数 COUNT1 DW 0 ;字符总个数 COUNT

33、2 DW 0 ;为了到行尾时自动翻行的控制 COUNT3 DW 0;秒 COUNT4 DW 0;分 COUNT5 DW 0;时DSEG ENDSSSEG SEGMENT STACK STACK DW 100 DUP(?)SSEG ENDSCSEG SEGMENT CODE ASSUME CS:CSEG, SS:SSEG, DS:DSEG;*START PROC FAR PUSH DS MOV AX, 0 PUSH AX MOV AX, DSEG MOV DS, AX MOV ES, AX CALL SHUCHU_TISHI ;输出提示信息LZ:MOV AH, 1 ;带回显的键符输入INT 21

34、HMOV BL, AL ;AL=输入的字符CMP AL,CR ;判断输入的字符是否是ENTER键JE PRACTISECMP AL,1BH ;判断是否要退出打字练习程序JE TZD_1JMP LZPRACTISE: MOV DH,4 MOV DL,1 LOOP1:MOVTO DH,DL PRINT ,0 INC DL CMP DL,46 JB LOOP1 MOV DH, 2 MOV DL, 1 MOVTO DH, DLMOV AH, 0INT 1AHMOV AL, DL ;随机生成字母CONT_1: CMP AL, 7EH JA CONT CMP AL, 21H JB CON JMP CONT

35、ICONT:SUB AL, 7EHJMP CONT_1CON:ADD AL, 20HJMP CONT_1CONTI: MOV CX, 45 MOV AH, 9 MOV BL, 00001101B MOV DH, 2 MOV DL, 0 JMP SHUCHU TZD_1: ;跳转点到“EXIT”JMP TZD_2 SHUCHU:INC DLMOVTO DH, DL INT 10H ADD AL, 13 CMP AL, 7EH JA CONTINUE LOOP SHUCHU JMP DAZIRUKOUCONTINUE:SUB AL, 7EHADD AL, 20HLOOP SHUCHU ;到此为输出

36、上面一行要打字练习的内容 ;下面开始打字练习*DAZIRUKOU:MOV DH, 4MOV DL, 1DAZI:;显示正确率*PUSH DX JMP DAZI1DAZI1:MOV DH, 20MOV DL, 1OUTPUT MSG3, 9, DH, DLMOV DH, 22MOV DL, 1OUTPUT MSG4, 9, DH, DLMOV DH, 22MOV DL, 26MOVTO DH, DLMOV AX, COUNT0CALL BINDECMOV AH, 2MOV DL, /INT 21HMOV AX, COUNT1 CALL BINDECPOP DXJMP PRESS;*PRESS:CALL TIME ;调用时间MOVTO DH, DLMOV AH, 01HINT 16HJNE KEY ;测试有无键盘按下JMP PRESSKEY:MOV AH, 00INT

展开阅读全文
相关资源
相关搜索
资源标签

当前位置:首页 > 学术论文 > 大学论文

版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1 

陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922