汇编实验二--顺序程序设计

汇编实验二--顺序程序设计

ID:1245785

大小:346.50 KB

页数:22页

时间:2017-11-09

汇编实验二--顺序程序设计_第1页
汇编实验二--顺序程序设计_第2页
汇编实验二--顺序程序设计_第3页
汇编实验二--顺序程序设计_第4页
汇编实验二--顺序程序设计_第5页
资源描述:

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

1、福建农林大学金山学院实验报告系:信息与机电工程专业:电子信息技术年级:10姓名:学号:1002010实验课程:汇编语言实验室号:____67___实验设备号:E实验时间:指导教师签字:成绩:实验二顺序程序设计1.实验目的和要求1.学习使用DEBUG的命令;2.使用DEBUG命令在数据段中查看程序运行的结果;3.利用DEBUG运行简单的程序段。2.实验环境实验的硬件环境是:IBM—PC机及其兼容机实验的软件环境是:操作系统:DOS2.0以上;调试程序:DEBUG.COM;文本编程程序:EDIT.EXE、WPS.EXE;宏汇编程序:MASM.EXE(或ASM.EXE);连接装配程序:LI

2、NK.EXE;交叉引用程序:CREF.EXE(可有可无)。3.实验内容及实验数据记录1)输入程序观察寄存器变化使用DEBUG,将下面的程序段写入内存,逐条执行,观察每条指令执行后,CPU中相关寄存器的内容变化。注意用T命令执行时,CS:IP寄存器的内容MOVAX,4E20ADDAX,1416MOVBX,2000ADDAX,BXMOVBX,AXADDAX,BXMOVAX,001AMOVBX,0026ADDAL,BLADDAH,BLADDBH,ALMOVAH,0ADDAL,BLADDAL,9C2)下列程序单步运行,注意AL,BX,CX寄存器的变化,并观察数据段字母的变化。DSEGSEGM

3、ENTMSG1DB‘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)输入下面程序,按实验一和上面步骤运行一遍DSEGSEGMENTMSG1DW7856H,2038HMSG2DW?DSEGENDSCSEGSEGMENTASSUMECS:CSEG,DS:DSEGSTART:M

5、OVAX,DSEGMOVDS,AXMOVAX,MSG1ANDAX,MSG1+2MOVMSG2,AXMOVAL,0MOVAH,4CHINT21HCSEGENDSENDSTART5)编写调试下面的程序,用DEBUG查看数据段中的结果(1),X,Y,W为字节类型变量,结果存于Z单元,写出数据段和代码段。(无符号数)(2)X,Y为字节类型数,求,写出完整的数据段和代码段,不用乘除指令。(无符号数)4.算法描述及实验步骤1)(1)、dos进入debug环境,输入a进行程序段写入内存操作,如图:(2)、输入t单步运行跟踪观察到各寄存器的变化如图:(3)、在执行第一条指令MOVAX,4E20后寄存

6、器AX内容随即变为4E20,而当执行第二条指令ADDAX,1416后AX变为了6236,运行随后的指令各寄存器的变化完全吻合程序段所实现的功能,并且不难看到IP由0103不断的增加,而CS保留为13A1不变。2)(1)、由文本编辑内容2中的程序段存为II2.txt文件,并masm编译link连接通过,如图:3)&4)(1)、文本编辑内容4中代码段保存为II4.txt,masm编译link连接通过:(2)、d命令查看MSG2单元中存放的值,如图(执行ANDAX,MSG1+2后,未执行MOVMSG2,AX指令):5)(5-1)编写程序段如下:(1)、分析题目可知数据段中有X、Y、W、Z和

7、常数10、5,所以有:DATADB5,10XDB2YDB8ZDW?WDB10(2)、代码段中先执行(W-X)*10有:MOVAL,WSUBAL,XCBW;之前误解为乘指令操作数需16位故而出现此错误。MULDATA+1之后加5结果除于X+Y有:ADDAX,DB;DATA错输入为DBMOVCL,XADDCL,YDIVCL(3)、所以有最初代码如下(错误):DSEGSEGMENTDATADB5,10XDB2YDB8ZDW?WDB10DSEGENDSCSEGSE

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

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

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