如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
明德至善博学笃行微型计算机原理实验PAGE\*MERGEFORMAT3微型计算机原理实验PAGE\*MERGEFORMAT0实验课程名称微机原理实验实验项目名称用表格形式显示字符实验指导老师学生姓名学院理学院专业电子信息科学与技术年级2008级(一)班学号实验时间2010年12月20日总成绩教师签名1.实验目的⑴熟悉堆栈指令的功能与应用。⑵掌握子程序调用的方法和应用。⑶掌握常用寄存器的使用方法和不同寄存器的使用限制。2.实验内容⑴按15*16的表格形式显示ASCII码为10H—100H的所有字符,即以行为主的顺序及ASCII码递增的次序依次显示对应的字符。每16个字符为一行,每行中的相邻两个字符之间用空白字符(ASCII码为0)隔开。3.实验准备⑴熟悉堆栈指令定义、功能及应用。⑵认真预习有关子程序调用的方法、了解入口参数及出口参数、元调用及进调用。③按正常的方法编写程序实现表格显示(15×16)ASCII的所有字符。4.实验步骤实验1用表格形式显示字符1、题目:用表格形式显示ASCII字符2、实验要求:按15*16的表格形式显示ASCII码为10H—100H的所有字符,即以行为主的顺序及ASCII码递增的次序依次显示对应的字符。每16个字符为一行,每行中的相邻两个字符之间用空白字符(ASCII码为0)隔开。3、提示:⑴显示每个字符可使用功能号为2的显示输出功能调用MOVAH,2MOVDL,10H;字符从10H开始,每显示一个DL+1产生下一个字符INT21H⑵显示空白符时DL=00H;⑶每行显示结束时需要显示回车(ASCII码为0DH)和换行(ASCII码为0AH),本行显示结束后可另起一行显示。分析:本题中可把DL初始化为10H,然后不断使其加1(用INC指令)以取得下一个字符的ASCII码。②显示空白符时,用其ASCII码0置入DL寄存器,每行结束时,用显示回车(ASC||为0DH)和换行符(ASCII为0AH)来结束本行并开始下一行。③由于逐个显示相继的ASCII字符时,需要保存并不断修改dl寄存器的内容,而显示空白、回车、换行符时也需要使用DL寄存器,为此可使用堆栈来保存相继的ASCII字符。具体用法是:在显示空白或回车,换行符前用指令。④PUSHDX把DL的内容保存到堆栈中去。在显示空白或回车,换行符后用指令,POPDX恢复DL寄存器的原始内容。用表格形式显示字符源程序代码:STACKSEGMENTPARASTACK'STACK'LENDB512DUP(?)STACKENDSCODESEGMENTASSUMECS:CODE,DS:CODE,SS:STACKSTART:MOVDL,10H;DL存放ASCII码初始值,ASCII码的初始值为10HMOVCH,000FH;行循环次数15NEXT1:MOVCL,0010H;列循环次数16,以下为列循环NEXT2:CALLDISPLAY;显示DX内的字符INCDL;DL自增,值为下一个ASCII码的十六进制值CALLBLANK;空格DECCL;列自减CMPCL,0;判断列结束?JNENEXT2;未结束,继续CALLENTER;列结束回车换行DECCH;行自减CMPCH,0;判断行结束?JNENEXT1;未结束,下一行MOVAH,4CH;结束程序INT21HDISPLAYPROC;显示字符过程的子程序,入口参数为DLMOVAH,02HINT21HRETDISPLAYENDPBLANKPROC;显示空格过程PUSHDX;压栈保护DX中的ASCII值MOVDL,20H;调用子程序,显示空格CALLDISPLAYPOPDXRETBLANKENDPENTERPROC;回车换行过程PUSHDXMOVDL,0DHCALLDISPLAY;调用子程序,显示回车MOVDL,0AHCALLDISPLAY;调用子程序,显示换行POPDXRETENTERENDPCODEENDSENDSTART编译源程序:连接成已.EXE为扩展名的目标文件:运行程序,验证程序设计是否符合设计要求:又上图运行结果可知,程序设计正确。5.实验报告总结本实验程序设计中需要多次显示回车,空格,换行字符,所以在程序设计中如果不使用模块设计方法,将会使程序非常冗长。所以本实验在编写程序时把