- 1、本文档共22页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
汇编实验二--顺序程序设计
福建农林大学金山学院实验报告
系: 信息与机电工程 专业: 电子信息技术 年级: 10
姓名: 学号: 1002010 实验课程: 汇编语言
实验室号:____67___ 实验设备号: E 实验时间:
指导教师签字: 成绩:
实验二 顺序程序设计
1.实验目的和要求
学习使用DEBUG的命令;
使用DEBUG命令在数据段中查看程序运行的结果;
利用DEBUG运行简单的程序段。
ADD BH, AL
MOV AH, 0
ADD AL, BL
ADD AL, 9C
2)下列程序单步运行,注意AL,BX,CX寄存器的变化,并观察数据段字母的变化。
DSEG SEGMENT
MSG1 DB ‘abc’
DSEG ENDS
CSEG SEGMENT
ASSUME CS: CSEG, DS: DSEG
START: MOV AX, DSEG
MOV DS, AX
LEA BX, MSG1
MOV CX, 3
S: MOV AL, [BX]
AND AL, ;将AL中的ASCII码的第5位置0,
;变成大写字母。
MOV [BX], AL
INC BX
LOOP S
MOV AL, 0
MOV AH, 4CH
INT 21H
CSEG ENDS
END START
3)程序的跟踪执行操作
在DOS下直接输入文件主名就可以执行文件了,有的程序会显示结果,可能执行后什么结果都没有,是因为程序中没有显示命令。那么如何查看程序的运行结果呢?
程序执行过程的跟踪操作步骤如下:
(1)在DOS下输入:DEBUG 文件名.EXE
(2)在DEBUG提示符下输入U命令
(3)可以用T命令单步执行指令,执行到 MOV AH, 4CH时结束,也可以用G命令执行整个程序,输入:G=B地址(如:G=0000)
(4)用D命令查看程序执行后数据段的变化
输入:D K地址:0 (如:D1260:0)
在显示的数据中,对照源程序或LST文件查看结果所在的偏移地址的内容。
4)输入下面程序,按实验一和上面步骤运行一遍
DSEG SEGMENT
MSG1 DW 7856H,2038H
MSG2 DW ?
DSEG ENDS
CSEG SEGMENT
ASSUME CS:CSEG,DS:DSEG
START: MOV AX,DSEG
MOV DS,AX
MOV AX,MSG1
AND AX,MSG1+2
MOV MSG2,AX
MOV AL,0
MOV AH,4CH
INT 21H
CSEG ENDS
END START
5)编写调试下面的程序,用DEBUG查看数据段中的结果
(1),X,Y,W为字节类型变量,结果存于Z单元,写出数据段和代码段。(无符号数)
(2)X,Y为字节类型数,求,写出完整的数据段和代码段,不用乘除指令。(无符号数)
4.算法描述及实验步骤
1)
(1)、dos进入debug环境,输入a进行程序段写入内存操作,如图:
(2)、输入t单步运行跟踪观察到各寄存器的变化如图:
(3)、在执行第一条指令MOV AX, 4E20后寄存器AX内容随即变为4E20,而当执行第二条指令ADD AX, 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单元中存放的值,如图(执行AND AX,MSG1+2后,未执行MOV MSG2,AX指令):
5)
(5-1)编写程序段如下:
(1)、分析题目可知数据段中有X、Y、W、Z和常数10、5,所以有:
DATA
文档评论(0)