欢迎来到天天文库
浏览记录
ID:56008303
大小:1.41 MB
页数:87页
时间:2020-03-15
《微型计算机原理(实验讲义).doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、微机原理和应用实验讲义南京大学物理系二○○三年九月第一部分汇编语言和机内接口实验一用DEBUG验证指令实验二用DEBUG运行简单程序实验三字符显示实验四从键盘输入十六进制数并显示出二进制值实验五多位十进制数相加的编程实验六十进数乘法实验七排序实验实验八二—十进制数码转换实验九音响实验实验十时钟实验实验十一PC机打印接口实验实验十二串行通信实验实验十三A/D转换在电化学沉积研究中的应用附录一调试程序DUBUG主要命令提要附录二编辑工具EDIT使用简介附录三DOS中断向量和BIOS中断调用一览表实验一用DEBUG验证指令用动态调
2、试DEBUG逐条验证下列指令的功能,每条指令执行前须在有关的寄存器或内存中设置好特定的数值内容,以便运行后能有效地反映出该指令的特点。设置的方式可用传送指令,也可用DEBUG的R命令或E命令。(附录一给出了DEBUG的各命令功能及标志寄存器(F)各标志位的符号表示。)实验报告要求写出运行前后的设置情况和运行结果、以及对指令的理解。(1)MOVAX,[SI]运行前,ax=?si=?[si]=?[si+1]=?运行后,ax=?[si]=?[si+1]=?(2)MOVAX,1234[DI]运行前,ax=?di=?[1234+di]
3、=?[1234+di+1]=?运行后,ax=?(3)MOV[BX][SI],AX运行前,ax=?bx=?si=?[bx+si]=?[bx+s+1]=?运行后,ax=?[bx+si]=?[bx+si+1]=?(4)PUSHAX运行前,ax=?;sp=?运行后,ax=?sp=?并指出ah和al的内容在堆栈中的存放地址。(5)LEADX,[1200]运行前,dx=?运行后,dx=?(6)LESSI,[BX]运行前,es=?si=?bx=?[bx,bx+1,bx+2,bx+3]=?,?,?,?运行后,es=?si=?(7)NEGAX
4、运行前设:ax=1234H;并用RF命令置所有标志为零。运行后,ax=?各标志位状态如何?对标志状态作出说明。(8)CMPAX,BX运行前设:AX=1234H,BX=2345H,运行后,ax=?各标志位状态如何?对标志状态作出说明。实验二用DEBUG运行简单程序按下列各题要求,编写程序指令,在动态调试DEBUG中汇编、运行;并学会用DEBUG的W命令将其中的部分程序存盘。实验报告要求写出指令清单和运行结果(包括验证情况)。(1)将数据段(注意是DS所指定的段)中偏移地址为1000H到10FFH的内容清零。(2)将数据段中偏移
5、地址为1000H单元的内容求反,存入1001H单元。(3)将数据段中偏移地址为1000H单元的内容清除高四位,保留低四位后存入原单元中。(4)将数据段中偏移地址为1000H单元的内容左移四位,低位添零。(5)将数据段中偏移地址为1000H单元的高四位和1001H单元中的低四位组成一个新数,存入1002H单元。(6)计算无符号数0BF4H乘1000H;对运算数和运算结果用十进制作数值验证(手算)。(7)计算带符号数B4H乘11H。对运算数和运算结果用十进制作手算验证。实验三字符显示利用DOS的系统功能调用依次显示出PC机的所有
6、屏幕显示字符(编码为0-100H共256个)。可以直接在动态调试DEBUG中编程,也可以用汇编语言。基本流程如下:计数值→CX字符码初值00→DL显示功能码02→AH调用DOS功能21HDL增值NCX-1=0?Y返回DEBUG(或DOS)如直接在DEBUG中编程、调试,成功后,将程序赋予文件名:??…?.COM存盘,退出DEBUG,试在DOS下直接用文件名运行。将程序作以下3个方面的改进(综合在一个程序中):①判断被显示的字符码是否是回车码0DH,若是,则随后补充一个换行码OAH。②每个字符间插入空格。③用软件延时的方法(指
7、令空循环)使每显示一个字符作适当延时。选做:将所有256个显示字符,按编码顺序在屏幕上排列成16×16的矩阵表格,即扩展的ASCII码字符表,其行值(0,1,…F)为编码的高位,列值(0,1,…F)为编码的低位。为使定位正确,应将功能码07,08,09,0A,0D等置换成空格码。实验四从键盘输入十六进制数并显示出二进制值实验目的:掌握接收键盘数据的方法,并了解数据显示时须转换为ASCII码的原理。实验内容:将键盘接收到的4位十六进制数据转换为等值的二进制数,再显示在屏幕终端上。参考流程:实验五多位十进制数相加的编程实验目的:
8、学习数据传送和算术运算指令,熟悉BCD码和ASCII码转换关系,熟悉汇编和调试程序的过程。实验内容:两个5位的十进制数,以ASCII码的形式各自顺序存放在标号为DATA1和DATA2的内存数据段(低位在前),相加结果送回DATA1处。编程要求首先显示出被加数和加数,最后显示出相加结果,(每
此文档下载收益归作者所有