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

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验报告实验名称汇编语言程序设计

|

|

专业班级:信息安全

学号:

姓名:

实验一汇编语言上机过程和Debug常用调试命令

一.实验目的:

学习程序设计的基本方法和技能,熟练掌握用汇编语言设计、编写、调试和运行程序的方法。

二.实验题目:

熟悉与实验有关的系统软件(如编辑程序、汇编程序、连接程序和调试程序等)的使用方法。在调试过程中,学习及掌握debug程序的各种操作命令。

三.问题描述:

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

四.方法说明:

a)使用ws、tc或EDIT编辑程序来建立源文件,然后存盘,使系统返回DOS。

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

如:汇编指示出错则需重新调用编辑程序修改错误,直至汇编通过为止。

c)用连接程序link 产生执行文件EXE.

d)执行程序,可直接从DOS执行程序。

e)使用debug程序调试程序的方法。

五.实验步骤:

1.调用字处理程序EDIT 建立以sample.asm文件

datarea 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

main proc far

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

start:

push ds

sub ax,ax

push ax

mov ax,datarea

mov ds,ax

mov es,ax

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

main endp

prognam ends

end start

2.对源文件汇编产生目标文件obj

D:\masm 文件名。Asm

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

D:\link文件名。Obj

4.执行程序

D:\ 文件名

5. 使用debug程序调试程序的方法。

d>debug 文件名.exe

_

1.用G命令运行程序

2.用U命令显示程序

3.学会设置断点。

4.学会查看数据段的内容情况D

5.用E命令修改数据区的字符串。

6.用A 命令把数据区的内容恢复原状

7.T命令逐条跟踪程序的执行

8.学会使用F命令、R命令、Q命令等等

五、实验总结

第一次进行汇编实验,主要是学习程序设计的基本方法和技能,熟练掌握用汇编语言设计、编写、调试和运行程序的方法,只有多上机练习,才能更好的掌握汇编语言程序设计的思想。

实验二循环程序设计1

循环结构是控制重复执行某一程序段的基本程序结构. 在汇编语言程序设计中, 循环程序的地位也是极为重要,从本质上来看, 循环程序结构是分支程序结构的一种手特殊形式, 也是使用条件转移指令来控制执行循环的.

一.实验目的:

学会用循环结构进行程序编程。

二.实验题目:

设计一个按表格形式显示ASC||码为10H—100H的所有字符的程序。

三.实验要求:

按15行*16列的表格形式显示ASC||码为10H----100H的所有字符,即以行为主的顺序及ASC||码递增的次序依次显示对应的字符。每16个字符为一行,每行中的相邻两个字符之间用空白符(ASC||为0)隔开。

四.方法说明:

(1) 显示每个字符可使用功能号为02的显示输出功能调用,使用方法如

下:

mov ah,02h

mov dl,0AH

int 21h

本题中可把dl 初始化为10H, 然后不断使其加1(用INC指令) 以取得下一个字符的ASC||码。

(2) 显示空白符时,用其ASC||码0置入dl 寄存器,每行结束时,用显

示回车(ASC||为0dh)和换行符(ASC||为oah)来结束本行并开始下一行。

(3) 由于逐个显示相继的ASC||字符时,需要保存并不断修改dl寄存器

的内容,而显示空白、回车、换行符时也需要使用dl寄存器,为此可

使用堆栈来保存相继的ASC||字符。具体用法是:在显示空白或回车,

换行符前用指令

push dx 把dl 的内容保存到堆栈中去。在显示空白或回车,换行符后用指令

pop dx 恢复dl寄存器的原始内容。

五、实验代码

stack segment

db100 dup (?)

stack ends

code segment

assume cs:code,ss:stack

start:

相关文档
最新文档