计算机原理实验报告 汇编语言部分.doc_第1页
计算机原理实验报告 汇编语言部分.doc_第2页
计算机原理实验报告 汇编语言部分.doc_第3页
计算机原理实验报告 汇编语言部分.doc_第4页
计算机原理实验报告 汇编语言部分.doc_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

XXXX大学本科实验报告课程名称: 计算机原理实验 学院(系): 电子信息与电气工程学部 专 业: 自动化 班 级: XXX 学 号: XXX 学生姓名: XX 2010 年 12 月 30日实验项目列表序号实验项目名称页码学时成 绩指导教师预习操作结果1DEBUG程序的使用汇编语言程序设计的上机过程2数据传送操作实验数据传送运算类程序设计编程训练3数值运算操作实验两个数相乘排序程序设计编程训练4数据处理实验DOS功能调用编程训练56789总计学分:总成绩:注意:独立完成预习报告和实验操作。 专业: 自动化 班级: XXX 学 号: 2XX 学生签字: XX 联系电话: XXX 计算机原理实验报告 填写要求根据大连理工大学本科实验报告规范(试行)提出的各项要求,现规定计算机原理实验报告填写要求如下:一、每次实验前必须完成预习报告。注意:预习报告中的回答问题必须手写,且由学生本人签名。第一次实验时,课前将预习报告交给实验老师。每次实验时,课前提交预习报告,没有完成预习报告者不得进行实验。二、每一个实验项目均须撰写一份实验报告,A4纸打印出来,最后按顺序装订、上交。三、实验报告内容:1、实验目的和要求:写明实验的目的和任务要求;2、实验原理和内容:与实验内容相关的算法描述、程序的结构类型,与实验相关的接口模块功能描述。3、算法流程:使用流程图对算法进行描述。流程图应当逻辑正确、简单清晰。流程图可以采用打印或手工绘制。4、使用protel等工具绘制实验系统电路图(也可手工绘制)。系统电路图应正确、工整。5、程序清单:程序清单一律采用打印的方式,源程序文件的格式要整齐、规范(语句的标号、指令及注释应在不同列中)。在程序的关键语句上加注释。相关子程序要在注视中进行功能说明;6、实验结果与分析:明确地写出最后结果(是否实现设计要求等),对实验中所遇到的问题以及解决的方法加以描述;7、实验体会、建议:通过实验所体会的收获。针对实验内容、教学方法、考核方法等提出需要解决的问题,提出改进建议; 8、全部文字叙述内容要求简明扼要,思路清楚、用词规范;9、主要仪器设备:记录主要仪器的名称、型号(包括实验运行软件名称)等 10、实验时间:报告中应标明实验的日期(年、月、日;星期;组号)。四、要求实验报告字迹工整,文字简练,数据齐全,图表规范,计算正确,分析充分、具体、定量。五 、对抄袭“实验预习报告”和“实验报告”或编造原始数据的行为,一经发现以零分处理,并按XXXX大学学生违记处分规定第二十六条给予处分。大连理工大学实验报告(模板)实验时间: 年 月 日 星期 时间 : : : 实验室(房间号): 综420 实验台号码: 21# 班级: 自0802 姓名: 张萌 指导教师签字: 成绩: 实验 一 运算类程序设计编程训练 一、实验目的和要求1、掌握运算类指令编程及调试方法2、掌握运算类指令对各状态标志位的影响及控制条件转移的使用 本练习根据一个数N的平方等于1至2N-1这N个奇数的和的原理编程,达到开平方的目的 二、实验算法算法:N个自然数中的奇数之和等于N的平方。- 14 -要做S的平方根,那么就可以从S数中逐次减去自然数中的奇数1、3、5、7、知道结果为零,然后统计自然奇数的个数,它就是S数的平方根。 寄存器cl为计数器,也即所求的平方根 寄存器bl存储奇数之和。三、实验流程图开始输入一个数据pbl=1cl=1al-pal-al-blbl=bl+2cl=cl+1alblYNcl-cl+30hdl-cl输出dl 结束四、程序清单.model small.stack 200h.data p db 36;开平方的数.code start:mov ax,data mov ds,ax mov al,p mov bl,1 mov cl,1;从奇数1开始 loop1: sub al,bl;开平方的数与奇数之和的差 cmp al,0;直到差为0为止 je next add bl,2;加二,得到下一个奇数 inc cl jmp loop1;无条件跳转至loop1 next: mov ah,2 add cl,30h mov dl,cl int 21h mov ax,4c00h;返回操作系统 int 21h end start五、实验结果与分析(是否达到设计要求、出现的主要问题及解决方法)由程序运行结果知,本程序成功实现了对于一个数据进行减奇数法开平方的运算。本程序中,输入的数据是十进制数36,程序运行结果为6。六、实验体会和建议学会了调试方法,所使用的调试工具是DOS环境下的TASM.exe,TLINK.exe,TD.exe/DEBUG,有利于以后汇编语言编程的学习。实验 二 排序程序设计编程训练 一、实验目的和要求1、利用分支、循环、子程序调用等基本程序结构实现排序程序2、掌握综合程序的设计、编制及调试方法 本练习要求用起泡法,对数据按照递增关系排序二、实验算法在数据区中存放一个数组,数据个数就是数据缓冲区的长度,要求用气泡法,对该数据区中的数据按递增(或递减)关系排序。1、 从最后一个数(或第一个数)开始,依次把相邻的两个数进行比较,即第N个数与第N-1个数比较,第N-1个数与第N-2个数比较若第N-1个数大于第N个数,则两者交换,否则不交换,直到N个数的相邻两个数都比较完为止。此时,N个数中的最小数将被排在N个数的最前列。2、 对剩下的N-1个数重复第一步,找到N-1个数中的最小数。3、 重复第2步,直到N个数全部排好序为止。三、实验流程图开始cx=9bx=0cx进栈al-numbxah-numbx+1al不小于ahN交换al与ahYbx-bx+1Ncx=0Ycx出栈,即cx-9LOOP loop2返回执行loop2Ncx=0Y返回DOS结束四、程序清单 .model small.stack 200h.data num db 2,16,9,36,55,3,45,-6,8,-5 ;10个数据.code start: mov ax,data mov ds,ax mov cx,10-1 loop2: mov bx,0 push cx ;cx进栈 loop1: mov al,numbx mov ah,numbx+1 cmp al,ah jnl next1 ;条件判断 mov numbx,ah mov numbx+1,al ;交换ah和al next1: inc bx LOOP loop1 pop cx ;cx出栈 LOOP loop2 mov ax,4c00h int 21h ;返回操作系统 end start 五、实验结果与分析(是否达到设计要求、出现的主要问题及解决方法)本程序实现了数据从大到小的排列。六、实验体会和建议 通过老师的指导,我学会了如何从CPU的DS段查看数据存放,查看各寄存器中的变化。了解到多层循环时,要注意入栈与出栈,否则会出现错误。实验 三 DOS功能调用编程训练 一、实验目的和要求1、熟悉汇编语言程序的使用2、掌握十进制的运算、设计显示程序运行结果的格式3、熟练掌握DOS功能调用二、实验算法编写程序:求30个同学成绩的平均分数,并以十进制数值表示,将结果显示在屏幕上。显示格式要求如下:第一行显示:THE TWENTY SCORES ARE:以分号分隔的30个同学的分数;第二行显示:AVERAGE SCORES IS=求得的平均分数。要求:将求出的二进制表示的分数,转换成十进制表示的平均分数,转换成十进制表示的算法是:平均分数二进制值的低4位若大于9,则加6;对于高四位,将其值乘以16再与低4位十进制调整的结果相加,即得到最终的结果。乘法可以用多次加法来实现。值得注意的是:每次相加后,必须用DAA指令调整。1、 显示字符串信息用DOS功能调用INT 21H,功能号为09H。2、 显示平均数结果时,用DOS功能调用INT 21H,功能号为02H。每位数必须转换为相应的ASCII码。三、实验流程图显示字符串1开始cx-20bx-0调用INT21H,功能号为02H的子程序,先输出商,再输出余数,最后输出分号bx自加2Ncx=0Ybx自加2cx=0circle1ax-bufbx除以10以后,商在al,余数在ahcx-count; bx-0; ax9使al与0fh与,得到低4位放入dl中ah置0,ax进栈YN四、程序清单.model small.stack 200h.databuf dw 12,22,32,42,25,26,27,18,19,10,16,12,13,14,15 dw 16,17,18,19,20,21,22,23,24,25,26,27,28,29,30count dw ($-buf)/2 str1 db The twenty scores are:$ str2 db 0dh,0ah,Average scores is:$.code start: mov ax,data mov ds,ax lea dx,str1;输出字符串1 mov ah,9 int 21h ;输出buf单元中的数据 mov cx,countcircle1:mov ax,bufbx mov dh,10 div dh push ax add al,30h mov dl,al ;输出商 mov ah,2 int 21h pop ax add ah,30h mov dl,ah ;输出余数 mov ah,2 int 21h mov dl,3Bh;输出分号 mov ah,2 int 21h add bx,2 loop circle1 ;将buf单元中的数据求和放到ax中 mov cx,count mov bx,0 mov ax,bufbxcircle2:add ax,bufbx+2 add bx,2 loop circle2 push ax lea dx,str2;输出字符串2 mov ah,9 int 21h pop ax mov cl,30 div cl;将商放在al中 mov ah,0 push ax and al,0fh mov dl,al cmp al,9 ja next jbe next1next: add al,06hnext1:pop ax mov cl,4 rol al,cl mov cl,4circle3:add al,al daa loop circle3 add ax,dx daa push ax;输出高四位 mov cl,4 rol al,cl and al,0fh add al,30h mov dl,al mov ah,2 int 21h pop ax;输出第四位 and al,0fh mo

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论