新版汇编语言程序设计实验指导书Word格式文档下载.docx

上传人:b****1 文档编号:13407000 上传时间:2022-10-10 格式:DOCX 页数:12 大小:237.28KB
下载 相关 举报
新版汇编语言程序设计实验指导书Word格式文档下载.docx_第1页
第1页 / 共12页
新版汇编语言程序设计实验指导书Word格式文档下载.docx_第2页
第2页 / 共12页
新版汇编语言程序设计实验指导书Word格式文档下载.docx_第3页
第3页 / 共12页
新版汇编语言程序设计实验指导书Word格式文档下载.docx_第4页
第4页 / 共12页
新版汇编语言程序设计实验指导书Word格式文档下载.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

新版汇编语言程序设计实验指导书Word格式文档下载.docx

《新版汇编语言程序设计实验指导书Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《新版汇编语言程序设计实验指导书Word格式文档下载.docx(12页珍藏版)》请在冰豆网上搜索。

新版汇编语言程序设计实验指导书Word格式文档下载.docx

其中文件名是被调试文件的名称,它须是执行文件(EXE,两个参数是运行被调试文件时所需要的命令参数,在DEBUG程序调入后,出现提示符“-

”,此时,可键入所需的DEBUG命令。

在启动DEBUG时,如果输入了文件名,则DEBUG程序把指定文件装入内存。

用户可以通过DEBUG的命令对指定文件进行修改、显示和执行。

如果没有文件名,则是以当前内存的内容工作,或者用命名命令和装入命令把需要的文件装入内存,然后再用DEBUG的命令进行修改、显示和执行。

2、DEBUG的主要命令

(1汇编命令A,格式为:

-A[地址]

该命令从指定地址开始允许输入汇编语句,把它们汇编成机

器代码相继存放在从指定地址开始的存储器中。

(2反汇编命令U,有两种格式:

1-U[地址]

该命令从指定地址开始,反汇编32个字节,若地址省略,则从上

一个U命令的最后一条指令的下一个单元开始显示32个字节。

2-U范围

该命令对指定范围的内存单元进行反汇编,例如:

-U04BA:

01000108或–U04BA:

0100L9

此二命令是等效的。

(3运行命令G,格式为:

-G[=地址1][地址2[地址3。

]]

其中地址1规定了运行起始地址,后面的若干地址均为断点地址。

(4追踪命令T,有两种格式:

1逐条指令追踪:

-T[=地址]

该命令从指定地址起执行一条指令后停下来,显示寄存器内容和状态值。

2多条指令追踪:

-T[=地址][值]

该命令从指定地址起执行n条命令后停下来,n由[值]确定。

(5显示内存单元内容的命令D,格式为:

-D[地址]或-D[范围]

(6修改内存单元内容的命令E,它有两种格式:

1用给定的内容代替指定范围的单元内容:

-E地址内容表

例如:

-E2000:

0100F3“XYZ”8D

其中F3,“X”“Y”“Z”和8D各占一个字节,用这五个字节代替原内存单元2000:

0100到0104的内容,“X”“Y”“Z”将分别按它们的ASCII码值代入。

2逐个单元相继地修改:

-E地址

-E100:

18E4:

010089.78

此命令是将原100号单元的内容89改为78。

78是程序员键入的。

(7检查和修改寄存器内容的命令R,它有三种方式:

1显示CPU内部所有寄存器内容和标志位状态;

格式为:

-R

2显示和修改某个指定寄存器内容,格式为:

-R寄存器名

例如打入:

-RAX

系统将响应如下:

AXFIF4

:

表示AX当前内容为F1F4,此时若不对其作修改,可按ENTER键,否则,打入修改后内容,如:

-RBX

BX0369

059F

则BX内容由0369改为059F

3显示和修改标志位状态,命令格式为:

-RF

系统将给出响应,如

OVDNEINGZRACPECY-

这时若不作修改可按ENTER键,否则在“-”号之后键入修改值,键入顺序任意。

如OVDNEINGZRACPECY-PONZDINV

(8命名命令N,格式为:

-N文件名

此命令将文件名格式化在CS:

5CH的文件控制块内,以便使用L

或W命令把文件装入内存进行调试或者存盘。

(9装入命令L,它有两种功能:

1把磁盘上指定扇区的内容装入到内存指定地址起始的单元中,

-L地址驱动器扇区号扇区数

2装入指定文件,格式为:

-L[地址]

此命令装入已在CS:

5CH中格式化的文件控制块所指定的文件。

在用L命令前,BX和CX中应包含所读文件的字节数。

(10写命令W,有两种格式:

1把数据写入磁盘的指定扇区:

-W地址驱动器扇区号扇区数

2把数据写入指定文件中:

-W[地址]

此命令把指定内存区域中的数据写入由CS:

5CH处的FCB所规定的文件中。

在用W命令前,BX和CX中应包含要写入文件的

字节数。

(11退出DEBUG命令Q,该命令格式为

Q

它退出DEBUG程序,返回DOS,但该命令本身并不把在内存中的文件存盘,如需存盘,应在执行Q命令前先执行写命令W。

三.实验要求:

用汇编语言编写一个计算“3+5”的加法程序

四.实验报告:

写出在DEBUG状态下编写、运行程序的过程以及调试所中遇到的问题

是如何解决的,并对调试过程中的问题进行分析,对执行结果进行分析。

实验二内存操作数及寻址方法

1、熟练掌握DEBUG的常用命令,学会用DEBUG调试程序。

2、掌握数据在内存中的存放方式和内存操作数的几种寻址方式。

3、掌握简单指令的执行过程。

1、设堆栈指针SP=2000H,AX=3000H,BX=5000H;

请编一程序段将AX和BX的内容进行交换。

请用堆栈作为两寄存器交换内容的中间存储单元,用DEBUG调试程序进行汇编与调试。

2、设DS=当前段地址,BX=0300H,SI=0002H;

请用DEBUG的命令将存储器偏移地址300H~304H连续单元顺序装入0AH,0BH,0CH,0DH,

0EH。

在DEBUG状态下送入下面程序,并用单步执行的方法,分析每条指令源地址的形成过程,当数据传送完毕时,AX中的内容是什么。

程序清单如下:

MOVAX,BX

MOVAX,0304H

MOVAX,[0304H]

MOVAX,[BX]

MOVAX,0001[BX]

MOVAX,[BX][SI]

MOVAX,0001[BX][SI]

HLT

1、实验前要做好充分准备,包括汇编程序清单、调试步骤、调试方法,以及对程序结果的分析等。

2、本实验只要求在DEBUG调试程序状态下进行,包括汇编程序、调试程序和执行程序。

1、程序说明。

说明程序的功能、结构。

2、调试说明。

包括上机调试的情况、上机调试步骤、调试所遇到的问题是如何解决的,并对调试过程中的问题进行分析,对执行结果进行分析。

3、写出源程序清单和执行结果。

实验三汇编语言程序的调试与运行

一.实验目的

1.学习数据传送和算术运算指令的用法

2.熟悉在PC机上编辑、汇编、连接、调试和运行汇编语言程序的过

程。

二.实验内容

将两个多位十进制数相加,要求被加数和加数均以ASCII码形式各自顺序存放在DATA1和DATA2为首的5个内存单元中,结果送回DATA1处。

三.程序框图

图3.1两个多位十进制相加程序流程图

四.调试步骤

1.编辑源程序,建立一个以后缀为.ASM的文件.

2.汇编源程序,检查程序有否错误,有错时回到编辑状态,修改程

序中错误行。

无错时继续第3步。

3.连接目标程序,产生可执行程序。

4.DEBUG调试可执行程序,记录数据段的内容。

5.在操作系统状态下,运行程序,并记录屏幕显示内容。

五.思考题

1.将上述程序改为5位数相加,结果为6位数的加法程序。

(需考虑

进位

2.简单叙述上机步骤,调试方法。

实验四查表程序设计

1、熟练掌握编写汇编语言原程序的基本方法和基本框架。

2、掌握查表法和查表指令XLAT。

3、熟练使用DEBUG调试程序。

用查表的方法将一位十六进制数转换成与它相应的ASCII码,并将结果存放到ASCI单元中。

三.编程提示:

既然指定用查表的方法,那么首先要建立一个表TABLE。

我们在表中按照十六进制数从小到大的顺序放入他们对应的ASCII码值。

DATASEGMENT

TABLEDB30H,31H,32H,33H,34H,35H,36H,37H

DB38H,39H,41H,42H,43H,44H,45H,46HHEXDBX;

X为待转换的十六进制数ASCIDB?

;

存放转换后的ASCII码

DATAENDS

四.实验要求:

实验前要做好充分准备,包括汇编程序清单、调试步骤、调试方法,以及对程序结果的分析等

五.实验报告:

实验五系统功能调用

1、掌握接受键盘数据的方法,并了解将键盘数据显示时,须转为ASCII

码的原理。

2、掌握DOS功能调用的编程方法。

试编写一个汇编语言程序,要求对键盘输入的小写字母用大写字母显示出来。

三.编程提示:

利用DOS功能调用INT21H的1号功能从键盘输入字符和2号功能在显示器上显示一个字符。

实验前要做好充分准备,包括汇编程序清单、调试步骤、调试方法,以及对程序结果的分析等。

实验六分支程序设计

1、掌握分支程序的结构。

2、掌握分支程序的设计、调试方法。

假设有一组数据:

5,-4,0,3,100,-

51,请编一程序,判断:

每个数大于0,等于0,还是小于0;

并输出其判断结果。

即:

1当x>

y=0当x=0

-1当x<

四.编程提示:

1、首先将原始数据装入起始地址为XX的字节存储单元中。

2、将判断结果以字符串的形式存放在数据区中,以便在显示输出时调用。

3、其中判断部分可采用CMP指令,得到一个分支结构,分别输出“y=0”,“y=1”,“y=-1”。

4、程序中存在一个循环结构,循环6次,调用6次分支结构后结束。

五.思考题:

程序中的原始数据是以怎样的形式存放在数据区中的?

请用DEBUG

调试程序观察并分析。

六.实验报告:

3、画出程序框图。

4、写出源程序清单和执行结果。

5、回答思考题。

实验七循环程序设计

1.掌握循环程序设计的方法(两重性循环结构

2.掌握正确分配与使用寄存器。

二.实验内容与要求

以GRADE为首地址的10个字的数组中保存有学生成绩。

建立一个10个字的RNAK

数组,并根据GRADE中的学生成绩将学生名次填入RANK数组中(提示:

一个学生的名次等于成绩高于等于该学生的人数加1。

寄存器分配情况说明如下:

AA存放当前被测学生的成绩

BB存放当

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 艺术

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1