计算机硬件实验报告_第1页
计算机硬件实验报告_第2页
计算机硬件实验报告_第3页
计算机硬件实验报告_第4页
计算机硬件实验报告_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

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

文档简介

计算机硬件技术基础实验报告专业班级:姓名:学号:实验题目:分支程序设计日期:一、实验目的(1)掌握分支程序的结构;(2)掌握分支程序的设计,调试方法二、实验内容设有3个单字节无符号数存在BUF开始的缓冲区中,编写一个能将它们从大到小重新排序的程序。三、算法描述流程图开始开始设置数据段地址从数据段中把三个数分别存入AL,BL,CLAL>=BL?AL>=CL?交换AL与BL的值否是交换AL与CL的值否是结束结束BL>=CL?交换BBL与CL的值否把AL,BL,CL的值依次存回缓冲区是四、实验步骤1.输入源程序:DATASEGMENT ;数据段BUFDB87,234,123DATAENDSCODESEGMENT 代码段ASSUMECS:CODE,DS:DATASTART:MOVAX,DATA 段寄存器初值MOVDS,AXMOVSI,OFFSETBUFMOVAL,[SI] 把三个数取到寄存器中MOVBL,[SI+1]MOVCL,[SI+2]CMPAL,BL 排序,将最大的数送AL寄存器中JAENEXT1XCHGAL,BLNEXT1:CMPAL,CLJAENEXT2XCHGAL,CLNEXT2:CMPBL,CL 将最小数送CL寄存器中JAENEXT3XCHGBL,CLNEXT3:MOV[SI],AL 从大到小依次存回缓冲区MOV[SI+1],BLMOV[SI+2],CLMOVAH,4CHINT21H 程序结束退出CODEENDSENDSTART2.在emu8086中保存源文件,执行compile。3.执行run,运行程序。4.单步执行,查看缓冲区数据段值。五、实验结果1.执行run,运行程序,得到如下界面:2.执行singlestep,单步调试程序,执行结果:AL,BL,CL的值从大到小排列3.查看内存缓冲区三个数的初始值及结果值:六、思考题分支结构程序设计的关键在于准确地知道操作结果影响的标志位状态和正确地使用条件转移指令。本程序中,由于是无符号数的比较,所以也可以根据一个标志位来判定数的大小,你能说出是哪个标志位吗,且程序中的JAE指令该用什么指令替换呢?答:本程序中也可以根据一个标志位ZF来判断数的大小。本程序中的JAE可以用JA/JZ指令替换。七、扩展题在BUF开始的单元中有3个单字节无符号数,编写程序找出它们中的最小值并存入MIN单元。答:比较BUF中的三个的三个值,将最小值存入MIN。具体程序如下:DATASEGMENT ;数据段BUFDB87,234,123MINDB0DATAENDSCODESEGMENT 代码段ASSUMECS:CODE,DS:DATASTART:MOVAX,DATA 段寄存器初值MOVDS,AXMOVSI,OFFSETBUFMOVAL,[SI] 把三个数取到寄存器中MOVBL,[SI+1]MOVCL,[SI+2]CMPAL,BL 将最小数送AL寄存器中JBENEXT1XCHGAL,BLNEXT1:CMPAL,CLJBENEXT2XCHGAL,CLNEXT2:MOVMIN,AL 将最小值存入MIN单元中MOVAH,4CHINT21H 程序结束退出CODEENDSENDSTART编译运行获得结果如下:八、实验心得理解了汇编语言中编程的基本步骤,掌握了通过地址对数据赋值的方法。掌握汇编语言编制基本顺序结构的算法,包括地址取值和加法的算法步骤等。这个实验,使我可以在编程中认

温馨提示

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

评论

0/150

提交评论