资源描述:
《字符及字符串的输入输出》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验四字符及字符串的输入输出1实验目的掌握简单的DOS系统功能调用掌握在PC机上建立,汇编,连接,调试程序2实验内容内容一:字符的输入和输出从键盘读入一个小写字母,输出字母表中倒数与该字母序号相同的那个字母。程序段:CSEGSEGMENTASSUMECS:CSEGSTART:MOVAH,1INT21HMOVBL,7AHMOVCL,61HSUBBL,ALADDBL,CLMOVAL,BLMOVDL,ALMOVAH,2INT21HKEY:MOVAH,1INT16HJZKEYMOVAH,4CHINT21HCSEGENDS
2、ENDSTART实验结果截图如下:实验习题:程序段:DSEGSEGMENTSTRING1DB'Pleaseinputalowercaseletter:',0DH,0AH,'$'STRING2DB'Theinverseletteris:',0DH,0AH,'$'DSEGENDS;CSEGSEGMENTASSUMECS:CSEG,DS:DSEGSTART:MOVAX,DSEGMOVDS,AXLEADX,STRING1MOVAH,09HINT21HMOVAH,1INT21HMOVBL,7AHMOVCL,61HSUBBL
3、,ALADDBL,CLLEADX,STRING2MOVAH,09HINT21HMOVDL,BLMOVAH,2INT21HKEY:MOVAH,1INT16HJZKEYMOVAH,4CHINT21HCSEGENDSENDSTART实验截图如下:内容二:字符串的输入和输出从键盘输入一个字符串,将输入的字符串传说给STR变量,在屏幕上显示STR变量中的内容。程序段:DSEGSEGMENTKBUFDB0DH,0AHSTRDB20DUP(20H),'$'DSEGENDSCSEGSEGMENTASSUMECS:CSEG,DS:
4、DSEGSTART:MOVAX,DSEGMOVDS,AXLEADX,KBUFMOVAH,0AHINT21HMOVCX,20ADDDX,2MOVSI,DXLEADI,STRNEXT:MOVAL,[SI]MOV[DI],ALINCSIINCDILOOPNEXTMOVDX,STRMOVAH,9INT21HKEY:MOVAH,1INT16HJZKEYMOVAH,4CHINT21HCSEGENDSENDSTART运行结果截图如下:实验习题要求:程序段:DSEGSEGMENTSTRING1DB'Pleaseinputastr
5、ing:',0DH,0AH,'$'STRING2DB'Thestringyouinputis:',0DH,0AH,'$'KBUFDB0DH,0AHCRLFDB0DH,0AHSTRDB20DUP(20H),'$'DSEGENDSCSEGSEGMENTASSUMECS:CSEG,DS:DSEGSTART:MOVAX,DSEGMOVDS,AXLEADX,STRING1MOVAH,09HINT21HLEADX,KBUFMOVAH,0AHINT21HMOVCX,0ADDDX,2MOVSI,DXLEADI,STRNEXT:M
6、OVAL,[SI]MOV[DI],ALINCSIINCDILOOPNEXTLEADX,STRING2MOVAH,09HINT21HLEADX,STRMOVAH,9INT21HKEY:MOVAH,1INT16HJZKEYMOVAH,4CHINT21HCSEGENDSENDSTART实验结果如下截图:三思考题1.DOS系统功能调用的10号功能对键盘缓冲区格式地要求:第一个字节为输入字符串的最大长度,第二个字节用来存放实际输入字符串的长度,从第三个字节开始存放实际输入的字符串的ASCII码;2.DOS系统功能中的1、2
7、、9、10号功能的输入输出参数及存放的寄存器关系如下表:功能号输入参数输出参数存放的寄存器1(键盘输入单字符)输入的字符AL2(显示输出单字符)输出的字符DL9(显示字符串)输出的字符串DS:DX=字符缓冲区首址10(键盘输入字符串)输入的字符串DS:DX=字符缓冲区首址3.字符和字符串的输入输出的实现都需要调用相应功能号,并产生相应的中断,即先给AX赋值所需的功能号,然后产生21H中断,输入的单字符会存放在AL中,输出单字符前需要把字符ASCII码存放到DL中,输入输出字符串,需要先把字符缓冲区首址存放到DS:
8、DS寄存器中。