您好,欢迎访问三七文档
1-1.将存放在数据段中的变量VAR1中的三个数,传送到该段中的变量VAR2中。DATASEGMENTVAR1DW35,24,0451HVAR2DW3DUP(?)DATAENDSCODESEGMENTASSUMEDS:DATA,CS:CODESTART:MOVAX,DATAMOVDS,AXLEASI,VAR1LEADI,VAR2MOVAX,[SI]MOV[DI],AXADDSI,2ADDDI,2MOVAX,[SI]MOV[DI],AXADDSI,2ADDDI,2MOVAX,[SI]MOV[DI],AXMOVAH,4CHINT21HCODEENDSENDSTART1-2.将存放在数据段STR1的字符串“ABCDEF”传送到该段的STR2储存区中,DATASEGMENTSTR1DB“ABCDEF”STR2DB6DUP(?)DATAENDSCODESEGMENTASSUMEDS:DATA,CS:CODESTART:MOVAX,DATAMOVDS,AXLEASI,STR1LEADI,STR2REST:MOVAL,[SI]MOV[DI],ALINCSIINCDIDECCXJNZRESTMOVAH,4CHINT21HCODEENDSENDSTART2-1.从键盘输入一个数字就会自动输出两个相同的数字。DSEGSEGMENTSTRBUFDB10DUP(?)DSEGENDSCSEGSEGMENTASSUMECS:CSEG,DS:DSEGSTART:MOVAX,DSEGMOVDS,AXMOVCX,10MOVDI,0REST:MOVAH,01HINT21HMOVSTRBUF[DI],ALMOVDL,ALMOVAH,02HINT21HINCDILOOPRESTMOVAH,4CHINT21HCSEGENDSENDSTART2-2.程序示例:从键盘输入10个数字,并且存入STRBUF缓冲区中,并将这十个字符显示。DSEGSEGMENTSTRBUFDB10DUP(?)DSEGENDSCSEGSEGMENTASSUMECS:CSEG,DS:DSEGSTART:MOVAX,DSEGMOVDS,AXMOVCX,10MOVDI,0RSET:MOVAH,01HINT21HMOVSTRBUF[DI],ALMOVDL,ALMOVAH,02HINT21HINCDILOOPRESTMOVAH,4CHINT21HCSEGENDSENDSTART3-1.将实验一中的寄存器间接寻址改为寄存器直接寻址。并将实验二中的寄存器相对寻址改为基址变址寻址。实验一:DATASEGMENTVAR1DW35,24,0451HVAR2DW3DUP(?)DATAENDSCODESEGMENTASSUMEDS:DATA,CS:CODESTART:MOVAX,DATAMOVDS,AXMOVDI,0MOVAX,VAR1[DI]MOVSI,0MOVVAR2[SI],AXADDSI,2ADDDI,2MOVAX,[SI]MOV[DI],AXADDSI,2ADDDI,2MOVAX,[SI]MOV[DI],AXMOVAH,4CHINT21HCODEENDSENDSTART实验二:DSEGSEGMENTSTRBUFDB10DUP(?)DSEGENDSCSEGSEGMENTASSUMECS:CSEG,DS:DSEGSTART:MOVAX,DSEGMOVDS,AXMOVCX,10MOVDI,0REST:MOVAH,01HINT21HLEABX,STRBUFMOVSI,DIMOV[BX][SI],ALMOVDL,ALMOVAH,02HINT21HINCDILOOPRESTMOVAH,4CHINT21HCSEGENDSENDSTART3-2.完成将一个一位十进制数转换成ASCⅡ码存入单元ASC中。DATASEGMENTTABDB40H,79H,24H,30H,19HDB12H,02H,78H,00H,18HDENDB6NUMDB?DATAENDSCODESEGMENTASSUMEDS:DATA,CS:CODESTART:MOVAX,DATAMOVDS,AXLEABX,TABMOVAL,DENXLATMOVNUM,ALMOVAH,4CHINT21HCODEENDSENDSTART4-1.计算(X+(Y*Z-100))/W其中:X,Y,Z,W均为十六位有符号数,其储存形式如下,XDW-13YDW30ZDW24WDW50DSEGSEGMENTXDW-13YDW30ZDW24WDW50。DSEGENDSCSEGSEGMENTASSUMECS:CSEG,DS:DSEGSTART:MOVAX,YIMULZMOVCX,AXMOVBX,DXMOVAX,XCWDADDCX,AXADCBX,DXSUBCX,100CWDSUBAX,CXSBBDX,BXIDIVWCSEGENDSENDSTART4-2.设X,Y,Z均为双精度数,它们分别存在X,X+2,Y,Y+2,Z,Z+2储存单元中,存放时高位字存放在高地址,低位字存放在低地址,编写程序实现下面表达式的计算:X+(Y-Z)=WDSEGSEGMENTXDW-13,-13YDW30,30ZDW24,24WDW50,50DSEGENDSCSEGSEGMENTASSUMECS:CSEG,DS:DSEGSTART:MOVAX,XMOVDX,X+2ADDAX,YADCDX,Y+2SUBAX,ZSBBDX,Z+2MOVW,AXMOVW+2,DXCSEGENDSENDSTART5-1.、编写完整程序,从键盘输入一个字符串STRING,同时,把字符串STRING中的‘&’字符用空格符替代.EXDATASEGMENTSTRINGDB8DUP(?)ADDRDW?DCDB'?','?'EXDATAENDSCODESEGMENTASSUMEES:EXDATA,CS:CODESTART:MOVAX,EXDATAMOVES,AXMOVCX,8MOVDI,0AGAIN:MOVAH,01HINT21HMOVSTRING[DI],ALINCDILOOPAGAINLEADI,STRINGMOVCX,8CLDMOVAL,'&'REPNZSCASBMOVAL,''XCHGAL,STRING[DI-1]MOVSI,0MOVBX,8SUBBX,CXMOVADDR,BXMOVCX,8REST:MOVAH,02HMOVAL,STRING[SI]MOVDL,ALINT21HINCSILOOPRESTADDBX,30HANDBX,00FFHMOVDL,BXMOVAH,02HINT21HMOVAH,4CHINT21HCODEENDSENDSTART5-2.编写完整程序,从键盘输入两串字符OLDS和NEWS,如果两个字符串相同显示“YES”串,不同显示“NO”串。DATASEGMENTOLDSDB8DUP(?)NEWSDB8DUP(?)DATAENDSCODESEGMENTASSUMEDS:DATA,CS:CODESTART:MOVAX,DATAMOVDS,AXMOVCX,10HCLDMOVDI,0REST1:MOVAX,01HINT21HMOVOLDS[DI],ALINCDILOOPREST1MOVDI,0MOVCX,10REST2:MOVAX,01HINT21HMOVNEWS[DI],ALINCDILOOPREST2MOVCX,8LEASI,WORDPTROLDSLEADI,WORDPTRNEWSCLDREPZCMPSBJNZBUTONGMOVSI,0CLDMOVCX,8AGAIN1:MOVAH,02HMOVDL,OLDS[SI]INT21HINCSILOOPAGAIN1JMPEDBUTONG:MOVSI,0CLDMOVCX,8AGAIN2:MOVAH,02HMOVDL,NEWS[SI]INT21HINCSILOOPAGAIN2ED:MOVAH,4CHINT21HCODEENDSENDSTART6-1.数组ARRAY存放着10个字数据,求数组的最大数和最小数,并分别存放在变量MAX和MIN中。DATASEGMENTARRAYDB1,2,13,14,5,6,7,8,11,10MAXDB?MINDB?DATAENDSCODESEGMENTASSUMEDS:DATA,CS:CODESTART:MOVAX,DATAMOVDS,AXMOVDI,1MOVAL,ARRAYMOVAH,ARRAY[DI]MOVCX,9CMPAL,AHJAEDAXIAO:MOVMIN,ALMOVBL,MINMOVMAX,AHMOVBH,MAXJMPGOONDA:MOVMAX,ALMOVAH,MAXMOVMIN,AHMOVBL,MINGOON:INCDIMOVDL,ARRAY[DI]CMPDL,MAXJAEBIGCMPDL,MINJBELITTLELOOPGOONJMPTBIG:MOVMAX,DLMOVBH,MAXLOOPGOONLITTLE:MOVMIN,DLMOVBL,DLLOOPGOONT:MOVAH,4CHINT21HCODEENDSENDSTART7-1.数组ARRAY有10个带符号数,数的类型是字,编写程序,将数组按升序进行排列,并显示排序结果。DATASEGMENTNUMDW1,2,-3,4,-5,6,7,8,9,0DATAENDSCODESEGMENTASSUMEDS:DATA,CS:CODESTART:MOVAX,DATAMOVDS,AXMOVCX,9AGAIN:MOVSI,0MOVDI,CXAGAIN1:MOVAX,NUM[SI]CMPAX,NUM[SI+2]JLECONTINUEXCHGAX,NUM[SI+2]MOVNUM[SI],AXCONTINUE:ADDSI,2LOOPAGAIN1MOVCX,DILOOPAGAINMOVAH,4CHINT21HCODEENDSENDSTART8-1统计学生成绩,设有20个学生成绩,是编写程序分别统计。DATASEGMENTWEDB45,65,67,85,84,93,49,96,100,74DB75,85,82,58,90,100,75,85,90,91C0DB0C1DB0C2DB0C3DB0C4DB0C5DB0DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVSI,0MOVCX,20AS:MOVAL,WE[SI]CMPAL,60JBS1CMPAL,70JBS2CMPAL,80JBS3CMPAL,90JBS4CMPAL,100JBS5INCC0JMPEXITS1:INCC1JMPEXITS2:INCC2JMPEXITS3:INCC3JMPEXITS4:INCC4JMPEXITS5:INCC5JMPEXITEXIT:INCSILOOPASMOVAH,4CHINT21HCODEENDSENDSTART8-2显示月份,要求根据用户键入的月份数终端上显示该月的英文缩写。DATASEGMENTJANDB'JAN$'FEBDB'FEB$'MARDB'MAR$'APRDB'APR$'MAYDB'MAY$'JUNDB'JUN$'JULDB'JUL$'AUGDB'AUG$'SEPDB'SEP$'OCTDB'OCT$'NOVDB'NOV$'DEC1DB'DEC$'DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVCX,5A:MOVAH,01HINT21HSUBAL,30HCMPAL,1JZS1CMPAL,2JZS2CMPAL,3JZS3CMPAL,4JZS4CMPAL,5JZS5CMPAL,6JZP6CMPAL,7JZP5CMPAL,8JZP2CMPAL,9JZP1MOVBX,10MOVAX,0B:PUSHAXCMPAL,0DHJZEXITSUBAL,30HMOVCL,ALMOVCH,0POPAXMULBXADDAX,CXJMPBCMPAL,10JZP7CMPAL
本文标题:汇编实验集锦
链接地址:https://www.777doc.com/doc-4752023 .html