程序设计仿真练习题-答案_第1页
程序设计仿真练习题-答案_第2页
程序设计仿真练习题-答案_第3页
程序设计仿真练习题-答案_第4页
程序设计仿真练习题-答案_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

8086程序设计仿真练习题数组STRAING中存放着多个8位有符号数,以“$”结束,要求分成正数组和负数组分别存放,并统计两个数组的个数,分别存于正、负数组的第一个字节。DATASEGMENTSTARINGDB25H,0BDH,02H,80H,7FH,94H,65H,0A5H,$DA2DB20DUP(0);正数DA3DB20DUP(0);负数DA4DB8DATAENDSCODESEGMENTASSUMECS:CODEDS:DATASTART:MOVAX,DATAMOVDS,AXLEABX,STARINGLEASI,DA2LEADI,DA3MOVCX,0MOVCL,DA4LOP1:CMP[BX],80HJBLOP2INC[DA3]MOVAL,[BX]INCDIMOV[DI],ALJMPLOP3LOP2:INC[DA2]MOVAL,[BX]INCSIMOV[SI],ALLOP3:INCBXLOOPLOP1CODEENDSENDSTART将数据块DAT1中的20个单字节数,复制到DAT2中,并从中检索与2EH相同的数,将此单元的数换成空格符。如有多个与2EH相同的数,要求统计出个数,存在寄存器DL中。DATASEGMENTDAT1DB25H,0BDH,02H,80H,7FH,94H,65H,0A5H,00H,31HDB2EH,33H,2EH,76H,78H,98H,23H,7AH,98H,38HDAT2DB20DUP(0)DAT3DB20DATAENDSCODESEGMENTASSUMECS:CODEDS:DATASTART:MOVAX,DATAMOVDS,AXLEASI,DAT1LEADI,DAT2MOVDX,0MOVCX,0MOVCL,DAT3LOP1:MOVAL,[SI]MOV[DI],ALCMP[DI],2EHJZLOP2JMPLOP3LOP2:MOV[DI],0INCDLLOP3:INCSIINCDILOOPLOP1CODEENDSENDSTART将变量VAR1中的16位二进制数取反,并统计原数中1的个数,将个数存在变量VAR2中。DATASEGMENTVAR1DW3425HVAR2DB0DATAENDSCODESEGMENTASSUMECS:CODEDS:DATASTART:MOVAX,DATAMOVDS,AXMOVAX,VAR1LEABX,VAR2MOVCX,0MOVDX,0MOVCL,16CLCLOP1:ROLAX,1JNCLOP2INCDLLOP2:LOOPLOP1NOTAXMOVVAR1,AXMOV[BX],DLCODEENDSENDSTART找出数据块DAT1中的15个8位有符号数中,最大的偶数和最小的奇数,分别存在变量MAX和MIN中。DATASEGMENTDAT1DB81H,8DH,78H,2AH,27H,034H,80H,90H,24HDB43H,7FH,7EH,23H,76H,54HDAT2EQU15MAXDB0MINDB0DATAENDSCODESEGMENTASSUMECS:CODEDS:DATASTART:MOVAX,DATAMOVDS,AXLEASI,DAT1MOVCX,0MOVAX,0MOVCL,DAT2LOP1:MOVAL,[SI]ANDAL,01HJZOUSHULEADI,MINMOVDL,[DI]MOVAL,[SI]CMPAL,DLJGLOP2MOV[DI],ALJMPLOP2OUSHU:LEADI,MAXMOVDL,[DI]MOVAL,[SI]CMPAL,DLJLLOP2MOV[DI],ALLOP2:INCSILOOPLOP1CODEENDSENDSTART将变量VAR1中的16位二进制数,变成4个ASCⅡ码,存在VAR2开始的4内存单元中。DATASEGMENTVAR1DW23E5HVAR2DB4DUP(0)NUMEQU4DATAENDSCODESEGMENTASSUMECS:CODEDS:DATASTART:MOVAX,DATAMOVDS,AXMOVDX,VAR1LEASI,VAR2MOVCX,0MOVCL,NUMLOP1:MOVAX,DXANDAL,0FHORAL,30HCMPAL,3AHJBLOP2ADDAL,07HLOP2:MOV[SI],ALINCSIRORDX,4LOOPLOP1CODEENDSENDSTART6、将数据块DAT1中的多个8位有符号数,数据块以0结尾(数据块不包括0),按照从小到大的顺序排列DATASEGMENTDAT1DB34H,0A2H,76H,80H,01H,02H,08H,04H,00HDATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXLEABX,DAT1XORCX,CXLOP1:MOVAL,[BX]INCBXINCCLCMPAL,0JNZLOP1DECCXDECCXXORBX,BXLOP2:MOVDX,CXLOP3:MOVAL,DAT1[BX]CMPAL,DAT1[BX+1]JLCONTXCHGAL,DAT1[BX+1]MOVDAT1[BX],ALCONT:INCBXLOOPLOP3MOVCX,DXMOVBX,0LOOPLOP2CODEENDSENDSTART7、内存单元X中有一个8位有符号数,按下式计算Y值,并将Y值存于其后的单元(注意数据的大小)。编写完整的汇编语言程序。DATASEGMENTXDB0F6H;-10YDW0DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVAL,XMOVAH,0CMPAL,0;用AL不可用AXJLLOP1JLELOP2MOVBX,AXMOVCL,2SHLBX,CLADDBX,AXMOVAX,BXSUBAX,30JMPLOP3LOP1:MOVBL,2IMULBLADDAX,25JMPLOP3LOP2:MOVAX,0LOP3:MOVY,AXHLTCODEENDSENDSTART8、数组BUF1中有10个BCD码,求出其累加和及平均值,分别存在变量SUM和AVER中。DATASEGMENTBUF1DB34H,12H,76H,80H,01H,02H,08H,04H,78H,56HSUMDW0AVERDW0DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXLEABX,BUF1MOVCX,10CLCMOVAX,0LOP1:ADDAL,[BX]DAAJNCLOP2INCAHLOP2:INCBXLOOPLOP1LEASI,SUMMOV[SI],AXSHRAX,4LEASI,AVERMOV[SI],AXCODEENDSENDSTART9、数据块X中有8个8位无符号数,分别为记为X1、X2、…..X8,试计算Y=X1+X2+X3-X4-X5+X6-X7+X8的值,并存在内存中。DATASEGMENTXDB04H,01H,01H,01H,01H,20H,01H,01HYDW0DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXLEABX,XMOVCX,8MOVDL,11100101BCLCMOVAX,0LOP1:SHLDL,1JNCLOP2ADDAL,[BX]JNCJWEI1INCAHJWEI1:INCBXLOOPLOP1JMPLOP3LOP2:SUBAL,[BX]JNCJWEI2DECAHJWEI2:INCBXLOOPLOP1LOP3:LEASI,YMOV[SI],AXCODEENDSENDSTART10、利用调用子程序的方法,将不大于9999的一个16位二进制数转换成十进制数,以组合BCD码的形式存在2个内存单元中。DATASEGMENTXDW0A0AHYDB2DUP(0)DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVAX,0CALLCHULICHULIPROCNEARPUSHAXPUSH

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论