• 2.01 MB
  • 2022-04-29 14:31:02 发布

最新走进鲁迅博物馆课件PPT.ppt

  • 41页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'走进鲁迅博物馆 希望是本无所谓有,无所谓无的。这正如地上的路;其实地上本没有路,走的人多了,也便成了路。——《故乡》 自题小像灵台无计逃神矢,风雨如磐暗故园。寄意寒星荃不察,我以我血荐轩辕。 实验一排序程序的设计与实践一、实验目的三、汇编过程图示编写并调试一个排序子程序,其方法为用冒泡排序法,将DATA数据段中的几个单元字节中无符号的正整数,按从大到小的顺序重新排列。二、实验内容1、熟悉8088指令系统,掌握程序设计方法。2、学习在PC机上建立、汇编、链接、调试和运行汇编语言的过程。3、了解并熟悉TD运行环境,学会用TD调试程序的方法。 四、程序框图实验一排序程序的设计与实践 五、程序清单DATASEGMENTBUFDB21H,34H,0A6H,78H,0F8H,88H,0C9H,01H,33H,11HLENEQU$-BUFDATAENDSSTACKSEGMENTBUFSDB300DUP(?)LENSEQU$-BUFSSTACKENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKSTART:MOVAX,DATAMOVDS,AXMOVAX,STACKMOVSS,AXMOVSP,LENSS5:MOVCX,LENDECCXA53:MOVBX,OFFSETBUFPUSHCXA52:MOVAX,[BX]CMPAL,AHJCA51A54:INCBXLOOPA52POPCXLOOPA53MOVAH,4CHINT21HA51:XCHGAL,AHMOV[BX],AXJMPA54CODEENDSENDSTART实验一排序程序的设计与实践 六、实验步骤及要求(1)、在EDIT环境下键入编写程序,保存为*.asm;(2)、编译、连接源程序*.asm,分别生成*.obj、*.lst和*.exe文件。(3)、在TD调试环境下,用连续单步方式调试*.exe,观察排序时数据移动变化情况。(4)、改程序为按从小到大排序。实验一排序程序的设计与实践 七、实验报告要求(包含预习报告要求和最终报告要求)1.实验名称:注意实验项目名称应与实验大纲中的实验项目名称相符。2.实验目的3.实验内容及要求预习最终4.程序设计(从大到小)报告要求报告要求包含流程图和源程序,源程序必须加必要注释。5.实验结果及结果分析6.实验中出现的问题及解决方法7.回答思考题(如何改为由小到大排序)实验一排序程序的设计与实践 实验一求最大值程序一、实验目的1.掌握条件判断指令的用法。2.掌握循环程序的设计方法。3.学习在屏幕上显示字符的方法。4.学习在PC机上建立、汇编、链接、调试和运行汇编语言的过程。二、实验内容在首地址为DATA1的数组中找出最大值,并在屏幕上显示出来。DATA1DB35H,07H,0ABH,56H,12H,98H,0CDH,76H,0FAH,0BFH显示结果如下图所示: 实验一求最大值程序三、程序框图 实验一求最大值程序四、实验步骤及要求(1)输入程序,进行调试,运行出求最大值程序的结果。(2)熟悉TD调试环境下,在TD环境下单步运行本程序,以加深对程序指令的理解。(3)如何把程序改成求最小值的程序。(4)如果为有符号数,其最大值、最小值怎么求取。 实验一求最大值程序五、程序介绍要掌握这个程序,需要理解以下几点:1.程序完成的任务有:定义及初始化、求最值、显示最值。2.怎么显示字符?例如显示“A”,利用INT21H的AH=02H号子功能,显示DL的内容,DL中的值为字符对应的ASCII码值。3.宏定义介绍DISXMACROXMOVDL,XMOVAH,02INT21HENDM4.如果结果最大值是FAH,存储在AL中,如何显示?先AL暂存BL,对AL逻辑右移4位,再判断是不是大于9,若大于9加37H,否则加30H,然后送去显示。取出暂存的BL送AL,然后与0FH相与,再判断是不是大于9,若大于9加37H,否则加30H,再送去显示。5.返回DOS可用INT21H的AH=4CH号子功能。6.如何显示字符串?利用INT21H的AH=09H号子功能,DX指向显示字符串首地址。 实验一求最大值程序六、实验程序DISXMACROXMOVDL,XMOVAH,02INT21HENDMSTACKSEGMENTSTADB512DUP(?)TOPEQULENGTHSTASTACKENDSDATASEGMENTBUFDB"MAXNUMBER:",0DH,0AH,"$"DATA1DB35H,07H,0ABH,56H,12HDB98H,0CDH,76H,0FAH,0BFHBLOCKDB10DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKSTART:MOVAX,STACKMOVSS,AXMOVSP,TOPMOVAX,DATAMOVDS,AXMOVDX,OFFSETBUFMOVAH,09INT21HMOVSI,OFFSETBLOCKMOVCX,[SI]DECCXMOVSI,OFFSETDATA1MOVAL,[SI]MAX1:INCSICMPAL,[SI]JANEXTMOVAL,[SI];AL中定义为最大值NEXT:LOOPMAX1 实验一求最大值程序MOVBL,ALMOVCL,04SHRAL,CLCMPAL,09JAMAX4ADDAL,30HMAX2:DISXALMOVAL,BLANDAL,0FHCMPAL,09JAMAX5ADDAL,30HMAX3:DISXALMOVAH,4CHINT21HMAX4:ADDAL,37HJMPMAX2MAX5:ADDAL,37HJMPMAX3CODEENDSENDSTART 实验一求最大值程序七、实验报告要求(包含预习报告要求和最终报告要求)1.实验名称:注意实验项目名称应与实验大纲中的实验项目名称相符。2.实验目的3.实验内容及要求预习最终4.程序设计(求最大值)报告要求报告要求包含流程图和源程序,源程序必须加必要注释。5.实验结果及结果分析6.实验中出现的问题及解决方法7.回答思考题 实验二多位十进制数加法程序设计与调试一、实验目的1.学习宏指令的编写方法。2.学习在屏幕上显示字符串的方法。3.学习子程序的调用方法。4.掌握数据传送和算术运算指令的用法。5.掌握多位十进制数加(减)程序的编制方法。6.学习在PC机上建立、汇编、链接、调试和运行汇编语言的过程。 实验二多位十进制数加法程序设计与调试二、实验内容将两个5位十进制数相加,要求被加数与加数均以ASCII码形式各自顺序存放在DATA1和DATA2为首的5个内存单元中,结果送DATA3处,并在屏幕上显示出来。DATA1DB33H,39H,31H,37H,34HDATA2DB36H,35H,30H,38H,32H47193+2805675249 实验二多位十进制数加法程序设计与调试三.程序理解介绍1.加数与被加数均以ASCII码形式存在内存中,在进行运算之前,先转换为十六进制数的形式(只要减去30H即可)。2.多位数的加法要用带进位的加法指令ADC,并且在首次相加之前要注意先清进位位。3.因为是非组合的BCD码(或ASCII码)的运算,所以用十进制调整指令AAA对运算结果加以修正。4.运算结果在送显示之前应转换为用ASCII码表示的数字串(加上30H即可)。5.在屏幕上显示结果可利用INT21H的02号子功能,因该功能一次只能显示一个字符,故对于显示数字串来说,要编写一段显示子程序,反复使用02H号子功能。6.加数与被加数为5位,而和可能为5位或6位,即考虑到带进位和不带进位的情况。在显示和数时最好按实际情况显示,而不要出现0。 实验二多位十进制数加法程序设计与调试四.实验程序DISXMACROXMOVDL,XMOVAH,02HINT21HENDMDATASEGMENTMESSDB"TWOMULBITDECIMALNUMBERSADD",0DH,0AHDB0DH,0AH,"$"DATA1DB33H,39H,31H,37H,34HDATA2DB36H,35H,30H,38H,32HDATA3DB6DUP(?)DATAENDSSTACKSEGMENTSTADB20DUP(?)TOPEQULENGTHSTASTACKENDS 实验二两个多位十进制数相加的 程序CODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACK,ES:DATASTART:MOVAX,DATAMOVDS,AXMOVAX,STACKMOVSS,AXMOVAX,TOPMOVSP,AXMOVDX,OFFSETMESSMOVAH,09HINT21HMOVSI,OFFSETDATA1MOVBX,05CALLDISPLDISX2BHMOVSI,OFFSETDATA2MOVBX,05CALLDISPLMOVSI,OFFSETDATA1MOVDI,OFFSETDATA2CALLADDADISX3DHMOVSI,OFFSETDATA3MOVBX,05CALLDISPLDISX0DHDISX0AHMOVAH,4CHINT21HDISPLPROCNEARDS1:DISX[SI+BX-1]DECBXJNZDS1RETDISPLENDP 实验二多位十进制数加法程序设计与调试ADDAPROCNEARMOVDX,SIMOVBP,DIMOVBX,05AD1:SUBBYTEPTR[SI+BX-1],30HSUBBYTEPTR[DI+BX-1],30HDECBXJNZAD1MOVCX,05CLCMOVBX,OFFSETDATA3AD2:MOVAL,[SI]MOVAH,[DI]ADCAL,AHAAAMOV[BX],ALINCSIINCDIINCBXLOOPAD2MOVSI,OFFSETDATA3MOVBX,05AD3:ADDBYTEPTR[SI+BX-1],30HDECBXJNZAD3RETADDAENDPCODEENDSENDSTART 实验二多位十进制数加法程序设计与调试五.实验要求先完成不考虑最高位相加产生进位的程序的调试,然后改写程序完成考虑进位相加,并能正常显示的程序。47193+68056115249 实验二多位十进制数加法程序设计与调试六、实验报告要求(包含预习报告要求和最终报告要求)1.实验名称:注意实验项目名称应与实验大纲中的实验项目名称相符。2.实验目的3.实验内容及要求预习最终4.程序设计报告要求报告要求包含流程图和源程序,源程序必须加必要注释。5.实验结果及结果分析6.实验中出现的问题及解决方法7.回答思考题 实验三十进制数转化为二进制数程序设计一、实验目的1.掌握数制转换的基本原理。2.学会编写十进制数转化为二进制数的程序。3.掌握键入字符串的接收方法。4.掌握在屏幕上显示字符及字符串的方法。 实验三十进制数转化为二进制数程序设计二、实验内容及结果将十进制数转化为二进制数。假定十进制输入数的范围为0~65535,要求通过键盘输入,并且将转换后的二进制数以十六进制数的形式显示在屏幕上。 实验三十进制数转化为二进制数程序设计三、实验重点问题1.转换方法十进制数转化为二进制数。十进制数的范围为0~65535,通过键盘输入十进制数,转换后的二进制数结果以十六进制数形式在屏幕上显示。十翻二所采用的基本公式为(0~65535转化为××××H):高位×10+低位例如:十进制数135={[(0×10)+1]×10+3}×10+5 实验三十进制数转化为二进制数程序设计2.0AH号系统功能调用的使用格式如下:BUFDB15;定义缓冲区DB?DB15DUP(?)MOVDX,OFFSETBUF;0AH号系统功能调用MOVAH,0AHINT21H3.每次加低位运算前均要将低位数由ASCII码转换为十进制数。4.将转换结果送显示可利用INT21H的02号子功能,送显示前应转换为ASCII码(DISX)。 实验三十进制数转化为二进制数程序设计四、实验程序DISXMACROXMOVAH,02MOVDL,XINT21HENDMCRLFMACRODISX0DHDISX0AHENDMSTACKSEGMENTSTADB512DUP(?)TOPEQULENGTHSTASTACKENDSDATASEGMENTBUFDB6DB?DB6DUP(?)MES1DB"INPUTDECIMALISTNUMBER:","$"MES2DB"OUTPUT:","$"MES3DB"INPUTERROR!","$"DATAENDS 实验三十进制数转化为二进制数程序设计CODESEGMENTASSUMECS:CODE,DS:DATA,ES:DATA,SS:STACKSTART:MOVAX,DATAMOVDS,AXMOVES,AXMOVAX,STACKMOVSS,AXMOVSP,TOPMOVDX,OFFSETMES1MOVAH,09HINT21HMOVDX,OFFSETBUFMOVAH,0AHINT21HCRLFCRLFMOVSI,OFFSETBUFMOVCL,[SI+1]XORCH,CHXORAX,AXCLCSFE1:MOVBX,10MULBX;(AX)*(BX)=DX:AXCMPDX,0JNEERROMOVDL,[SI+2]CMPDL,30HJBERROCMPDL,39HJAERROANDDL,0FHXORDH,DHADDAX,DXJCERROINCSILOOPSFE1 实验三十进制数转化为二进制数程序设计PUSHAXMOVDX,OFFSETMES2MOVAH,09HINT21HPOPAXCALLDISUPJMPSFE2CRLFERRO:MOVDX,OFFSETMES3MOVAH,09HINT21HSFE2:MOVAH,4CHINT21HDISUP:MOVCH,02HMOVBX,AXDISUP1:MOVAL,BHMOVCL,04SHRAL,CLCMPAL,09JADISUP4ADDAL,30HDISUP2:DISXALMOVAL,BHANDAL,0FHCMPAL,09JADISUP5ADDAL,30HDISUP3:DISXALDECCHJNZDISUP6DISX48HRET 实验三十进制数转化为二进制数程序设计DISUP4:ADDAL,37HJMPDISUP2DISUP5:ADDAL,37HJMPDISUP3DISUP6:MOVBH,BLJMPDISUP1CODEENDSENDSTART 实验三十进制数转化为二进制数程序设计五、实验报告要求(包含预习报告要求和最终报告要求)1.实验名称:注意实验项目名称应与实验大纲中的实验项目名称相符。2.实验目的3.实验内容及要求预习最终4.程序设计报告要求报告要求包含流程图和源程序,源程序必须加必要注释。5.实验结果及结果分析6.实验中出现的问题及解决方法 实验七异步串行通信系统设计一.实验目的1.了解串行通信的一般原理。2.了解RS-232串行接口标准及TTL电路的连接方法。3.掌握利用PC机用串行口来实现通信的编程及使用方法。二.实验内容利用PC机串行口1、测取串行数据通信格式(运行串口调试程序)在发送十六进制数AAH或55H时,用数字示波器观察串口输出波形,并记录。并完成波特率的测取。 实验七异步串行通信系统设计2、实现双机通信①.运行串口调试程序,实现两台PC机之间的数据传输。(描述实验结果)②.编译并链接汇编程序,实现通过串口线来交换两机上的数据。即就是将从甲机键盘上输入的字符送到乙机子上,并显示。(汇编程序只是验证过程,实验报告上不体现。) 实验七异步串行通信系统设计三.实验线路1.测取串行数据通信格式2.实现双机通信四.实验仪器设备计算机两台、串口线一条、示波器一台。 实验七异步串行通信系统设计五.实验程序1.串口调试程序 实验七异步串行通信系统设计2.汇编程序STACKSEGMENTDB26DUP(?)STACKENDSCODESEGMENTSTARTPROCFARASSUMECS:CODEPUSHDSMOVAX,0PUSHAXMOVDX,3FBHMOVAL,80HOUTDX,ALMOVDX,3F8HMOVAL,0CHOUTDX,ALINCDXMOVAL,0OUTDX,ALMOVDX,3FBHMOVAL,00001010BOUTDX,ALINCDXMOVAL,00000011BOUTDX,ALMOVDX,3F9HMOVAL,0OUTDX,ALRDSTS:MOVDX,3FDHINAL,DXTESTAL,1EHJNZERRORTESTAL,01HJNZRECVTESTAL,20HJZRDSTSTRXT:MOVAH,1INT16HJZRDSTSMOVAH,0INT16HMOVDX,3F8HOUTDX,ALJMPRDSTS'