8086汇编语言程序设计_第1页
8086汇编语言程序设计_第2页
8086汇编语言程序设计_第3页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

1一、实验目的与要求.熟悉汇编语言运行、调试环境及方法。.掌握简单汇编语言程序的设计方法。.熟悉调试工具DEBUG,并运用DEBUG工具调试程序。二、实验内容根据下列要求,编写汇编源程序,汇编连接汇编源程序,并利用DEBUG序,验证程序的正确性。.X、YR、W8位带符号数字节单元的地址,Z16地址。试编写汇编程序,完成Z((WX)5Y)(R2)o.试编写一个程序,测试某数是否是奇数。如该数是奇数,则把DL01,00三、实验报告要求.程序算法流程图。.源程序清单。.程序运行结果。.调试过程中遇到的问题和解决的方法。

调试程实验2 分支及循环程序设计一、实验目的与要求.熟悉汇编语言运行、调试环境及方法。.掌握分支程序和循环程序的设计方法。.熟悉调试工具DEBUG,并运用DEBUG工具调试程序。二、实验内容根据下列要求,编写汇编源程序,汇编连接汇编源程序,并利用DEBUG序,验证程序的正确性。.编写汇编程序,统计某存储区若干个数据中英文字母的个数,并将结果在屏幕上显示。2。(说明:本题的加密方法,同学们可以自己拟定三、实验报告要求.程序算法流程图。.源程序清单。.程序运行结果。.调试过程中遇到的问题和解决的方法。实验3 子程序程序设计一、实验目的与要求.熟悉汇编语言运行、调试环境及方法。.掌握子程序的设计方法。3,熟悉调试工具DEBUG,并运用DEBUG工具调试程序。二、实验内容根据下列要求,编写汇编源程序,并利用DEBUG性。.编程以十进制形式和十六进制形式显示AX的内容,并把两个显示功能分别封装dispDECdispHEX。.设在以EXAMSCORE为首地址的数据缓冲区依次存放某班10名同学5门功课的成绩,现要统计各位同学的总分,并将总分放在该学生单科成绩后的单元, 调用第1个程序封装好的子程序,以十进制方式显示统计情况,显示格式自行设计。请编程完成此功能。数据缓冲区参考数据定义如下:EXAMSCOREDB01;学号DB89,76,54,77,99;单科成绩DW?;该学生的总分DB02;学号DB79,88,64,97,92;单科成绩DW?;该学生的总分三、实验报告要求.程序算法流程图。.源程序清单。.程序运行结果。.调试过程中遇到的问题和解决的方法。实验4 综合程序设计一、实验目的与要求.熟悉汇编语言运行、调试环境及方法。.掌握汇编语言程序的设计方法。.熟悉调试工具DEBUG,并运用DEBUG工具调试程序。二、实验内容根据下列要求,编写汇编源程序,并利用DEBUG性。1.ESCDOS。参考程序执行过程如下:month?5/MAYmonth?9/SEPmonth?.15X16ASCII10HFFH16个字符为一行,每行中的相邻两个字符之间用空白符(ASCII0)分隔。2题程序的基础上进行修改。将显示表格的行、列数由固定的1516为由用户从键盘输入。然后,按用户输入的行列值进行显示。.编写汇编程序将内存数据区保存的若干个带符号16列后,以十进制真值的形式在屏幕上显示。三、实验报告要求.程序算法流程图。.源程序清单。.程序运行结果。.调试过程中遇到的问题和解决的方法。xDB3yxDB3yDB1zdw?wdb23rdb6DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXmoval,wsubal,[x]cbwmovbl,5idivblsubal,[y]movbl,raddbl,2imulblmov[z],axMOVAH,4CHINT21HCODEENDSENDSTART1.2******************************************************************DATASEGMENTxdb63ydb?DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXmoval,[x]shrdl,1shral,1rcldl,1mov[y],dlMOVAH,4CHINT21HCODEENDSENDSTART2.1******************************************************************DATASEGMENTSTRINGDB'g3tRfdtfTR34'MESSAGEONEDB'Pleaseinputthenumberofstring(<10):$MESSAGETWODB'Thenumberofstringis:$'DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXmovah,9movdx,offsetmessageoneint21hMOVAH,1INT21HMOVBL,ALMOVDL,10MOVAH,2INT21HSUBBL,30HCBWMOVCX,BXMOVAL,0MOVBX,OFFSETSTRINGBEGIN:MOVCMPDL,'a'JBRECMPJAREINCALRE:

INCBXLOOPADDmovbl,almovah,9movdx,offsetmessagetwoint21hMOVDL,BLMOVAH,2INT21HMOVINT21HCODEENDSENDSTART2.2******************************************************************DATASEGMENTMAXLENDB32ACTLENDB?STRINGONEDB32DUP⑺STRINGTWODB32DUP⑺MESSAGEONEDB'Pleaseinputthestring(<31):$'MESSAGETWODB'Theencrypticstringis:$'DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXmovah,9movdx,offsetmessageoneint21hMOVDX,OFFSETMAXLENMOVAH,0AHINT21HSUBCH,CHMOVCL,ACTLENADDDX,2MOVBX,DXMOVBP,OFFSETSTRINGTWOMOVDL,10MOVAH,2INT21HBEGIN:MOVDL,[BX]SUBDL,20HMOV[BP],DLINCBXINCBPLOOPmovAL,'$'MOV[BP],ALmovah,9movdx,offsetmessagetwointMOVAH,9MOVDX,OFFSETSTRINGTWOINT21HMOVINT21HCODEENDSENDSTART3.1******************************************************************CODESEGMENTMAINPROCFARASSUMECS:CODESTART:PUSHDSSUBAX,AXPUSHAXMOVAX,0101111010010101BCALLDISPDECCALLCRLFCALLRETMAINENDPDISPDECPROCNEARPUSHAXPUSHBXPUSHCXPUSHDXPUSHFMOVBX,AXMOVCX,10000DCALLDEC_DIVMOVCX,1000DCALLDEC_DIVMOVCX,100DCALLDEC_DIVMOVCX,10DCALLDEC_DIVMOVCX,1DCALLDEC_DIVPOPFPOPDXPOPCXPOPBXPOPAXRETDEC_DIVPROCNEARMOVAX,BXMOVDX,0DIVCXMOVBX,DXMOVDL,ALADDDL,30HMOVAH,2INT21HRETDEC_DIVENDPDISPDECENDPDISPHEXPROCNEARPUSHAXPUSHBXPUSHCXPUSHDXPUSHFMOVBX,AXMOVCH,4MOVCL,4ROTATE:ROLBX,CLMOVAL,BLANDAL,0FHADDAL,30HCMPAL,3AHJLPRINTITADDAL,7HPRINTIT:MOVDL,ALMOVAH,2INT21HDECCHJNZROTATEPOPFPOPDXPOPCXPOPBXPOPAXRETDISPHEXENDPCRLFPROCNEARPUSHAXPUSHDXMOVDL,0AHMOVAH,2INT21HPOPDXPOPAXRETCRLFENDPCODEEND3.2******************************************************************DATASEGMENTEXAMSCOREDB01DB89,76,54,77,99DB02DB79,88,64,97,92DB03DB43,45,67,87,98DB04DB76,65,27,76,98DB05DB67,78,23,87,87DATAENDSCODESEGMENTMAINPROCFARASSUMECS:CODE,DS:DATASTART:PUSHDSSUBAX,AXPUSHAXMOVAX,DATAMOVDS,AXMOVCX,5MOVBX,OFFSETEXAMSCORERE:

INCBXCALLCALLCALLCRLFADDBX,2LOOPRERETMAINENDPSUMPROCNEARPUSHCXPUSHDXPUSHFMOVMOVBEGAIN:MOVMOVDH,0ADCAX,DXINCBXLOOPBEGAINMOV[BX],AXPOPFPOPPOPRETSUMENDPDISPDECPROCNEARPUSHAXPUSHBXPUSHCXPUSHDXPUSHFMOVBX,AXMOVCX,10000DCALLDEC_DIVMOVCX,1000DCALLDEC_DIVMOVCX,100DCALLDEC_DIVMOVCX,10DCALLDEC_DIVMOVCX,1DCALLDEC_DIVPOPFPOPDXPOPCXPOPBXPOPAXRETDEC_DIVPROCMOVAX,BXMOVDX,0DIVCXMOVMOVADDMOVAH,2INT21HRETDEC_DIVENDPDISPDECENDPCRLFPROCNEARPUSHAXPUSHDXMOVMOVAH,2INT21HPOPDXPOPAXRETCRLFENDPCODEEND实验3扩展************************************************************.**********************************datasegmentstring。db'error!$'stringldb'inputdecnumber:$'string2db'inputhexnumber:$'string301db'outputdecnumber(1):$string302db'outputdecnumber(2):$XDB5DUP⑺string4db'outputhexnumber:$'dataends.***********************************;;***********************************;CODESEGMENTMAINPROCFARASSUMECS:CODE,DS:DATAPUSHDSSUBPUSHAXMOVAX,DATAMOVDS,AXCALLCALLCRLFCALLCALLCRLFCALLCALLCRLFCALLCALLCRLFCALLCALLCRLFCALLCALLCRLFCALLCALLCRLFCALLDISPHEXRETMAINENDP.********************************;:********************************;BX^KEY_DECPROCPUSHAXPUSHCXPUSHDXPUSHFREERR:MOVDX,OFFSETMOVAH,9INT21HMOVDEC_RE:MOVAH,1INT21HCMPJEDEC_EXITSUBAL,30HJLDEC_ERRCMPAL,9JGDEC_ERRCBWXCHGMOVCX,10MULCXXCHGADDBX,AXJMPDEC_ERR:CALLERRORJMPREERRDEC_EXIT:POPFPOPDXPOPCXPOPAXRETKEY_DECENDP.**********************************;;**********************************;输入十六进制数并用二进制存储在B>eKEY_HEXPROCNEARPUSHPUSHPUSHPUSHFHEX_REERR:MOVDX,OFFSETSTRING2MOVAH,9INT21HMOVBX,0HEX_RE:MOVAH,1INT21HCMPJEHEX_EXITSUBAL,30HJLHEX_ERRCMPAL,0AHJLNEXTSUBAL,7CMPAL,0AHJLHEX_ERRCMPAL,10HJLNEXTSUBAL,20HCMPAL,0AHJLHEX_ERRCMPAL,10HJNLHEX_ERRNEXT:MOVCL,4SHLBX,CLMOVAH,0ADDBX,AXJMPHEX_REHEX_ERR:CALLERRORJMPHEX_REERRHEX_EXIT:POPFPOPDXPOPCXPOPAXRETKEY_HEXENDP.********************************;;********************************;;用十进制输出BX^二进制的数方法DISPDECPROCNEARPUSHAXPUSHBXPUSHCXPUSHDXPUSHFMOVDX,OFFSETSTRING301MOVAH,9INT21HMOVCX,10000DCALLDEC_DIVMOVCX,1000DCALLDEC_DIVMOVCX,100DCALLDEC_DIVMOVCX,10DCALLDEC_DIVMOVCX,1DCALLDEC_DIVPOPFPOPDXPOPCXPOPBXPOPAXRETDEC_DIVPROCNEARMOVAX,BXMOVDX,0DIVCXMOVBX,DXMOVDL,ALADDDL,30HMOVAH,2INT21HRETDEC_DIVENDPDISPDECENDP.**********************************;;**********************************;用十进制输出BX^二进制的数方法二DISPDECZPROCNEARPUSHAXPUSHBXPUSHCXPUSHDXPUSHFMOVDX,OFFSETSTRING302MOVAH,9INT21HMOVAX,BXmovBX,0dispdecz_re:MOVDX,0MOVDIVCXMOVX[BX],DLINCBXcmpax,0JNEDISPDECZ_REdispdecz_next:CMPBX,0JEDISPDECZ_EXITDECBXMOVDL,X[BX]ADDDL,30HMOVAH,2INT21HJMPDISPDECZ_NEXTDISPDECZ_EXIT:POPFPOPDXPOPCXPOPBXPOPAXRETDISPDECZENDP.******************************;;*******************************;;用十六进制输出BX^二进制数DISPHEXPROCNEARPUSHAXPUSHCXPUSHDXPUSHFMOVDX,OFFSETSTRING4MOVAH,9INT21HMOVCH,4MOVCL,4ROTATE:ROLBX,CLMOVAL,BLANDAL,0FHADDAL,30HCMPAL,3AHJLPRINTITADDAL,7HPRINTIT:MOVDL,ALMOVAH,2INT21HDECCHJNZROTATEPOPFPOPDXPOPCXPOPAXRETDISPHEXENDP.******************************;;******************************;;输出换行符CRLFPROCNEARPUSHAXPUSHDXMOVMOVAH,2INT21HMOVMOVAH,2INT21HPOPDXPOPAXRETCRLFENDP.********************************;;********************************;;输出错误提示ERRORPROCNEARPUSHAXPUSHDXPUSHFCALLCRLFMOVDX,OFFSETSTRING0MOVAH,9INT21HCALLCRLFPOPFPOPDXPOPAXRETERRORENDP.********************************;;********************************CODEENDSENDSTART4.1******************************************************************DATASEGMENTMONTHDB'JAN','FEB','MAR','APR','MAY','JUN','JUL','AUG','SEP','OCT','NOV','DENUMDB2DUP⑺STRONEDB'month?',10,$STRTWODB'monthERROR!',10,'$'DATAENDSCODESEGMENTASSUMECS:C

温馨提示

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

评论

0/150

提交评论