如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
微机原理与接口技术实验物理与电子工程学院DATE\@"yyyy-M-d"2024-10-3实验三循环程序的编写与调试教案一、实验重点与难点学习数据传送和算术运算指令的用法;了解与掌握汇编程序结构与设计方法;掌握简单循环与多重循环汇编源程序的分析与设计;掌握子程序的定义与调用;掌握宏指令的使用方法。二、实验讲解1、简单循环语句基本框架图3-1简单循环流程图;sy3.asmDATASEGMENT;此处添加数据定义DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVCX,10;初值;循环体lbl1:-----DECCX;步长JNZlbl1;与终值判断MOVAH,4CHINT21HCODEENDSENDSTART2、多重循环结构;sy3.asmDATASEGMENT;此处添加数据定义DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVCH,10;lbl0:MOVCL,CH;循环体lbl1:-----DECCLJNZlbl1----DECCHJNZlbl0MOVAH,4CHINT21HCODEENDSENDSTART图3-2多重循环流程图3、子程序定义与调用:一般子程序定义在代码段内4、宏指令:一般宏定义在程序最上方(数据段之前)宏定义宏调用SHIFTMACROX,YMOVCL,YSALX,CLENDMMOVAL,[DI]ADDAL,[SI]SHIFTAL,4MOV[BX],AL三、实验内容加法指令:sy3_1.asm设有数据定义语句:DATASEGMENTDATA1DB'12732'DATA2DB'06815'NEQU$-DATA2DATAENDS试编程实现如下输出效果:要求:DATA1、DATA2字符串显示采用宏定义实现;加法部分尽量采用子程序实现;2、找最大数:sy3_2.asm设有数据定义语句:DATASEGMENTDATA1DB12,54,1,56,89,98,34,56,87,90NUMEQU$-DATA1MAXDB?DATAENDS要求:实现求最大数,并将最大数向屏幕输出;输出最大数前首先向屏幕输出十个原始数据;合理划分程序模块,尽量采用子程序实现;3、数据排序:sy3_3.asm设有数据定义语句:DATASEGMENTDATA1DB12,54,1,56,89,98,34,56,87,90NUMEQU$-DATA1DATAENDS要求:实现DATA1数据的升序排列;采用子程序实现数据的屏幕输出;三、预习要求分析与设计程序结构;采用多种方式完成实验内容的各项程序编写;四、实验报告要求1、子程序定义与调用时应注意的问题?2、根据各项实验内容要求完成程序与写出结果;3、指出实验过程中碰到的问题与解决办法,还有什么改进的地方。2.DATASEGMENTDATA1DB12,54,1,56,89,98,34,56,87,90NUMEQU$-DATA1BUFDB3DUP(?)DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVBX,OFFSETDATA1MOVCL,NUMDD:MOVAL,[BX]CALLDISPLMOVDL,''MOVAH,2INT21HINCBXLOOPDDMOVBX,OFFSETDATA1MOVCL,NUMMOVAL,[BX]P1:INCBXCMPAL,[BX]JAENEXTMOVAL,[BX]NEXT:DECCLJNZP1CALLDISPLMOVAH,4CHINT21HDISPLPROCPUSHAXPUSHBXPUSHCXLEABX,BUFMOVSI,0D1:MOVAH,0MOVCL,10DIVCLORAH,30HMOV[BX+SI],AHINCSICMPAL,0JNZD1DS1:MOVAH,02HMOVDL,[BX+SI-1]INT21HDECSIJ