您好,欢迎访问三七文档
上机作业二一.实验目的1.熟练掌握汇编语言程序设计的方法及上机步骤。2.掌握算术运算指令的应用。3.掌握子程序的设计方法。4.掌握DOS功能的调用方法。二.试验仪器586微机一台三.实验内容编写程序求两个十进制数之和,并将和以十进制数的形式送屏幕显示。编程要求与提示:[1]从键盘输入两个十进制数(如12678532与21736543),以二进制数形式存放在ADD1和ADD2为首址的存贮器单元,输入一个十进制数采用子程序形式。[2]和以二进制数的形式存入SUM以下单元。[3]将和送到屏幕显示采用子程序形式。[4]实验步骤如下:a.用全屏幕编辑软件建立源程序。b.用masm.exe汇编程序对源程序进行汇编,形成目标程序。c.用link.exe连接程序对目标程序进行连接形成可执行文件。d.用DEBUG对连接通过的可执行程序进行调试。四.源程序STACKSEGMENTSTACK'STACK'DW100HDUP(?)TOPLABELWORDSTACKENDSDATASEGMENTFAKEDW0KEYBUFFERDB100DB?DB100DUP(?)BUFDB8DUP(?),'$'ADD1DW?A1DW?ADD2DW?A2DW?SUMDW?S1DW?STRING1DB'PLEASEinputdecimaldata:$'DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,ES:DATA,SS:STACKSTART:MOVAX,DATAMOVDS,AXMOVES,AXMOVAX,STACKMOVSS,AXLEASP,TOPCALLINPUT1CALLTRANS10TO16MOVADD1,AXMOVA1,DXCALLDISPCRCALLINPUT1CALLTRANS10TO16MOVADD2,AXMOVA2,DXCALLDISPCRMOVSUM,AXMOVS1,DXADDAX,ADD1ADCDX,A1MOVSUM,AXMOVS1,DXCALLfarptrADISPMOVAH,4CHMOVAL,0INT21HINPUT1PROCNEARLEADX,STRING1MOVAH,09HINT21HMOVAH,0AHLEADX,KEYBUFFERINT21HLEASI,KEYBUFFER+1retINPUT1endpTRANS10TO16PROCNEARPUSHCXPUSHSI;PUSHBX???XORAX,AXXORDX,DXXORCX,CXMOVCL,[SI]INCSIMOVAL,[SI]INCSISUBAL,30HDECCXJCXZTRANSF2MOVBX,10TRANSF1:CALLMULAXIPUSHDXJOTRANSF_ERRMOVDL,[SI]INCSISUBDL,30HADDAL,DLADCAH,0JCTRANSF_ERRPOPDXLOOPTRANSF1MOVBX,0TRANSF2:JMPTRANSF_OKTRANSF_ERR:MOVBX,-1TRANSF_OK:POPSIPOPCXretTRANS10TO16endpMULAXIPROCNEARPUSHCXPUSHAXMOVAX,DXMULBXMOVCX,AXPOPAX;XORDX,DXMULBXPUSHAXMOVAX,CXADDAL,DLADCAH,DHMOVDX,AXPOPAXPOPCXretMULAXIendpDISPCRPROCNEARPUSHAXPUSHDXMOVAH,2MOVDL,0AHINT21HMOVAH,2MOVDL,0DHINT21HPOPDXPOPAXretDISPCRendpADISPPROCFARPUSHAXPUSHCXPUSHDXPUSHBXLEASI,BUF+7MOVBX,10000DIVBXPUSHAXMOVAX,DXXORDX,DXMOVBX,10MOVCX,4L1:DIVBXMOV[SI],DLXORDL,DLADDBYTEPTR[SI],30HDECSILOOPL1CMPSI,OFFSETBUFJCL2POPAXMOVCX,4JMPL1L2:LEADX,BUFMOVAH,09HINT21HPOPBXPOPDXPOPCXPOPAXretfADISPendpCODEENDSENDSTART五、实验体会实验中遇到的问题以及解决方法:在这几次的编程实验中,我遇到了许多问题。首先,在最开始的时候,无论怎么输入都显示:‘masm’不是内部或外部命令,也不是可运行的程序或批处理文件。后来发现把自己编写的asm文件放到E盘masm文件夹里就行了,之后的每一步实验按照要求一步一步做,就都能出来结果。还有就是不懂得如何输出自己所得到的结果,于是先抄写课本上所给的程序,当出现自己想要的结果之后,再与同学讨论输出结果的语句,充分理解其内涵。心得体会:通过几次的上机实验课,我懂得了如何使用txt文档编写asm文件。然后对其进行编译和连接。当完成上述过程后,可以使用DEBUG功能来对程序进行调试,这样,就可以清楚地看到每一步运行时各个寄存器的状态。同时,通过自己编译程序,我能够更好地理解课本中的许多程序,也能够自己编写一些简单的程序。总而言之,通过这几次的上机实验课,我学会了通过用计算机编译程序来处理自己在理论课学习上遇到的各种问题。希望在以后的实验中能够积累的越来越多,对此体会也越来越深。
本文标题:微机原理上机--汇编语言程序--编写程序求两个十进制数之和-并将和以十进制数的形式送屏幕显示
链接地址:https://www.777doc.com/doc-7182568 .html