顺序程序设计

顺序程序设计

ID:33835063

大小:190.00 KB

页数:8页

时间:2019-03-01

顺序程序设计_第1页
顺序程序设计_第2页
顺序程序设计_第3页
顺序程序设计_第4页
顺序程序设计_第5页
资源描述:

《顺序程序设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、实验二顺序程序设计1.实验目的和要求1.学习使用DEBUG的命令;2.使用DEBUG命令在数据段中查看程序运行的结果;3.利用DEBUG运行简单的程序段。2.实验环境实验的硬件环境是:IBM—PC机及其兼容机实验的软件环境是:操作系统:DOS2.0以上;调试程序:DEBUG.COM;文本编程程序:EDIT.EXE、WPS.EXE;宏汇编程序:MASM.EXE(或ASM.EXE);连接装配程序:LINK.EXE;交叉引用程序:CREF.EXE(可有可无)。3.实验内容及实验数据记录1)输入程序观察

2、寄存器变化使用DEBUG,将下面的程序段写入内存,逐条执行,观察每条指令执行后,CPU中相关寄存器的内容变化。注意用T命令执行时,CS:IP寄存器的内容MOVAX,4E20ADDAX,1416MOVBX,2000ADDAX,BXMOVBX,AXADDAX,BXMOVAX,001AMOVBX,0026ADDAL,BLADDAH,BLADDBH,ALMOVAH,0ADDAL,BLADDAL,9C2)下列程序单步运行,注意AL,BX,CX寄存器的变化,并观察数据段字母的变化。DSEGSEGMENTMS

3、G1DB‘abc’DSEGENDSCSEGSEGMENTASSUMECS:CSEG,DS:DSEGSTART:MOVAX,DSEGMOVDS,AXLEABX,MSG1MOVCX,3S:MOVAL,[BX]ANDAL,11011111B;将AL中的ASCII码的第5位置0,;变成大写字母。MOV[BX],ALINCBXLOOPSMOVAL,0MOVAH,4CHINT21HCSEGENDSENDSTART3)程序的跟踪执行操作在DOS下直接输入文件主名就可以执行文件了,有的程序会显示结果,可能执行后

4、什么结果都没有,是因为程序中没有显示命令。那么如何查看程序的运行结果呢?程序执行过程的跟踪操作步骤如下:(1)在DOS下输入:DEBUG文件名.EXE(2)在DEBUG提示符下输入U命令(3)可以用T命令单步执行指令,执行到MOVAH,4CH时结束,也可以用G命令执行整个程序,输入:G=B地址(如:G=0000)(4)用D命令查看程序执行后数据段的变化输入:DK地址:0(如:D1260:0)在显示的数据中,对照源程序或LST文件查看结果所在的偏移地址的内容。4)编写调试下面的程序,用DEBUG查

5、看数据段中的结果(1),X,Y,W为字节类型变量,结果存于Z单元,写出数据段和代码段。(无符号数)(2)X,Y为字节类型数,求,写出完整的数据段和代码段,不用乘除指令。(无符号数)4.算法描述及实验步骤1)用EDIT或记事本输入各段,并存储成源程序(保存在MASM目录下)。扩展名为.asm;2)对源程序进行汇编、连接操作如下:(1)在DOS状态下,进入MASM目录;(2)输入命令:MASM文件名(连同扩展名);(3)在系统出现的提示中,输入文件名,生成list文件;(4)如果系统没有提示出错,编

6、译完成。提示错误则应用EDIT打开源文件进行修改,然后再重复(2)、(3)步骤。(5)输入:LINK文件主名(6)没有提示错误,汇编过程就结束了,产生了.exe可执行文件。3)执行文件:在DOS提示符下直接输入文件主名即可。进入debug,输入T命令,单步执行程序;按G命令,显示项目正常;按D命令,显示存储单元内容。5.调试过程实验1:利用T命令逐条执行指令………实验2:用T命令逐步运行程序,直至出现进入循环,直至完成‘abc’的输出,循环停止。直到出现INT21,程序执行完毕,如图。将代码改为

7、大写字母ABC变成小写字母abc,只需将:(1)将MSG1DB'abc'改为MSG1DB'ABC'(2)将ANDAL,11011111B改为ORAL,00100000B实验4:问题分析:先定义四个字节变量(第二小题三个),给X、Y、Z、W赋初值,AL是结果存放单元。为了方便数据的重复使用,采用寄存器AX、BH、AL、BL存放中间结果。流程图:(1)开始(2)开始W-X—ALX+Y—AL(W-X)*10—AX(X+Y)*8—AX;左移三位(W-X)*10+5—AX(X-Y)*2—BLX+Y—BHZ

8、=((X+Y)*8-(X-Y)*2)/16Z右移四位商存在AL中,余数在AH中结束结束6.实验结果1、在用t命令进行逐步执行程序的过程中,发现CS、DS、ES、SS的值不变且相同,且SP也不变,而IP则根据执行命令的次数,每执行一次增加2;且每执行完一条指令,会显示下一步执行的语句。2、开始时BX值都为0,在执行到‘LOOPS’语句时变为0001,并且每循环一次BX值都加1;开始时CX值为002B,执行语句‘MOVCX,3’后CX被赋值为0003,随着每次循环CX的值都减1,到最后值为0000;

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。