广工汇编语言程序设计实验报告

更新时间:2023-09-30 22:46:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

汇编语言实验报告

题目:1、 实验方法

2、 用表格形式显示字符 3、 分类统计字符个数 4 、 查找电话号码

学生学院 计算机学院 专业班级 06 学 号 31 学生姓名_________ ______ 指导教师

200 8 年 6 月 1 日

计算机 学院 06 专业 2班__组、学号3姓名 协作者_________ 教师评定 实验题目 实验方法

实验一

一、 实验目的与要求

掌握用汇编语言设计、编写、调试和运行程序的方法。掌握debug程序的各种操作命令,熟悉程序的调试及其技巧。

二、 实验内容

比较字符串sample.asm(文件名)

试编写一程序:比较两个字符串stringl和string2所含的字符是否相同。若相同则显示‘Match’,否则,显示‘No match’。

三、 实验步骤

1. 调用字处理程序wordstar或记事本建立asm文件

建立sample.asm源文件如图1.1所示:

;********************************************* datarea segment ;define data segment string1 db 'Move the cursor backward.' string2 db 'Move the cursor backward.' ;

mess1 db 'Match.',13,10,'$' mess2 db 'No match!',13,10,'$' datarea ends

;********************************************* prognam segment ;define code segment

;------------------------------------------------------------------- main proc far

assume cs:prognam,ds:datarea,es:datarea

start: ;start execution address ;set up stack for return

push ds ;save old data segment sub ax,ax ;push zero in AX push ax ;save it on stack ;set DS register to current data segment

mov ax,datarea ;datarea segment addr mov ds,ax ;into DS register mov es,ax ;into ES register ;MAIN PART OF PROGRAM GOES HERE lea si,string1 lea di,string2 cld

mov cx,25 repz cmpsb jz match lea dx,mess2 jmp short disp match:

lea dx,mess1 disp:

mov ah,09 int 21h

ret ;return to DOS

main endp ;end of main part of program ;----------------------------------------------------------------------- prognam ends ;end of code segment

;************************************************ end start ;end assembly

图1.1 源文件sample.asm

2. 用汇编程序masm(或asm)对源文件汇编产生目标文件obj

C:>masm sample;

3. 用连接程序link产生执行文件exe

C:>link sample 4. 执行程序

可直接从DOS执行程序如下: C:>sample Match.

终端上已显示出程序的运行结果。为了调试程序的另一部分,可重新进编辑程序修改两个字符串的内容,使他们互不相同。如修改后的数据区为:

;********************************************* datarea segment ;define data segment string1 db 'Move the cursor backward.' string2 db 'Move the cursor forward.' ;

mess1 db 'Match.',13,10,'$' mess2 db 'No match!',13,10,'$' datarea ends

;*********************************************

然后,重新汇编、连接、执行,结果为: C:>sample No match!

至此,程序已经调试完毕,运行结果正确。

另一种调试程序的方法是使用debug程序。可调用如下:

C:>debug sample.exe

可先用u命令显示程序,以便了解指令地址。显示结果如图1.2所示:

图1.2 用debug调试时,u命令的显示情况

将断点设置在程序的主要部分运行以前,同时根据其中指示的DS寄存器内容查看数据段的情况如下:

可用e命令修改数据区的字符串,操作如下图所示,再次用d命令查看修改结果。

用g命令运行程序,结果为: -g

No match!

用q命令退出debug -q

至此程序已调试完毕。

四、 心得体会

通过这次实验主要是学习使用debug调试程序,掌握对程序的调试方法。虽然在调试过程中有遇到一定的难处,但是通过反复实验和同学的帮助还是能够比较顺利的完成的。个人觉得这个调试方法比较不直接点,不过相信应该有它的独到之处吧。

本文来源:https://www.bwwdw.com/article/om2d.html

Top