资源预览内容
第1页 / 共9页
第2页 / 共9页
第3页 / 共9页
第4页 / 共9页
第5页 / 共9页
第6页 / 共9页
第7页 / 共9页
第8页 / 共9页
第9页 / 共9页
亲,该文档总共9页全部预览完了,如果喜欢就下载吧!
资源描述
微型计算机技术及应用汇编语言程序设计实 验 报 告学 号:姓 名: 学 院:计算机科学与技术学院专 业:计算机科学与技术学 期:20152016(2)总分满分30得分第一次 实验报告1. 实验目的(1.1)熟悉DEBUG的功能,运行并掌握其常用命令。(1.2)掌握DEBUG调试程序的方法。(2.1)利用DEBUG掌握有关的命令。(2.2)利用DEBUG运行简单的程序段。(3.1)掌握汇编语言程序上机过程。(3.2)掌握汇编语言结构。(3.3)学习汇编语言的伪操作。(3.4)了解汇编程序、连接程序、DOS系统装入和返回功能。(3.5)掌握用DEBUG调试汇编语言程序的方法。(4.1)进一步熟悉DEBUG的使用方法。(4.2)掌握汇编语言程序的编辑、汇编、连接以及调试过程。2. 实验软硬件环境(1) 硬件环境:IBM-PC及兼容机(2) 软件环境:操作系统DOS3.0以上(3) 调试环境:DEBUG.COM,MASM.EXE,LINK.EXE3. 实验内容1、 DEBUG的加载及其常用命令(D、E、F、R、G、A、T、U、N、L、W、Q)的使用情况。2、 用命令A汇编下列程序段,并将程序写到硬盘上,然后调试程序段,观察程序段能否完成指定功能,若不能,说明原因,并修改程序。(1) 内存操作数及各种寻址方式使用MOVAX,1000MOV1200,AXMOVBX,1202MOVBYTE PTRBX,20MOVDL,39INCBXMOVBX,DLDECDLMOVSI,3MOVBX+SI,DLMOVBX+SI+1,DLMOVWORD PTRBX+SI+2,1234(2) 多字节假发程序MOVDI,1234MOVCX,8MOVSI,2234CLCAGAIN:MOVAL,SIADCDI,ALINCSIINC DILOOP AGAIN(3) 移位操作MOVAL,06SHLAL,1MOVBL,ALMOVCL,2SHLAL,CLADDAL,BL(4) 数据串移动用A命令DB伪指令在1000H键入下列字符串:Thiss a string.。用A命令键入下列程序:MOVSI,1000MOVDI,2000MOVCX,0FHLOP:MOVAL,SIMOVDI,ALINCSIINCDILOOPLOPINT203、 编写完整的汇编语言程序:从变量DD1开始存放3个无符号字节数据,试编制一个找出其中最大者存入DD2单元的源程序。4、 试编写一个汇编语言程序,要求对键盘输入的小写字母用大写字母显示出来。4.本次实验思考题解答(1.1)单独的T从CS:IP开始单步执行,T=100从100开始执行,T=100,3表示从CS:100开始执行3条指令停下来。(1.2)G=100,108命令的100是起始地址,108是断点地址。T和G都能运行指令,T是单步执行,G是连续执行直到遇到断点。(1.3)D显示内存单元的内容,U对二进制机器代码反汇编为源程序。(2.1)CCH看作指令表示INT 3,看作无符号数表示204,看作有符号数表示-52。先用E指令将CCH写入内存,再用U指令从相应的内存地址反汇编,即可知道CCH表示什么指令。(2.2)MOVBX,AX中,操作数BX的寻址方式是寄存器相对寻址。执行完该指令后用R指令查看BX的值,再用D指令显示相应内存单元的内容。(2.3)不可以,程序将会一直执行,直到遇到返回DOS指令。如果想以CS:IP作为起始地址,可以不用“=”给出执行的首地址。(3.1)END后的标号指示程序开始执行的起始地址。(3.2)8086CPU一个段的大小是64KB,在DEBUG下用D命令可以查看程序在内存的存放情况。(4.1)把INT21H的H省去,会调用21号中断(4.2)不行第二次 实验报告1. 实验目的(1.1)掌握多分支If.Else If.Else程序结构和设计方法。(1.2)进一步熟悉DEBUG的使用方法。(1.3)掌握汇编语言程序的编辑、汇编、连接以及调试的过程。(2.1)进一步掌握多路分支If.Else If.Else程序结构和设计方法。(2.2)进一步熟悉DEBUG的使用方法。(3)循环结构程序设计是使用循环控制类指令,实现对某程序段重复执行一定的次数。通过本次实验,使学生初步掌握单重、多重循环程序的设计方法,为编制较大的程序和阅读较复杂程序打下基础。(4)进一步掌握循环结构程序设计是使用循环控制类指令。2. 实验软硬件环境(1) 硬件环境:IBM-PC及兼容机(2) 软件环境:操作系统DOS3.0以上(3) 调试环境:DEBUG.COM,MASM.EXE,LINK.EXE3. 实验内容1、 编写程序,将一个包含有20个数据的数组M分成两个数组:正数数组P和负数数组N,并分别把这两个数组中数据的个数显示出来。2、 接收键盘输入字符,判别该字符是否为字母、数字或非数字类的字符。若是数字则显示“DIGIT”;若是字母,显示“LETTER”;若是非数字也非字母类的字符,则显示“OTHER”。3、 设有5个学生参加4门课的考试,其中4门课的成绩以压缩BCD码方式存放在字组COURSE1中;试编制计算每个学生总分(总分存入字组NUM1中)的源程序。4、 将一个4*4的矩阵与一个4*1的矩阵相乘,并将所得的矩阵存入单元中。4. 本次实验思考题解答(1) 是(2) 增加字符判断区间,41H5AH(3) 无条件跳转,无限循环作用5.附加题设计(1)题目:输入以$为结束符的字符串,统计字符串中非数字字符的数目,并用十进制输出。(2)算法思想用一段空间存储字母串,检查是否有结束字符,没有继续输入,然后对字符串用地址逐个检查,用数字ASCII码判断,不是数字就是计数量count+1,然后对计数量进行十进制转化,然后输出。(3) 程序流程图 输入字符 判断是否是结束字符 没有继续输入与数字进行比较,不是数字Count+1 调整count的值,使 其变成十进制输出 程序结束第三次 实验报告1. 实验目的(1.1)掌握主程序和子程序之间的调用关系及其调用方法。(1.2)掌握子程序调用过程中近程调用与远程调用的区别。(1.3)掌握子程序设计方法,能合理划分子程序。(1.4)掌握汇编子程序的定义、调用、返回、参数传递等有关问题的实现,以及运行过程中的堆栈、标志位变化情况。(2)进一步掌握主程序和子程序之间的调用关系及其调用方法。(3.1)强化主程序和子程序之间的调用关系及其调用方法。(3.2)掌握递归调用子程序的方法。(4)进一步掌握主程序和子程序之间的调用关系及调用方法。2.实验软硬件环境(1)硬件环境:IBM-PC及兼容机(2)软件环境:操作系统DOS3.0以上(3)调试环境:DEBUG.COM,MASM.EXE,LINK.EXE3.实验内容1、用堆栈传送参数和参数表地址方式,编制键入8位的非压缩BCD码加法并显示的程序。2、编写程序求数据区中10个无符号数中的最大值和最小值,结果分别存入MAX和MIN单元中,要求最大值和最小值分别用子程序完成计算,主程序和子程序之间通过寄存器传递参数。3、试编制在ARRAY1无符号数组中,选出最大值及其所在的位置,然后以10进制形式显示在CRT上的源程序。4、用子程序结构编程计算:S=1!+2!+3!+.+5!4. 本次实验思考题解答1. 说明调用指令call和无条件转移指令的区别及应用答:CALL 指令在实现转移之前, 要将返回地址存入堆栈的, 以便子程可以通过 ret 指令返回到 CALL 指令下面的指令接着运行; jmp则不同。 5.附加题设计(1)题目:输入以$为结束符的字符串,将该字符串中大写字母升序排序,数字降序排序,并输出大写字母的前继和后续字符。(2)算法思想首先分配一段空间用于存储字符串,然后对于字符串用地址逐个用程序进行检查,将大写字母和数字分别保存,并按ASCII码值,将字母升序排序,对数字降序排序。检查过程中,对出现的第一个字母记录前驱和后继并输出。(3) 程序流程图判断是否是$ 输入字符没有结束字符,输入不停止判断数字或字母 判断字母,数字 是字母 是数字 记录前驱后继 记录数字 对字母排序 对数字排序按排序顺序输出 按排序顺序并输出前驱后继 输出数字第四次 实验报告1. 实验目的(1.1)掌握在DOS中对屏幕和键盘中断的调用方法。(1.2)掌握在BIOS中对屏幕和键盘中断的调用方法。(2)进一步掌握在BIOS中对屏幕和键盘中断的调用方法。(3.1)学习和了解汇编语言程序设计中有关中断处理的相关知识。(3.2)了解汇编语言程序设计中软中断的基本编写步骤。(4.1)中断服务子程序的编写。(4.2)BIOS和DOS中断调用。(4.3)实时时钟显示的实现。2.实验软硬件环境(1)硬件环境:IBM-PC及兼容机(2)软件环境:操作系统DOS3.0以上(3)调试环境:DEBUG.COM,MASM.EXE,LINK.EXE3.实验内容1、在屏幕上显示背景色为白色,前景色不同的16个字符“A”。2、利用视频显示调用,实现简单的动画,在屏幕上显示一个水平开动的汽车。3、(1)编写一个中断处理程序,当主程序中除法指令除数为0时,显示字符串“ERROR!DIVIDE BY ZERO!”,并将除数置为3。 (2)为了验证该中断处理程序是否有效,编写一个主程序,做10次9/BL,在屏幕上显示商,BL中的初始数据为6,每除一
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号