资源描述:
《微机实验:两个多位十进制数相加的实验.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验一、两个多位十进制数相加的实验1、实验目的(1).学习数据传送和算术运算指令的用法。(2).熟悉在PC机上建立、汇编、链接、调试和运行8088汇编语言程序的过程。2、实验内容将两个多位十进制数相加。要求被加数均以ASCII码形式各自顺序存放在以DATAl和DATA2为首的5个内存单元中(低位在前),结果送回DATAl处。3、程序框图4、参考程序:DATASSEGMENTDAT1DB5DUP(0)DAT2DB5DUP(0)DAT3DB6DUP(0)JHDB'+','$'HXDB'_______',
2、'$';此处输入数据段代码DATASENDSSTACKSSEGMENT;此处输入堆栈段代码STACKSENDSCODESSEGMENTASSUMECS:CODES,DS:DATAS,SS:STACKSSTART:MOVAX,DATASMOVDS,AXMOVDL,20H;输入空格用以竖式对齐MOVAH,02HINT21HLEABX,DAT1MOVCX,5INADD1:MOVAH,01HINT21HMOV[BX],ALINCBXLOOPINADD1MOVDL,0AH;换行MOVAH,02HINT21HM
3、OVDL,0DHMOVAH,02HINT21HLEADX,JH;输出加号MOVAH,09HINT21HLEASI,DAT2MOVCX,5INADD2:MOVAH,01HINT21HMOV[SI],ALINCSILOOPINADD2MOVDL,0AH;换行MOVAH,02HINT21HMOVDL,0DHMOVAH,02HINT21HLEADX,HX;输出横线MOVAH,09HINT21HMOVDL,0AH;换行MOVAH,02HINT21HMOVDL,0DHMOVAH,02HINT21H;以下计算结果
4、LEABX,DAT1+4LEASI,DAT2+4LEADI,DAT3+5MOVCX,5CLC;清除CF标志位L1:MOVAL,[BX]ADCAL,[SI]AAAPUSHFORAL,30H;将AL转换为ASCII码POPFMOV[DI],ALDECDIDECBXDECSILOOPL1MOVCL,6;6位循环6次JNCOUT1;没有进位直接输出MOVbyteptr[DI],31H;有进位给最高位赋1;以下输出显示OUT1:MOVDL,[DI]INCDIMOVAH,02HINT21HLOOPOUT1MOV
5、AH,4CHINT21HCODESENDSENDSTART