资源描述:
《微机原理、汇编与接口技术习题答案 第6章习题答案new》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、微机原理、汇编与接口技术第六章习题答案6.16.26.36.4stacksegmentstack¢stack¢dw32dup(0)stackendscodesegmentstartprocfarassumess:stack,cs:codepushdssubax,axpushaxCALLI6116;调用写入6116子程序MOVAH,2;回车换行MOVDL,0DHINT21HMOVDL,0AHINT21HCALLO6116;调用读出6116子程序retstartendp;写入6116:将键入字符的ASCII码写入6116I6116PROC
2、MOVBL,0;定义页地址码(16个地址为一页)MOVCX,128;定义页数LOP1:PUSHCXMOVDX,380H;将页地址从74LS273输出MOVAL,BLOUTDX,ALMOVCX,16;定义页内单元数MOVDX,390H;将键入数写入16个单元LOP2:MOVAH,1INT21HOUTDX,ALINCDXLOOPLOP2INCBL;换页POPCXLOOPLOP1;页数未满换页重新写入16个单元RETI6116ENDP;读出6116:将写入6116的数据读出送显示O6116PROCMOVBL,0MOVCX,128LOP3PU
3、SHCXMOVDX,390HMOVAL,BLOUTDX,ALMOVCX,16MOVDX380H;将16个单元的数据送显示LOP4:INAL,DXPUSHDXMOVDL,AL;将6116中读出的ASCII码送DLMOVAH,2;2号功能调用显示DL中的字符INT21HPOPDXINCDXLOOPLOP4INCBLPOPCXLOOPLOP3RETO6116ENDPcodeendsendstart6.5stacksegmentstack¢stack¢dw32dup(0)stackendscodesegmentstartprocfarassu
4、mess:stack,cs:codepushdssubax,axpushaxMOVAH,2;用2号功能调用输出字符,调用号送AHMOVCX,100;字符个数送计数器MOVDX,380HWAIT0:INAL,DX;从244读入TESTAL,80H;测试状态位是否为0JNZWAIT0;不为0,等待继续测试状态WAIT1:INAL,DX;状态为0,继续读入TESTAL,80H;测试状态是否为1JZWAIT1;不为1,等待继续测试状态INAL,DX;状态为1,读入数据即ASCII码ANDAL,7FH;去掉状态位MOVDL,AL;ASCII码送
5、DL,输出字符INT21HLOOPWAIT0-3;跳到给DX赋值380H的MOV指令,该指令为3字节retstartendpcodeendsendstart6.6stacksegmentstack¢stack¢dw32dup(0)stackendsdatasegmentOBUFDB4DUP(0)dataendscodesegmentbeginprocfarassumess:stack,cs:code,ds:datapushdssubax,axpushaxmovax,datamovds,axMOVBX,0FFSETOBUF+3;建立指针
6、MOVBYTEPTR[BX],¢$¢;存字符串结束符$MOVDX,380H;读入二进制数INAL,DXMOVCH,10AG:MOVAH,0;无符号数扩展为16位DIVCHADDAH,30H;转换为ASCII码DECBXMOV[BX],AH;存入输出数据区中ORAL,ALJNZAGMOVDX,BXMOVAH,9INT21Hretbeginendpcodeendsendbegin6.7用除2取余法将BCD数转换为二进制数的程序如下:stacksegmentstack¢stack¢dw32dup(0)stackendsdatasegment
7、IBUFDB4,0,4dup(0)dataendscodesegmentstartprocfarassumess:stack,cs:code,ds:datapushdssubax,axpushaxmovax,datamovds,axMOVDX,OFFSETIBUF;键入十进制数MOVAH,10INT21HMOVDX,0;将键入数以压缩BCD数形式放AX中MOVCH,IBUF+1;将键入数的个数送计数器CH中MOVCL,4MOVBX,2AGAIN1:ANDIBUF[BX],0FH;将数据区中的ASCII码转换为BCD数SHLAX,CL;
8、将BCD数左移1位ORDL,IBUF[BX];将数据区中的1位BCD放入DX的最低4位INCBXDECCHJNZAGAIN1MOVCX,8;用除2取余法将DX中的压缩BCD数转换为二进制数AGAIN2:SHRDX,1RC