资源描述:
《整理的微机原理实验.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实验一:1.在DEBUG调试程序下,在A命令下编写程序段完成两个字节BCD码相加。要求第一个BCD码存放在1000H和1001号单元。第二个BCD码存放在2000H和2001号单元。相加结果和存放在2003H、2004H、2005H单元。2.用T命令单步执行指令。3.观察有关寄存器、存储单元和FLAGS的改变。【汇编程序】实验二:[设计要求]1、在内存缓冲区内存入10个有符号的字节整数(在数据段变量定义时存入),编一程序将其中最大的数找出来存入MAX单元。2、将MAX单元的最大数显示在屏幕上。【实验步骤】1、在记事
2、本编辑好程序,保存时以asm做后缀。[设计要求]1.程序执行后,首先询问:What’syourname?2/要求用户键入回答,例如输入:lily。2.再次询问:Whichclassareyouin?3.要求用户再次键入回答,例如输入:CK09-12。4.回车换行。5.显示:Yournameislily,andyourclassisCK09-12.confirm(y/n)。6.如果回答y,退出程序;否则,返回1。[设计思路]1.程序通过Dos的9号功能调用显示字符串。1.通过调用Dos的0A号功能显示和接收输入的字符
3、串。2.单个控制键可通过调用Dos的2号功能来完成。3.接收单个字符可调用Dos的1号功能来完成。4.注意接收完字符串后,加入串结束符。程序代码DATASEGMENTMESG1DB'Whatisyourname?',0AH,0DH,'$'MESG2DB'Whichclassareyouin?',0AH,0DH,'$'MESG3DB'Yournameis:',0AH,0DH,'$'MESG4DB'andyouris:',0AH,0DH,'$'MESG5DB'confirm(y/n)?',0AH,0DH,'$'BUF1
4、DB30,?,30DUP(?)BUF2DB30,?,30DUP(?)DATAENDSSTACK1SEGMENTPARASTACKDW20HDUP(0)STACK1ENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACK1BEG:MOVAX,DATAMOVDS,AXAGAIN:MOVDX,OFFSETMESG1;显示“Whatisyourname?"MOVAH,9INT21HMOVAH,0AH;键盘回答自己名字存入BUF1缓冲区MOVDX,OFFSETBUF1INT21HMOVAH,
5、9;显示“Whichclassareyouin?"MOVDX,OFFSETMESG2INT21HMOVAH,0AH;键盘回答自己所在的班级存入BUF2缓冲区MOVDX,OFFSETBUF2INT21HMOVAH,09H;显示“Yournameis:"MOVDX,OFFSETMESG3INT21HMOVBL,BUF1+1;给BUF1缓冲区输入的字符末尾加“$”结束符MOVBH,0MOVSI,OFFSETBUF1+2MOVCL,'$'MOV[BX+SI],CLMOVAH,09H;显示键盘输入的名字MOVDX,OFFSE
6、TBUF1+2INT21HMOVAH,2;显示“,”MOVDL,','INT21HMOVAH,09H;显示“andyouris:MOVDX,OFFSETMESG4INT21HMOVBL,BUF2+1;给BUF2缓冲区输入的字符末尾加“$”结束符MOVBH,0MOVSI,OFFSETBUF2+2MOVCL,'$'MOV[BX+SI],CLMOVAH,09H;显示键盘输入的班级MOVDX,OFFSETBUF2+2INT21HMOVAH,2;显示换行MOVDL,0AHINT21HMOVAH,09H;显示“Confirm(
7、y/n)?”MOVDX,OFFSETMESG5INT21HMOVAH,01H;键盘输入单字符“y”或“n”INT21HCMPAL,'y'JNEAGAINMOVAH,4CHINT21HCODEENDSENDBEG运行结果:实验四:;统计、求和与*排序DATASEGMENTORDERDB,10DUP(?);用于存放键入的10个数BUFDB5,?,5DUP(?);用于接收键入的一个有符号两位十进制数SUMDW?;用于存放10个数的和MDB'Pleaseinput:',0AH,0DH,'$';提示信息OPT1DB'Thec
8、ountis:',0AH,0DH,'$';提示输出负数的个数信息OPT2DB'Sumis:',0AH,0DH,'$';提示输出累加和的信息DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATABEG:MOVAX,DATAMOVDS,AXMOVCX,10;循环10次输入10个数MOVBL,0;计负数个数单元MOVSI,OFFSETOR