资源描述:
《微机实验 个多位十进制数相加的实验.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实验2两个多位十进制数相加的实验一、实验目的1.学习数据传送和算术运算指令的用法。2.熟悉在PC机上建立、汇编、连接、调试和运行8088汇编语言程序的过程。二、实验内容将两个多位十进制数相加,要求被加数均以ASCII码形式各自顺序存放在以DATA1和DATA2为首的5个内存单元中(低位在前),结果送回DATA1处。附加题要求将加法过程显示与屏幕。同学可以自己设计程序也可对代码段进行填空以及问答来完成程序。(附加题范例在第二页);该程序完成54321+54321=108642的多位十进制加法运算,和存放与DAT3DATASEGMENTDAT1DB'12345';问一个多位
2、十进制数各位是以何种顺序存放于内存的。DAT2DB'12345';个位存放于高地址或者为低地址。DAT3DB6DUP(0)DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXLEABX,DAT1LEASI,DAT2LEADI,DAT3MOVCX,5CLC;为什么要加入这条指令L1:MOVAL[BX]ADCAL,[SI];BYTEPTR[BX]+[SI]+CFàAL例‘1’+‘1’+0=62HàAL__________;填空________________;AL=02HPUSHF;为什么要加入pu
3、shfpopf这两条指令ORAL,30H;为什么要加入这条指令POPFMOV[DI],AL__________;填空__________________;填空__________________;填空________LOOPL1JNCL2MOV[DI],31HINCDIhltCODEENDSENDSTART三、程序框图(见下页)显示被加数和加数被加数和加数以ASCII码表示的数字串形式转化为由十六进制表示的数字串形式计数值5送CX清除最低位进位执行ADC带进位相加AAA调整结果送被加数区调整偏移量NCX-1=0?Y十六进制的结果转化为ASCII码表示的数字串显示结果结束
4、附加题1范例;该程序完成54321+54321=108642的多位十进制加法运算,和存放与DAT3并显示于屏幕DATASEGMENTDAT1DB'12345';问一个多位十进制数各位是以何种顺序存放于内存的。DAT2DB'12345'DAT3DB6DUP(0)DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXLEABX,DAT1LEASI,DAT2LEADI,DAT3MOVCX,5CLCL1:MOVAL[BX]ADCAL,[SI];填空________________PUSHF;为什么要加入p
5、ushfpopf这两条指令ORAL,30H;为什么要加入这条指令POPFMOV[DI],AL;填空________;填空________;填空________LOOPL1JNCL2MOV[DI],01H;下面是附加显示L2:ADD[DI],30HINCDIPUSHDI;分析此时DI指向和的哪一位?PUSHSIPUSHBXPOPSIDECSI;为什么要减一MOVCX,5CALLDISPMOVDL,'+'MOVAH,2INT21H;填空_________DECSIMOVCX,5CALLDISPMOVDL,'='MOVAH,2INT21HPOPSIDECSIMOVCX,;__
6、____填空CALLDISPHLT;disp入口参数SI为显示字符串的末偏移地址以及显示字符串的个数CX;DISP以倒序的方式逐个显示一个多位十进制数的DISPPROCL3:MOVDL,[SI]MOVAH,2INT21H;填空_____________LOOPL3;填空________DISPENDPCODEENDS附加题2:程序中变量如下数据段所定义,D1-D4为用ASCII字符串表示的十进制数字(说明:低地址为高的权位如DA1字符串表示一千两百三十四),完成D1-D4的累加并存入D5DATASEGMENTD1DB‘1234’D2‘DB‘2234’D3DB‘3234’
7、D4DB‘5345’D5DB5DUP(0)DATAENDS附加题3:程序中变量如下数据段所定义,D1-D4为用ASCII字符串表示的十进制数字(说明:低地址为高的权位如DA1低地址为十位,高地址为个位),每个字符串以0DH结束。要求将D1-D4转换为数值形式存入DA1-DA4(说明:’34’十进制数字符串转换后DA4为20HDATASEGMENTD1DB‘16’,0DHD2‘DB‘123’,0DHD3DB‘2344’,0DHD4DB‘55345’,0DHDA1DW0DA2DW0DA3DW0DA4DW0DATAENDS实验3两个数相乘的实验