资源描述:
《汇编语言实验子程序设计与系统调用》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、1.实验内容:编写一完整程序,该程序接受长度小于30的字符串后,将串中的小写字母变成大写后重显该串。小写字母转换成大写字母的功能以一子程序的形式实现。3.实验提示编写一个子程序,比如Uppercase,它的功能是:判断[DI]的内容是否为小写字母,如果是将其变成大写;否则原值返回。“小—大”变换处理就在0AH功能的串缓存字段进行;为使09H功能直接、方便地显示0AH功能串缓存字段的内容,需在定义将该字段处做什么改变?问题补充:stack0segmentparastack'stack'dw40hdup(?)stack0endsdata
2、segmentparaMAXLENDB30INPTLENDB?STR1DB31DUP(0)STR2DB31DUP(0);在此定义Dos功能9和0a共用的缓冲区dataendscodesegmentparaassumecs:code,ds:data;ss:stack0main:movax,datamovds,axLEADX,MAXLENMOVAH,0AHINT21HXORCX,CXMOVCL,INPTLENLEASI,STR1LEADI,STR2;①字符串输入LOP1:MOVAL,[SI]CALLUPCASE;②小写变大写子程序MOV
3、[DI],ALINCDIL6:INCSILOOPLOP1MOV[DI],'$'CALLNEWLINE;③换行LEADX,STR2;④在新行显示转换后的字符串movah,09Hint21hmovah,4chint21hNEWLINEPROCPUSHAXPUSHDXMOVDL,0DHMOVAH,02HINT21HMOVDL,0AHMOVAH,02HINT21HPOPDXPOPAXRETNEWLINEENDP另解datasegmentparaMAXLENDB30INPTLENDB?STR1DB31DUP(0)STR2DB31DUP(0);
4、在此定义Dos功能9和0a共用的缓冲区dataendscodesegmentparaassumecs:code,ds:datamain:movax,datamovds,axLEADX,MAXLENMOVAH,0AHINT21HXORCX,CXMOVCL,INPTLENLEASI,STR1LEADI,STR2;①字符串输入LOP1:MOVAL,[SI]CALLUPCASE;②小写变大写子程序MOV[DI],ALINCDIL6:INCSILOOPLOP1MOVbyteptr[DI],'$'CALLNEWLINE;③换行LEADX,STR
5、2;④在新行显示转换后的字符串movah,09Hint21hmovah,1;按任意键结束int21hmovah,4chint21hNEWLINEPROCPUSHAXPUSHDXMOVDL,0DHMOVAH,02HINT21HMOVDL,0AHMOVAH,02HINT21HPOPDXPOPAXRETNEWLINEENDPupcaseproccmpal,61hjbtjcmpal,7ahjatjsubal,20htj:retupcaseendpcodeendsendmain