首页 汇编语言实验报告

汇编语言实验报告

举报
开通vip

汇编语言实验报告汇编语言课程设计学院:专业:姓名:学号:汇编语言是计算机专业的一门重要的专业基础课,主要介绍汇编语言程序设计的基本原理和方法。汇编语言是一门理论性和实践性较强的课程,辅助课堂教学的实验有助于帮助学生理解汇编语言的基本原理,锻炼学生的动手能力,提高学生的综合应用知识的能力。目录TOC\o"1-1"\h\z1利用DEBUG调试汇编语言程序段………………………………………3初级程序的编写与调试实验(二)………………………………………...5分支程序实验……………………………………………………………6循环程序实验……………...

汇编语言实验报告
汇编语言课程 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 学院:专业:姓名:学号:汇编语言是计算机专业的一门重要的专业基础课,主要介绍汇编语言程序设计的基本原理和方法。汇编语言是一门理论性和实践性较强的课程,辅助课堂教学的实验有助于帮助学生理解汇编语言的基本原理,锻炼学生的动手能力,提高学生的综合应用知识的能力。目录TOC\o"1-1"\h\z1利用DEBUG调试汇编语言程序段………………………………………3初级程序的编写与调试实验(二)………………………………………...5分支程序实验……………………………………………………………6循环程序实验……………………………………………………………..1利用DEBUG调试汇编语言程序段一.课程目的1.熟悉DEBUG有关命令的使用方法;2.利用DEBUG掌握有关指令的功能;3.利用DEBUG运行简单的程序段。二.课程内容1.进入和退出DEBUG程序;2.学会DEBUG中的1)D命令(显示内存数据D段地址:偏移地址)例1:-D1002)E命令(修改指定内存)例1:-E1004142434448474645-D100,L08 结果:08F1:01004142434448474645例2:-E100:  08F1:01007642:42是操作员键入  此命令是将原100号内存内容76修改为42,用D命令可察看。3)R命令(显示当前寄存器的内容)4)T命令(设置陷井,单步执行)5)A命令(将指令直接汇编成机器码输入到内存中。)6)G命令等的使用(执行A命中输入的汇编指令)3.用DEBUG,验证乘法、除法、加法、减法、带进位加、带借位减、堆栈操作指令、串操作指令的功能。三.课程要求1.仔细阅读有关DEBUG命令的内容,对有关命令,要求事先准备好使用的例子;四.环境PC微机DOS操作系统或Windows操作系统MASM.EXE,LINK.EXE,DEBUG.COM或宏汇编集成环境五.方法步骤1.在DOS提示符下,进入DEBUG程序;2.在DOS目录下启动DEBUG;3.详细记录每一步所用的命令,以及查看结果的方法和具体结果。R,D,E命令:A,T命令:进入和退出DEBUG:六.学习要求1.如何启动和退出DEBUG程序;2.整理每个DEBUG命令使用的方法,实际示例及执行结果。七.思考 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 启动DEBUG后,要装入某一个.EXE文件,应通过什么方法实现?答:用debug+文件名八.小结通过这个设计我懂得了DEBUG程序调试汇编程序的一些基本方法和指令。知道了DEBUG程序的一些功能。使我对汇编语言有了进一步的理解。2初级程序的编写与调试(一)一.课程目的1.进一步熟悉DEBUG命令;2.掌握数据在内存中的存放方式和内存操作数的几种寻址方式,段寄存器和物理地址计算;3.熟悉数据传送指令、算术运算指令、逻辑指令、数据串传送程序和数据串传送指令MOVS、STOS及重复前辍REP;4.掌握简单的汇编语言程序编写与调试。二.课程内容1.内存操作数及各种寻址方式使用;2.求累加和程序;3.多字节加法程序;4.数据串搬家程序;5.段寄存器概念及字符串传送指令练习。三.课程要求1.仔细阅读有关DEBUG命令的内容,对有关命令,要求事先准备好使用的例子;2.阅读数据传送指令、算术运算指令、逻辑指令、数据串传送程序和数据串传送指令MOVS、STOS及重复前辍REP的内容;3.用DEBUG的有关命令调试本实验中的求累加和程序、多字节加法程序、数据串搬家程序段。四.环境PC微机;DOS操作系统或Windows操作系统;MASM.EXE,LINK.EXE,DEBUG.COM或宏汇编集成环境。五.方法步骤1.内存操作数及各种寻址方式使用MOVAX,1234MOV[1000],AXMOVBX,1002MOVBYTEPTR[BX],20MOVDL,39INCBXMOV[BX],DLDECDLMOVSI,3MOV[BX+SI],DLMOV[BX+SI+1],DLMOVWORDPTR[BX+SI+2],2846步骤:(1)用A命令键入上述程序,并用T命令逐条运行。(2)每运行一条有关内存操作数的指令,要用D命令检查并记录有关内存单元的内容并注明是什么寻址方式。注意D命令显示结果中右边的ASCII字符及双字节数存放法。立即寻址:寄存器间接寻址:寄存器相对寻址:2.求累加和程序:程序:MOVBX,1000MOVCX,10SUBAX,AXLOP:ADDAL,[BX]ADCAH,0INCBXJ:LOOPLOPINT3步骤:(1)用A命令将程序键入到100H开始的内存中,在键入时记下标号LOP和J的实际地址,在键入LOOP指令时LOP用实际地址值代替;(2)用命令NAA将此程序命名为文件AA(文件名可任取);(3)用R命令将BX:CX改为程序长度值(即最后一条指令后面的地址减去开始地址;(4)用命令W100将此程序存到AA命名的磁盘文件中;(5)用命令Q退出DEBUG;(6)用命令DEBUGAA再次调入DEBUG和文件AA,可用U命令检查调入程序;若调入DEBUG时忘了加AA文件名,可用N命令和L命令将文件调入;(7)用E命令在内存地址1000H处键入16个数字;(8)用命令G=100J(J用实际地址代替),使程序运行并停在断点J上,检查AX,BX的值是否符合你的预计值;(9)用T命令运行一步,观察程序方向(IP值)和CX值是否与你的估计一样,若不一样,检查程序是否有错;(10)重复G、J与T,再检查AX是否正确;(11)用G命令使程序运行到结束,检查AX值是否正确。3.多字节加法程序程序:MOVDI,1000MOVCX,8MOVSI,2000CLCLOP:MOVAL,[SI]ADC[DI],ALINCSIINCDILOOPLOPINT20步骤:(1)用命令键入此程序(2)用E命令在1000H开始处键入一个8字节被加数,在2000H开始处键入一个8字节加数,均为低字节在前面。4.数据串搬家程序(1)用A命令键入下列程序:MOVSI,1000MOVDI,1500MOVCX,0FHLOP:MOVAL,[SI]MOV[DI],ALINCSIINCDILOOPLOPINT20(2)用A命令DB伪指令在1000H键入下列字符串:‘IBM_PCCOMPUTER'(3)用G命令运行此程序,并用D命令检查目的地址处的字符与源串是否一致。5.段寄存器概念及字符串传送指令练习(1)用A命令键入下列程序:MOVSI,0MOVDI,0MOVAX,1000MOVDS,AXMOVAX,1500MOVES,AXMOVCX,0FCLDREPMOVSBINT20(2)用A命令DB伪指令在1000:0000处键入字符串'IBM_PCCOMPUTER',并用D命检查之(3)用D命令检查0F00:1000处内容,看是否一样。为什么?相同,因为1000:0000和0F00:1000是同一个地址。(4)用G命令运行此程序,检查目的地址1500:0000处内容。并记下DS与ES值。(5)修改此程序,使ES与DS为同一值,以减少一条指令,而源物理地址和目的物理地址(是多少?)仍和原来一样。修改后程序:MOVSI,0MOVDI,0MOVAX,1000MOVDS,AXMOVES,AXMOVCX,0FCLDREPMOVSBINT20六.学习要求1.各项实验记录;2.要求你修改的程序的清单(修改后)和调试记录;3.自编程序原稿及调试后修正稿,写出原稿错在那里。七.思考题1.MOVBYTEPTR[BX],20MOVWORDPTR[BX+SI+2],2846上述指令中BYTEPTR及WORDPTR伪操作不加行不行?试一试。答:不行2.用G命令运行多字节加法程序,并用D命令检查其结果(存放在哪里?),是否正确?3.将多字节加法程序中的INT20H指令改为INT3,有何区别?若这条指令不加,行不行?试一试。4.数据串搬家程序中的目的地址改为1002H,再运行此程序,看能不能把1000H开始的字符串搬到1002H开始的地方去?修改程序以做到这一点。八.小结此次设计使我对DEBUG的命令有了更深一步的了解。知道如何编写程序,如何验证程序的对错。同时熟悉了汇编语言的一些指令。对汇编语言的一些简单程序的调试运行有了初步的掌握。中间遇到了各种问题,但最终都通过自己的努力解决了。3初级程序的编写与调试(二)一.课程目的1.掌握无条件转移指令、条件转移指令;2.掌握利用DOS功能调用INT21H的2号和9号功能进行屏幕显示的方法;3.掌握直接向视频RAM送ASCII码进行屏幕显示的方法;4.掌握屏幕字符显示程序编写与调试。二.课程内容1.字符、字符串的屏幕显示;2.直接向VRAM送ASCII码显示字符;3.用字符搜索法确定字符串长度;4.16进制数化ASCII码的一般方法(显示内存内容)。三.课程要求1.仔细阅读有关无条件转移指令、条件转移指令的内容;2.阅读利用DOS功能调用INT21H的2号和9号功能进行屏幕显示的内容;3.阅读实验指导 关于书的成语关于读书的排比句社区图书漂流公约怎么写关于读书的小报汉书pdf 中的字符串屏幕显示程序、字符屏幕显示程序、直接向VRAM送ASCII码显示字符程序、用字符搜索法确定字符串长度程序、16进制数化ASCII码的一般方法的程序段,调试上述程序。四.环境PC微机;DOS操作系统或Windows操作系统;MASM.EXE,LINK.EXE,DEBUG.COM或宏汇编集成环境。五.方法步骤1.利用INT210AH号功能调用显示字符串。(1)用A命令在100H处键入下列程序:MOVAH,9MOVDX,110INT21INT20(2)用A命令在110H处键入下列字符串的ASCII码:DB'Thisisasample!$'(3)用N命令和W命令将此程序(包括数据区)存入文件名为AA.OM的磁盘文件中。(存入前BX:CX必须置为文件长度值)。(4)用Q命令退出DEBUG。(5)在DOS命令下打AA,运行此程序,即在屏幕上显示'Thisisasample!'字符串,若不出现,用DEBUG检查程序有无错误。2.利用INT21H2号功能显示字符(1)用A命令在100H处键入下列程序:XORDL,DLMOVCX,100LOP:MOVAH,2INT21INCDLPUSHCXMOVCX,8DELY:PUSHCXMOVCX,0J:LOOPJPOPCXLOOPDELYPOPCXLOOPLOPINT20(2)用G命令运行程序,即在屏幕上依次缓慢的显示256个ASCII字符。仔细观察每个字符,和IBM-PCASCII码表对照,看07H-0DH处控制字符显示结果与表上有何不同?(3)按CTRL+BREAK退出此程序,若一次不行可多做几次。3.直接向VRAM送ASCII码显示字符(1)用A命令在100H处键入下列程序MOVAX,B000MOVDS,AXXORAL,ALXORBX,BXMOVCX,100LOP:MOV[BX],ALINCBXINCALPUSHCXMOVCX,8DELY:PUSHCXMOVCX,0J:LOOPJPOPCXLOOPDELYPOPCXLOOPLOPINT20(2)用N命令和W命令将此程序存入BB.COM文件中。(一定要先存入!)(3)用G命令运行此程序,仔细观察每一个ASCII码显示结果,并和字符表及上一道程序运行情况进行对照,其控制字符区(07-0DH)显示结果和INT21H2号功能调用有何不同?4.用字符搜索法确定字符串长度(1)用A命令在100H开始的内存处键入下列程序JMPSTARTDB'Thisistheprogramtomeasure'DB'thelengthofastring!$'START:MOVBX,102MOVAL,24XORCL,CLLOP:CMPAL,[BX]JZEXITINCBXINCCLJMPLOPEXIT:INT3(2)用G命令运行此程序,并检查CL的统计长度是否与你自己统计的实际长度是否一样?答:一样。5.用字符搜索法确定字符串长度(1)用A命令在100H处键入下列程序:MOVSI,0MOVBL,10LOP:MOVDL,[SI]MOVCL,4SHRDL,CLCMPDL,0AJCJ1ADDDL,7J1:ADDDL,30MOVAH,2INT21MOVDL,[SI]ANDDL,0FCMPDL,0AJCJ2ADDDL,7J2:ADDDL,30MOVAH,2INT21MOVDL,20MOVAH,2INT21INCSIDECBLJNZLOPINT20(2)用N,W命令将此程序用CC.COM文件名存入磁盘。(3)用Q命令退出DEBUG。(4)在DOS命令状态下直接运行CC.COM命令文件,应在屏幕上显示出内存从0000H开始的16个字节的内容,若有错误,用DEBUG检查之。六.学习要求1、各项实验记录及观察体会。2、自编程序草稿及调试结果。七.思考题利用INT21H显示和直接向VRAM送ASCII码显示方法在显示结果上有什么不同?答:1、INT21H只能在当前位置显示默认属性(即颜色)的字符,在VRAM中可修改任何一个位置的字符和属性。2、INT21H更靠近用户,使用简单。修改VRAM更靠近硬件,需记住对应于屏幕某位置的物理地址才能使用。八.小结本设计比较难,但了解了字符串转移的基本方法。学会了条件转移、无条件转移指令的使用。对汇编语言的指令有了进一步的了解。但进行屏幕显示的没有成功,说明自己的能力有待提高。对DOS的显示功能不熟练。4汇编语言程序上机过程一.课程目的熟练掌握汇编语言程序的编辑、调试和运行的过程和方法。了解汇编语言程序的汇编、运行环境。二.课程内容1.掌握常用的编辑工具软件(如WORD、EDIT)、MASM和LINK的使用;2.伪指令:SEGMENT,ENDS,ASSUME,END,OFFSET,DUP;3.利用的INT21H的1号功能实现键盘输入的方法;三.课程要求1.仔细阅读有关伪指令SEGMENT,ENDS,ASSUME,END,OFFSET,DUP的内容;2.了解利用的INT21H的1号功能实现键盘输入的方法,了解.EXE文件和.COM文件的区别及用INT21H4C号功能返回系统的方法;3.阅读下面程序段。四.环境PC微机DOS操作系统或Windows操作系统MASM。EXE,LINK。EXE,DEBUG。COM或宏汇编集成环境五.方法步骤程序:datasegmentmessagedb'Thisisasampleprogramofkeyboardanddisply'db0dh,0ah,'Pleasestrikethekey!',0dh,0ah,'$'dataendsstacksegmentparastack'stack'db50dup(?)stackendscodesegmentassumecs:code,ds:data,ss:stackstart:movax,datamovds,axmovdx,offsetmessagemovah,9int21h;显示'Thisisasampleprogramofkeyboardanddisply'again:movah,1int21h;等待键盘输入,保存至ALcmpal,1bh;1bh字符ESC的ASCIIjeexitcmpal,61h;61h字符a的ASCIIjc(jb)nd;小于(CF=1有借位)转向ND原样显示cmpal,7ah;jand;大于转向ND原样显示andal,11011111b;转化为大写字母subal,20hnd:movdl,almovah,2int21hjmpagainexit:movah,4chint21hcodeendsendstart步骤:1.用用文字编辑工具(记事本或EDIT)将源程序输入,其扩展名为.ASM。2.用MASM对源文件进行汇编,产生.OBJ文件和.LST文件。若汇编时提示有错,用文字编辑工具修改源程序后重新汇编,直至通过。3.用TYPE命令显示1产生的.LST文件。4.用LINK将.OBJ文件连接成可执行的.EXE文件。5.在DOS状态下运行LINK产生的.EXE文件。即在屏幕上显示标题并提示你按键。每按一键在屏幕上显示二个相同的字符,但小写字母被改成大写。按ESC键可返回DOS。若未出现预期结果,用DEBUG检查程序。六.学习要求汇编,连接及调试时产生的错误,其原因及解决办法。七.思考题1.若在源程序中把INT21H的'H'省去,会产生什么现象?答:无法显示出字符。2.把INT21H4CH号功能改为INT20H,行不行?答:不行。八.小结通过此次设计了解汇编语言程序的汇编、运行环境。知道了汇编语言的调试、执行的基本方法。但还不熟练,还没有掌握。对软件还不熟悉。.EXE文件的生成过程不顺利。同时,我也更深一步了解了汇编语言指令的设计、调试等。5分支程序一.课程目的1.掌握分支程序的设计方法;2.掌握利用DEBUG修改参数、检查结果的方法;3.熟悉汇编语言源程序的编辑、汇编、连接及调试过程。二.课程内容1.编写一个程序,显示AL寄存器中的两位十六进制数2.编写一个程序,判别键盘上输入的字符;若是1-9字符,则显示之;若为A-Z或a-z字符,均显示“c”;若是回车字符(其ASCII码为0DH),则结束程序,若为其它字符则不显示,继续等待新的字符输入。datasegmentDB0dataendscodesegmentassumecs:code,ds:datamainprocfarpushdssubax,axpushaxmovax,datamovds,axnext:movah,07int21hcmpal,0dhjEend_dcmpal,'0'JGEDY0;>=0JMPNEXT;<'0'...30HDY0:CMPAL,'9'JLEIS_09CMPAL,'A'JGEDY_A;DAYUAJMPNEXT;<'A'...41HDY_A:CMPAL,'Z'JLEIS_AZCMPAL,'a'JGEDY_xA;DAYUxAJMPNEXT;<'a'...61HDY_xA:CMPAL,'z'JLEIS_AZJMPNEXT;......................IS_AZ:MOVAH,02MOVDL,'c'INT21HJMPNEXTIS_09:MOVAH,2MOVDL,ALINT21HJMPNEXTend_d:retmainendpcodeendsendmain三.课程要求1.编写实验内容要求的两个程序;2.写出调试以上程序,即修改程序参数,检查结果的操作方法;3.熟悉源程序汇编、连接命令的使用方法即要回答的内容。四.环境PC微机DOS操作系统或Windows操作系统MASM.EXE,LINK.EXE,DEBUG.COM或宏汇编集成环境五.方法步骤1.用EDIT或其它编辑软件,编写.ASM源程序,例如HEXASC.ASM及DSPKEY.ASM。2.对其进行汇编及连接,产生.EXE文件。3.对.EXE文件进行调试运行。(1)用DEBUG调试运行,学会修改AL内容的方法;(2)对DSPKEY.EXE键入不同的字符,分别进行调试;(3)在MS-DOS下运行这两个.EXE文件。六.学习要求1.画出两个程序的 流程 快递问题件怎么处理流程河南自建厂房流程下载关于规范招聘需求审批流程制作流程表下载邮件下载流程设计 图,若要独立编写程序,应列出相应的程序清单。2.说明本实验是如何利用DEBUG进行调试的。七.思考题编写显示AX中四位十六进制数程序,画出程序的流程图。stacksegmentstackdb16dup(0)stackendsdatasegmentmsg1db0ah,0dh,'PleaseInputAgain!','$'msg2db0ah,0dh,'BCDCode:','$'msg3db'PleaseInputyoudata:',0ah,0dh,'$'dataendscodesegmentassumecs:code,ds:data,ss:stackstart:movax,datamovds,axmovdx,offsetmsg3movah,09hint21hmovah,01hmovcx,4input:movah,01h;输入字符int21hcmpal,30hjbreinputcmpal,39hjazimusubal,30hjmpokzimu:andal,11011111b;字母转换cmpal,41hjbreinputcmpal,46hjareinputsubal,37hok:movah,0;将输入的字符合成为4位十六进制数pushcx;算法:左移4位,加上新输入的数movcl,4shlbx,claddbx,axpopcxloopinputmovax,datamovds,axmovdx,offsetmsg2;输出msg2movah,09hint21hbcd:movax,bx;转换为十进制,并将各位入栈movbx,10movcx,0s1:movdx,0divbxpushdxinccxcmpax,0jas1movbx,2s2:popax;各位出栈,转换为二进制pushcxmovcx,4s2_0:movdx,0divbxpushdxloops2_0movcx,4movah,02hs2_1:popdx;结果输出adddl,30hint21hloops2_1movdl,20hint21hpopcxloops2jmpok2reinput:movax,data;求重新输入movds,axmovdx,0movah,09hint21hjmpstartok2:movax,4c00hint21hcodeendsendstart实验参考程序清单(1)     显示AL中两位十六进制数程序:;DISPHEX.ASMCODESEGMENTASSUMECS:CODESTART:MOVAL,3EHMOVBL,ALMOVDL,ALMOVCL,4SHRDL,CLCMPDL,9JBENEXT1ADDDL,7NEXT1:ADDDL,30HMOVAH,2INT21H;显示高位ASCII码MOVDL,BLANDDL,0FHCMPDL,9JBENEXT2ADDDL,7NEXT2:ADDDL,30HMOVAH,2INT21H;显示低位ASCII码MOVAH,4CHINT21HCODEENDS;返回DOSENDSTART(2)     显示键入字符程序;DISPKEY.ASMCODESEGEMENTASSUMECS:CODESTART:MOVAH,1INT21H;等待键入字符,送ALCMPAL,0DH;是否是回车符?JZDONE;是则转DONE退出程序CMPAL,’0’JBNEXTCMPAL,’9’JACHARUPMOVDL,ALMOVAH,2INT21HJMPSTARTCHARUP:CMPAL,41HJBNEXTCMPAL,5AHJACHRDNDISPC:MOVDL,’C’MOVAH,2INT21HNEXT:JMPSTARTCHRDN:CMPAL,61HJBNEXTCMPAL,7AHJANEXTJMPDISPCDONE:MOVAH,4CHINT21HCODE:ENDSENDSTART八.小结这次设计我学会了分支程序的设计。对汇编语言的编译、链接、执行有了进一步的认识。基本学会了汇编语言源程序的编辑、汇编、连接及调试的整个过程。同时也知道了DEBUG修改参数、检查结果的方法。6循环程序一.课程目的1.掌握循环程序的设计方法;2.学会针对不同的问题,选用不同的组织循环的方法;3.进一步熟悉利用DEBUG程序修改参数的方法,并检查和验证结果的正确性。二.课程内容1.编写一个程序,显示BX寄存器中的两位十六进制数;2.编写一个程序,判别键盘上输入的字符;若是1-9字符,则显示之;若为A-Z或a-z字符,均显示“c”;若是回车字符(其ASCII码为0DH),则结束程序,若为其它字符则不显示,继续等待新的字符输入。datasegmentDB0dataendscodesegmentassumecs:code,ds:datamainprocfarpushdssubax,axpushaxmovax,datamovds,axnext:movah,07int21hcmpal,0dhjEend_dcmpal,'0'JGEDY0;>=0JMPNEXT;<'0'...30HDY0:CMPAL,'9'JLEIS_09CMPAL,'A'JGEDY_A;DAYUAJMPNEXT;<'A'...41HDY_A:CMPAL,'Z'JLEIS_AZCMPAL,'a'JGEDY_xA;DAYUxAJMPNEXT;<'a'...61HDY_xA:CMPAL,'z'JLEIS_AZJMPNEXT;......................IS_AZ:MOVAH,02MOVDL,'c'INT21HJMPNEXTIS_09:MOVAH,2MOVDL,ALINT21HJMPNEXTend_d:retmainendpcodeendsendmain三.课程要求1.编写实验内容要求的两个程序;2.写出调试以上程序,即修改程序参数,检查结果的操作方法;3.熟悉源程序汇编、连接命令的使用方法即要回答的内容。四.环境PC微机DOS操作系统或Windows操作系统MASM.EXE,LINK.EXE,DEBUG.COM或宏汇编集成环境五.方法步骤1.用EDIT或其它编辑软件,编写.ASM源程序,例如HEXASC.ASM及DSPKEY.ASM;2.对其进行汇编及连接,产生.EXE文件;3.对.EXE文件进行调试运行。(1)用DEBUG调试运行,学会修改AL内容的方法;(2)对DSPKEY.EXE键入不同的字符,分别进行调试;(3)在MS-DOS下运行这两个.EXE文件。六.学习要求画出两个程序的流程图,若要独立编写程序,应列出相应的程序清单。七.思考题编写一循环程序,测量一字符串长度,并用16进制数显示之。stacksegmentstackdb16dup(0)stackendsdatasegmentmsg1db0ah,0dh,'PleaseInputAgain!','$'msg2db0ah,0dh,'BCDCode:','$'msg3db'PleaseInputyoudata:',0ah,0dh,'$'dataendscodesegmentassumecs:code,ds:data,ss:stackstart:movax,datamovds,axmovdx,offsetmsg3movah,09hint21hmovah,01hmovcx,4input:movah,01h;输入字符int21hcmpal,30hjbreinputcmpal,39hjazimusubal,30hjmpokzimu:andal,11011111b;字母转换cmpal,41hjbreinputcmpal,46hjareinputsubal,37hok:movah,0;将输入的字符合成为4位十六进制数pushcx;算法:左移4位,加上新输入的数movcl,4shlbx,claddbx,axpopcxloopinputmovax,datamovds,axmovdx,offsetmsg2;输出msg2movah,09hint21hbcd:movax,bx;转换为十进制,并将各位入栈movbx,10movcx,0s1:movdx,0divbxpushdxinccxcmpax,0jas1movbx,2s2:popax;各位出栈,转换为二进制pushcxmovcx,4s2_0:movdx,0divbxpushdxloops2_0movcx,4movah,02hs2_1:popdx;结果输出adddl,30hint21hloops2_1movdl,20hint21hpopcxloops2jmpok2reinput:movax,data;求重新输入movds,axmovdx,0movah,09hint21hjmpstartok2:movax,4c00hint21hcodeendsendstart八.小结本设计使我了解到循环程序的设计方法;知道对不同的问题用不同的循环方法。进一步熟悉了利用DEBUG程序修改参数的方法,并检查和验证结果的正确性的步骤方法。中间也遇到这样那样的问题,自己也有一些困惑不理解,但总体还是较成功的。总结:通过汇编语言课程设计,我对汇编语言有了进一步的认识。对程序的编写有更深的研究认知;培养了程序编写的好习惯。知道了程序编写、链接、执行的过程和方法。学会了MASM软件使用的基本方法。对以后的学习和工作都有积极的影响。参考文献1、《汇编语言课程设计案例精编》源代码之学生管理系统2、80x86汇编语言程序设计沈美明温冬婵清华大学出版社3、IBM-PC汇编语言程序设计实验 教程 人力资源管理pdf成真迷上我教程下载西门子数控教程protel99se入门教程fi6130z安装使用教程 PAGE37
本文档为【汇编语言实验报告】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
旋律
几年的财务工作经验,现认财务主管一职!精通各种财务管理软件
格式:doc
大小:577KB
软件:Word
页数:0
分类:
上传时间:2018-06-13
浏览量:2