微机软件实验习题与答案(完整版).doc

微机软件实验习题与答案(完整版).doc

ID:56777560

大小:436.00 KB

页数:39页

时间:2020-07-09

微机软件实验习题与答案(完整版).doc_第1页
微机软件实验习题与答案(完整版).doc_第2页
微机软件实验习题与答案(完整版).doc_第3页
微机软件实验习题与答案(完整版).doc_第4页
微机软件实验习题与答案(完整版).doc_第5页
资源描述:

《微机软件实验习题与答案(完整版).doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、微机原理软件实验实验1两个多位十进制数相加的实验实验内容:将两个多位十进制数相加,要求加数和被加数均以ASCII码形式各自顺序存放以DATA1和DATA2为首的5个内存单元中(低位在前),结果送回DATA1处。完整代码如下:DATASSEGMENT;此处输入数据段代码STRING1DB'inputthefirstnumber:','$'STRING2DB13,10,'inputthesecondnumber:','$'STRING3DB13,10,'theoutputis:','$'DATA1DB6DUP(00H),'$'DATA2DB6D

2、UP(00H),'$'DATASENDSSTACKSSEGMENT;此处输入堆栈段代码STACKSENDSCODESSEGMENTASSUMECS:CODES,DS:DATAS,SS:STACKSSTART:MOVAX,DATASMOVDS,AX;此处输入代码段代码LEASI,DATA1LEADI,DATA2L0:LEADX,STRING1;打印字符串STRING1MOVAH,09INT21HINPUT1:;输入第一个数MOVAH,01;输入字符至AL中INT21HCMPAL,'/'JEL1MOV[SI],ALINCSIJMPINPUT1L

3、1:LEADX,STRING2;打印字符串STRING2MOVAH,09INT21HINPUT2:;输入第二个数MOVAH,01;输入字符至ALINT21HCMPAL,'/'JEL2MOV[DI],ALINCDIJMPINPUT2L2:MOVSI,0CLC;清空进位标志位CFMOVCX,6PLUSE:;相加;SUBDATA1[SI],30H;SUBDATA2[SI],30H;这里不能使用这两条指令,因为如果DATA1[5]=00H,00H-30H需要借位相减,使CF=1MOVAL,DATA1[SI]ADCAL,DATA2[SI]AAA;加法

4、调整指令,可使两个ASCII数直接相加MOVDATA1[SI],AL;和赋给DATA1[SI]INCSILOOPPLUSEL3:LEADX,STRING3;打印字符串STRING3MOVAH,09INT21HMOVCX,6MOVSI,6SHOW:DECSICMPDATA1[SI],00HJESHOWSHOW2:MOVDL,DATA1[SI]ADDDL,30HMOVAH,02INT21HCMPSI,0JEL4DECSIJMPSHOW2L4:MOVAH,4CHINT21HCODESENDSENDSTART运行结果如下:输入为低位在前,即输入12

5、34和99999相加实际上是4321和99999相加(即:4321+99999=104320)实验2两个数相乘的实验(无符号数相乘)实验内容:实现十进制数的乘法。要求被乘数和乘数均以ASCII码形式各自顺序存放在内存中,乘积在屏幕上显示出来。完整代码如下:DATASSEGMENT;此处输入数据段代码STRING1DB'theoutputis:','$'DATA1DB31H,32H,33HDATA2DB35H,36HDATASENDSSTACKSSEGMENT;此处输入堆栈段代码STACKSENDSCODESSEGMENTASSUMECS:C

6、ODES,DS:DATAS,SS:STACKSSTART:MOVAX,DATASMOVDS,AX;此处输入代码段代码MOVDL,10MOVAL,DATA1[0];AL=31HSUBAL,30H;AL=01HMULDL;乘10;AL=10ADDAL,DATA1[1];AL=10+32HSUBAL,30H;AL=10+32H-30H=12MULDL;AL=120ADDAL,DATA1[2];AL=120+33HSUBAL,30H;AL=120+33H-30H=123MOVBL,AL;BL=AL;MOVAL,DATA2[0];AL=35HSUBA

7、L,30H;AL=5MULDL;乘10;AL=50ADDAL,DATA2[1];AL=50+36HSUBAL,30H;AL=50+36H-30H=56MULBL;AX=123x56=6888SUBDX,DX;DX清零MOVBX,1000DIVBX;(DX,AX)/1000,商6在AX中,余数888在DX中PUSHDXMOVDL,ALADDDL,30HMOVAH,02;打印最高位6INT21HPOPDXMOVBL,100MOVAX,DX;888赋给AXDIVBL;AX/100,商放在AL中,余数88放在AH中MOVDL,ALMOVCL,AH;

8、!!!这里千万不能把AH直接赋给AL,因为经过INT21H指令后AL,AH会改变ADDDL,30HMOVAH,02;打印第二位INT21HMOVBL,10MOVAL,CLSUBA

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。