汇编实验报告代码(范例).doc
《汇编实验报告代码(范例).doc》由会员分享,可在线阅读,更多相关《汇编实验报告代码(范例).doc(9页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、汇编实验报告代码(范例)汇编语言程序设计 实验报告 实验名称 上机过程及顺序构造与分支构造程序设计实验 班 级 学 号 姓 名 日 期 成 绩 评 阅 人 软件学院一、 实验目的与意义 1、掌握汇编语言程序设计的根本方法和技能; 2、纯熟掌握使用全屏幕编辑程序 EDIT 编辑汇编语言程序; 3、纯熟掌握宏汇编程序 MASM 的使用; 4、纯熟掌握连接程序 LINK 的使用。5、掌握分支程序的构造 6、掌握分支程序的设计、调试方法 二、 实验环境 上机号:24# 操作系统:dows _p professional sp2 软件环境:Editplus +MASM+LINK+DEBUG 三、 实验的
2、预习内容 汇编程序上机的主要分为编辑,汇编,连接,执行等几个步骤 汇编语言的工作环境 为了运行汇编语言程序磁盘上应该有以下文件:MASM.E_E LINK.E_E CREF.E_E DEBUG. 或 DEBUG.E_E 1、汇编语言程序的汇编过程 汇编语言程序的汇编过程是是利用汇编程序MASM对已编辑好的程序文件.ASM进展汇编,将程序文件中以 ASCII 码表示的助记符指令逐条翻译成机器码指令,并完成程序中的伪指令所指出的各种操作,最后可以建立 3 个文件:扩展名为 .OBJ 的目的文件、扩展名为 .LST 的列表文件和扩展名为 .CRF 的穿插索引文件。目的文件是必须建立的,它包含了程序中
3、所有的机器码指令和伪指令指出的各种有关信息,但该文件中的操作数地址还不是内存的绝对地址,只是一个可浮动的相对地址。列表文件.LST中包含了程序的全部信息(包括注释)和汇编后的目的程序,列表文件可以打印输出,可供调试检查用。穿插索引文件.CRF是用来理解程序中各符号的定义和引用情况的。.LST 和.CRF 两个文件不是必须建立的,可有有无,可以通过汇编时的命令加以选择。在对程序文件(ASM 文件)汇编时,汇编程序将对 ASM 文件进展两遍扫描,假设程序文件中有语法错误,那么完毕汇编,汇编程序将指出程序中存在的错误,这时应返回编辑环境修改程序中的错误,再经过汇编,直到最后得到无错误的目的程序,即
4、OBJ 文件。因此,汇编程序的主要功能可以概括为以下三点:(1) 检查程序中的语法错误,并给出错误信息;(2) 产生目的程序文件(OBJ 文件),并可给出列表文件(.LST文件);(3) 展开宏指令。汇编程序是系统提供的用于汇编的系统软件,目前常用的汇编程序有 公司推出的宏汇编程MASM(MACRO ASSEMBLER)和 BORLAND 公司推出的 TASM(TURBO ASSEMBLER)两种。 公司推出有宏汇编程序 MASM 和小汇编程序 ASM 两种,二者的区别在于:MASM 有宏处理功能,而 ASM 没有宏处理功能,因此,MASM 比 ASM 的功能强大,但 MASM 需要占据较大的
5、内存空间,当内存空间较小时(如 64 KB),只能使用 ASM。2、目的程序的连接过程 汇编后产生的目的程序(OBJ 文件)并不是可执行程序文件(E_E 文件),还不能直接运行,它必须通过连接程序(LINK)连接成一个可执行程序后才能运行。连接程序进展连接时,其输入有两个局部:一是目的文件(.OBJ),目的文件可以是一个也可以是多个,可以是汇编语言经汇编后产生的目的文件,也可以是高级语言(例如 C 语言)经编译后产生的目的文件;另一是库文件(.LIB),库文件是系统中已经建立的,主要是为高级语言提供的。连接后输出两个文件,一是扩展名为 .E_E 的可执行文件,另一个是扩展名为 .MAP 的内存
6、分配文件,它是连接程序的列表文件,又称为连接映像(Link Map),它给出每个段在存储器中的分配情况,该文件可有可无。连接程序给出的“无堆栈段的警告性错误”并不影响程序的运行。所以,到此为止,连接过程已经完毕,可以在操作系统下执行该.E_E 程序了。3、汇编语言和 DOS 操作系统的接口 编写的汇编语言程序是在 DOS 环境下运行时,必须理解汇编语言是如何同 DOS 操作系统接口的。用编辑程序把程序输入到机器中,用汇编程序把它转换为目的程序,用连接程序对其进展连接和定位时,操作系统为每一个用户程序建立了一个程序段前缀区 PSP,其长度为 256 个字节,主要用于存放所要执行程序的有关信息,同
7、时也提供了程序和操作系统的接口。操作系统在程序段前缀的开场处(偏移地址0000H)安排了一条 INT 20H 软中断指令。INT 20H 中断效劳程序由 DOS 提供,执行该效劳程序后,控制就转移到 DOS,即返回到 DOS 管理的状态。因此,用户在组织程序时,必须使程序执行完后能去执行存放于 PSP 开场处的 INT 20H 指令,这样便返回到 DOS,否那么就无法继续键入命令和程序。DOS 在建立了程序段前缀区 PSP 之后,将要执行的程序从磁盘装入内存。在定位程序时,DOS 将代码段置于 PSP 下方,代码段之后是数据段,最后放置堆栈段。内存分配好之后,DOS 就设置段存放器 DS和 E
8、S 的值,以使它们指向 PSP 的开场处,即 INT 20H 的存放地址,同时将 CS 设置为 PSP 后面代码段的段地址,IP 设置为指向代码段中第一条要执行的指令位置,把 SS 设置为指向堆栈的段地址,让 SP 指向堆栈段的栈底,然后系统开场执行用户程序。四、 实验的步骤与调试方法 1、实验步骤图 五、 实验数据与实验结果 1、实验一 ,题目一中 教材 P51 页程序 编辑、连接、单步执行后的输出结果 2、用 E 命令修改结果修改 0B6B:0001 的数据 68 为 32 用 G 命令查看结果查看地址为 0B6B:0010 处的情况 1、 用 A 命令修改程序(修改 ADD 为 SUB)
9、 程序执行 SUB 结果为 实验一,题目二正数、负数、DW、DD 4 个数的存储情况 实验二,顺序构造程序设计实验 十进制输出 十六进制输出 实验三、 分支程序设计实验 1、最后输出结果为 2D 空格,而-1H,-13H,-7H 内存地址为 0000,0001,0002这组数据比拟后的结果就是输出空格 2、程序分配内存连续 可以知道 DATA2 DB 1H,13H,7H DATA3 DB -9H,3H,-8H 这两组数据的地址依次是 0003,0004,0005,0006,0007,0008 所以在 debug 中使用 A 命令进展如下修改 将地址 0003,0004,0005 对应的三个数即
10、是 1H,13H,7H 进展比拟,并输出结果为 2B,如以下图单步执行结果 2B 所对应的即是“+” 继续修改地址为 0006,0007,0008 对应的数为-9H,3H,-8H 可以意料输出结果为空格 下面进入 debug 修改 修改完以后再单步执行输出结果如下 DL,20 就是把空格输出,而题意就是异号的数比拟输出空格 六、 实验用程序清单 实验一,题目 1:;- ;东北大学 20223660 ;- ; 9156571 ;- DSEG SEGMENT ;数据段开场 DATA1 DB 26H,15H ;原始数据 DATA2 DW 0H ;保存结果单元 DSEG ENDS ;数据段完毕 SSE
11、G SEGMENT STACK ;堆栈段开场 SK DB 20 DUP(0) SSEG ENDS ;堆栈段完毕 CSEG SEGMENT ;代码段开场 ASSUME CS:CSEG,DS:DSEG ASSUME SS:SSEG START: MOV A_,DSEG ;初始化数据段基址 MOV DS,A_ MOV A_,SSEG ;初始化堆栈段基址 MOV SS,A_ MOV SP,SIZE SK MOV AL,DATA1 ;取第一个数据 ADD AL,DATA1+1 ;与第二个数相加 MOV BYTE PTR DATA2,AL ;保存完毕 MOV AH,4CH ;返回 DOS INT 21H
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编 实验 报告 代码 范例
限制150内