实验一汇编语言程序与调试汇编语言的上机处理过程汇编语言源程序编辑EDIT汇编语言源文件.ASM汇编MASM机器语言目标文件.OBJ连接LINK机器语言执行文件.EXE执行结果汇编语言两种格式name……datasegment…………….dataendsstacksegmentparastack‘stack’db100dup(?)stackendscodesegmentassumeds:data,cs:code,ss:stack,es:datastart:movax,datamovds,axmoves,ax…………………..movah,4chint21h……………………codeendsendstart汇编语言两种格式name……datasegment………………dataendsstacksegmentparastack‘stack’db100dup(?)stackendscodesegmentassumeds:data,cs:code,ss:stack,es:dataaaaprocfarStart:pushdsmovax,0pushaxmovax,datamovds,axmoves,ax………………retaaaendp……………….codeendsendstart演示程序1namey_to_xdatasegmentdb‘vvvvvvvvvvvvvvvv’xdw0fff0h,2210h,0h,0e999hydw4dup(?)countdw4dataendsstacksegmentparastack‘stack’db100dup(?)stackendscodesegmentassumeds:data,cs:code,ss:stack,es:datastart:movax,datamovds,axmoves,ax=1,当x0时y==0,当x=0时=-1,当x0时leasi,xleadi,ymovcx,countsigef:lodsworax,axjezerojnsplusmovbx,0ffffhjmpcont1zero:movbx,0jmpcont1plus:movbx,1cont1:movax,bxstoswdeccxjnzsigefmovah,4chint21hcodeendsendstart演示程序2namey_to_xdatasegmentdb'vvvvvvvvvvvvvvvv'inbufferdb21db?db20dup(?)dataendsstacksegmentparastack'stack'db100dup(?)stackendscodesegmentassumeds:data,cs:code,ss:stack,es:datastartprocfarpushdsmovax,0pushax从键盘输入一串英文字符(不超过20个字母),将其中的大写字母变成小写字母,将变换前后字符串在屏幕上输出。movax,datamovds,axmoves,axcallgetcodeleasi,inbufferincsimovcl,[si]again:incsimoval,[si]cmpal,'A'jbnochancmpal,'Z'janochanchange:addal,20Hmov[si],alnochan:loopagainmovbyteptr[si+1],'$'callputcoderetstartendpgetcodeprocmovdx,offsetinbuffermovah,0ahint21hretgetcodeendpputcodeprocmovdx,offsetinbuffer+2movah,09hint21hretputcodeendpcodeendsendstart实验步骤1、开机,进入D盘。2、在D:\下建立一个自己的子目录(mdd:\zxj)例如d:\zxj,将D:\MASM目录下的所有程序拷入新建的目录下(copyc:\masm\*.*d:\zxj)。3、进入该目录(cdd:\zxj),键入如下命令开始编辑程序:d:\zxjedit文件名.asm4、将程序保存后返回DOS进行汇编,键入如下命令:d:\zxjmasm文件名.asm如果汇编通过,进行下一步,如果出现错误,返回3步骤,根据错误的行数进行修改,然后重新编译。5、将程序进行连接,键入如下命令:d:\zxjlink文件名.obj如果连接正确,进行下一步,如果错误返回3步骤进行修改,然后重新编译和连接。6、执行程序,键入如下命令:d:\zxj文件名.exe如果执行正确,则应该显示正确结果;如果执行错误,返回步骤3,重新编译连接和执行。7、如果不能直接从程序中找出错误,可以应用Debug程序进行调试,键入如下命令:d:\zxjdebug文件名.exe在找出错误后,重新返回3步骤,重新编译连接和执行。8、程序全部调试完后,直接关机,按4秒以上。Debug调试程序的主要命令1、显示内存单元的内容d[地址]从指定地址开始,显示80H单元的内容。2、检查寄存器单元的内容r3、运行程序命令g[地址]从现在的指令开始,执行到地址参数所在的指令。Debug调试程序的主要命令4、追踪命令t[指令数]从目前指令开始执行若干条指令后停止。5、反汇编指令u[地址]从指定的地址开始,反汇编16个字节的指令。5、退出指令q退注debug,返回dos。注意事项1、要带上鞋套。2、请带一张软盘或U盘,用于保存未调试完的程序。3、两人一组,尽量坐在2~3个教室内,便于管理。4、做完程序后,老师要检查结果和源程序,然后才可以下机。5、在上课之前将实验程序编好,程序调试完毕后保留正确的程序,将源程序和流程图写在作业本上,作为一次作业。6、如果出现死机情况,可以按ctrl+c或ctrl+break,如果还无法起机,可按ctrl+alt+del重新启动。实验题目1、用键盘输入的方式将‘Mynameis……’显示在CRT上,回车后用系统调用功能在CRT上显示‘Hello……’字样。2、任意给出5个十进制正数(0X99),然后将其从大到小排序,并将排序前后的数据在CRT上显示出来。