资源描述:
《汇编语言代码.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、汇编语言编写从键盘输入一段字符串然后逆序输出DATASEGMENTDB512DUP('$');定义可输入的字符个数BUFDB'$'CRLFDB0DH,0AH,24H;回车换行符DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVBX,OFFSETBUF;指针指向待显示字符串尾部AGAIN:MOVAH,01;输入字符INT21HCMPAL,0DH;是回车吗JEDISP;是,转显示DECBX;指针减1MOV[BX],AL;存入输入的字符JMPAGAIN;继续输入DISP:MOVAH,09;显示M
2、OVDX,OFFSETCRLF;回车换行INT21HMOVDX,BX;定位待显示字符串首地址MOVAH,09INT21H;显示MOVAH,4CH;DOS返回INT21HCODEENDSENDSTART;本程序通过编译,运行正确CodeSegmentAssumeCS:Code,DS:Code;-----------------------------------------;功能:显示指定地址(Str_Addr)的字符串;入口:;Str_Addr=字符串地址(要求在数据段);用法:OutputStr_Addr;用法举例:OutputPromptStrOutputMACROS
3、tr_Addrleadx,Str_Addrmovah,9int21hEndM;-----------------------------------------;功能:输出一个字符;入口:dl=要显示的字符Enter_ChrprocNearpushaxmovah,02hint21hpopaxretEnter_Chrendp;-----------------------------------------;功能:输出回车换行Enter_CTLFprocNearpushaxpushdxmovah,02hmovdl,0dhint21hmovdl,0ahint21hpopdxp
4、opaxretEnter_CTLFendp;-----------------------------------------Prompt_Strdb'Pleaseinputastring:$';输入字符串提示信息Start:pushcspopdspushcspopes;使数据段、附加段与代码段同段OutputPrompt_Str;提示输入字符串leadx,Buffermovah,0ah;从键盘接受一串字符int21hCALLEnter_CTLF;输出一个回车、换行CALLEnter_CTLF;输出一个回车、换行cldleasi,Buffer[1];实际输入的字符个数地址
5、movcl,[si];读入实际输入的字符个数testcl,0ffhjzExit_Proc;直接回车,没有输入任何字符,结束程序,返回操作系统xorch,ch;cx=实际输入的字符个数addsi,cx;字符串尾部地址std;置方向标志,使变址寄存器自动减量Disp_String:lodsbmovdl,alcallEnter_Chr;显示一个字符loopDisp_StringExit_Proc:movah,4ch;结束程序int21hBufferdb100,?CodeENDSENDStart;编译到此结束从键盘输入一字符串(不超过255个字符)以相反顺序输出datasegme
6、ntadb?dup(?)dataendsesegsegmentbdb?dup(?)esegendscodesegmentassumecs:codestart:movah,0ahint21hmovbl,alleasi,aleadi,badddi,n-1movcx,nmove:cldlodsbstdstosbloopmovemovah,4chint21hcodeendsendstart解答:datasegment;adb?dup(?)adb255,0,255dup(?)dataendsesegsegment;bdb?dup(?)bdb255dup(?)esegendscode
7、segment;assumecs:codeassumecs:code,ds:data,es:esegstart:movax,data;新增movds,ax;movax,eseg;moves,ax;movdx,offseta;学习0AH号DOS功能调用movah,0ahint21h;movbl,almovch,0;movcl,a+1;;leasi,aleasi,a+2leadi,b;adddi,n-1adddi,cxdecdi;movcx,nmove:cldlodsbstdstosbloopmovemovah,4chint21h