南昌大学汇编语言实验报告.docx

上传人:b****1 文档编号:247598 上传时间:2022-10-07 格式:DOCX 页数:51 大小:1.19MB
下载 相关 举报
南昌大学汇编语言实验报告.docx_第1页
第1页 / 共51页
南昌大学汇编语言实验报告.docx_第2页
第2页 / 共51页
南昌大学汇编语言实验报告.docx_第3页
第3页 / 共51页
南昌大学汇编语言实验报告.docx_第4页
第4页 / 共51页
南昌大学汇编语言实验报告.docx_第5页
第5页 / 共51页
点击查看更多>>
下载资源
资源描述

南昌大学汇编语言实验报告.docx

《南昌大学汇编语言实验报告.docx》由会员分享,可在线阅读,更多相关《南昌大学汇编语言实验报告.docx(51页珍藏版)》请在冰豆网上搜索。

南昌大学汇编语言实验报告.docx

汇编语言实验报告

专业:

电气3类

班级:

姓名

学号:

2011年12月14日

目 录

实验1 利用DEBUG调试汇编语言程序段 3

实验2 初级程序的编写与调试实验

(一) 3

实验3 初级程序的编写与调试实验

(二) 3

实验4汇编语言程序上机过程 3

实验5 分支程序实验 3

实验6 循环程序实验 3

实验7 子程序实验 3

51

实验1 利用DEBUG调试汇编语言程序段

一、实验目的

1.熟悉DEBUG有关命令的使用方法;

2.利用DEBUG掌握有关指令的功能;

3.利用DEBUG运行简单的程序段。

二、实验内容

1.进入和退出DEBUG程序;

2.学会DEBUG中的D命令、E命令、R命令、T命令、A命令、G命令等的使用。

对于U命令、N命令、W命令等,也应该试用一下;

3.用DEBUG,验证乘法、除法、加法、减法、带进位加、带借位减、堆栈操作指令、串操作指令的功能。

三、实验环境

PC微机

DOS操作系统或Windows操作系统

MASM.EXE,LINK.EXE,DEBUG.COM或宏汇编集成环境

四、实验要求

1.仔细阅读有关DEBUG命令的内容,对有关命令,要求事先准备好使用的例子;

2.作为例子,准备用A命令,输入在显示器上显示字符“$”的系统调用程序段;

3.编写将AX左移9位的程序段。

五、主要实验步骤

(一)学会使用DEBUG中的简单命令:

1.打开DOS,开始——运行——cmd。

2.进入DEBUG,在DOS下输入DEBUG,直接进入。

3.在DEBUG中输入D,查看D命令结果,输入D1000,查看指定地址的数据。

4.在DEBUG中输入E100,修改地址100的数据,再输入D100,查看修改后的结果。

5.在DEBUG中输入R,查看当前寄存器的内容。

6.在DEBUG中输入A,输入以下代码:

movax,1234

mov[1000],ax

输入T显示第一条命令运行结果,再次输入T,显示第二条命令运行结果,输入d1000,验证命令运行结果。

7.在DEBUG中输入A,输入以下代码:

movax,1234mov[1000],ax

输入G[=起始地址][结束地址]↓,再输入D1000,验证命令运行结果。

8.在DEBUG中输入U[起始地址][结束地址],从[起始地址]开始进行反汇编。

9.在DEBUG中输入Q,推出DEBUG程序。

(二)用DEBUG验证乘法、除法、加法、减法等功能:

1.验证加法和带进位加,使用A命令,在DEBUG中键入以下代码:

movax,f111movbx,f222movcx,2movdx,3addax,bxadccx,dx

使用G命令查看结果

2.验证减法和带借位减法,使用A命令,在DEBUG中键入以下代码:

movax,2movbx,3movcx,5movdx,2subax,bxsbbcx,dx

使用G命令查看结果

3.验证乘法和除法,使用A命令,在DEBUG中键入以下代码:

乘法:

moval,b4movbl,11mulbl

使用G命令查看结果除法:

movax,400movbl,b4divbl

使用G命令查看结果

4.验证堆栈操作指令,使用A命令,在DEBUG中键入以下代码:

movax,1111pushax

movax,2222

使用G命令查看结果后在使用A命令,在DEBUG中键入以下代码:

popax

使用G命令查看结果

5.验证串操作指令,使用A命令,在DEBUG中键入以下代码:

org1000db‘hello’

movsi,1000movdi,1500movcx,5cld

repmovsb

使用G命令查看结果

(三)使用A命令在显示器上显示字符“$”:

1.在DEBUG中键入A命令

2.键入以下代码:

moval,24movdl,al

movah,2int21

3.输入代码后,使用G命令运行代码,得到结果

(四)编写将AX左移9位的程序段

1.在DEBUG中键入A命令

2.键入以下代码:

movax,1234movcl,9

shlax,cl

3.使用T命令运行程序段,查看结果

六、实验数据及处理结果

熟悉使用DEBUG的简单命令

验证加法和带进位加法

验证减法和带借位减法

验证乘法和除法

验证堆栈操作指令

验证串操作指令

在显示器上显示字符“$”

将AX左移9位

七、思考题

启动DEBUG后,要装入某一个.EXE文件,应通过什么方法实现?

答:

进入DOS,输入DEBUGxxx.exe,其中xxx为文件名。

八、参考资料

《IBM-PC汇编语言程序设计》

《汇编语言实验指导书》

实验2 初级程序的编写与调试实验

(一)

一.实验目的

1.进一步熟悉DEBUG命令;

2.掌握数据在内存中的存放方式和内存操作数的几种寻址方式,段寄存器和物理地址计算;

3.熟悉数据传送指令、算术运算指令、逻辑指令、数据串传送程序和数据串传送指令

MOVS、STOS及重复前辍REP;4.掌握简单的汇编语言程序编写与调试。

二.实验内容

1.内存操作数及各种寻址方式使用;

2.求累加和程序;

3.多字节加法程序;

4.数据串搬家程序;

5.段寄存器概念及字符串传送指令练习。

三.实验要求

1.仔细阅读有关DEBUG命令的内容,对有关命令,要求事先准备好使用的例子;

2.阅读数据传送指令、算术运算指令、逻辑指令、数据串传送程序和数据串传送指令

MOVS、STOS及重复前辍REP的内容;

3.用DEBUG的有关命令调试本实验中的求累加和程序、多字节加法程序、数据串搬家程序段。

四.实验环境

PC微机;

DOS操作系统或Windows操作系统;

MASM.EXE,LINK.EXE,DEBUG.COM或宏汇编集成环境。

五.实验步骤

1.内存操作数及各种寻址方式使用

步骤:

MOV AX,1234MOV [1000],AXMOV BX,1002

MOV BYTEPTR[BX],20MOV DL,39

INC BX

MOV [BX],DLDEC DL

MOV SI,3

MOV [BX+SI],DLMOV [BX+SI+1],DL

MOV WORDPTR[BX+SI+2],2846

(1)用A命令键入上述程序,并用T命令逐条运行。

(2)每运行一条有关内存操作数的指令,要用D命令检查并记录有关内存单元的内容并注明是什么寻址方式。

注意D命令显示结果中右边的ASCII字符及双字节数存放法。

2.求累加和程序:

程序:

MOV BX,1000

MOV CX,10

SUB AX,AXLOP:

ADD AL,[BX]

ADC AH,0

INC BXJ:

LOOP LOP

INT3

步骤:

(1)用A命令将程序键入到100H开始的内存中,在键入时记下标号LOP和J的实际地址,在键入LOOP指令时LOP用实际地址值代替;

(2)用命令N AA将此程序命名为文件AA(文件名可任取);

(3)用R命令将BX:

CX改为程序长度值(即最后一条指令后面的地址减去开始地址;

(4)用命令W100将此程序存到AA命名的磁盘文件中;

(5)用命令Q退出DEBUG;

(6)用命令DEBUGAA再次调入DEBUG和文件AA,可用U命令检查调入程序;

(7)用E命令在内存地址1000H处键入16个数字;

(8)用命令G=100J(J用实际地址代替),使程序运行并停在断点J上,检查AX,BX的值是否符合你的预计值;

(9)用T命令运行一步,观察程序方向(IP值)和CX值是否与你的估计一样,若不一样,检查程序是否有错;

(10)重复G、J与T,再检查AX是否正确;

(11)用G命令使程序运行到结束,检查AX值是否正确。

3.多字节加法程序

程序:

MOVDI,1000MOVCX,8MOVSI,2000CLC

LOP:

MOVAL,[SI]

ADC [DI],ALINC SI

INC DILOOPLOPINT 20

步骤:

(1)用命令键入此程序。

(2)用E命令在1000H开始处键入一个8字节被加数,在2000H开始处键入一个8字节加数,均为低字节在前面。

4.数据串搬家程序

(1)用A命令键入下列程序:

MOVSI,1000MOVDI,1500MOVCX,0FH

LOP:

MOVAL,[SI]MOV[DI],ALINCSI

INC DILOOPLOPINT 20

(2)用A命令DB伪指令在1000H键入下列字符串:

‘IBM_PCCOMPUTER'

(3)用G命令运行此程序,并用D命令检查目的地址处的字符与源串是否一致。

5.段寄存器概念及字符串传送指令练习

(1)用A命令键入下列程序:

MOVSI,0MOVDI,0MOVAX,1000MOVDS,AXMOVAX,1500MOVES,AXMOVCX,0FCLD

REP MOVSBINT 20

(2)用A命令DB伪指令在1000:

0000处键入字符串'IBM_PCCOMPUTER',并用D命检

(3)用D命令检查0F00:

1000处内容,看是否一样。

为什么?

(4)用G命令运行此程序,检查目的地址1500:

0000处内容。

并记下DS与ES值。

此时的DS和ES的值分别为:

(5)修改此程序,使ES与DS为同一值,以减少一条指令,而源物理地址和目的物理地址(是多少?

)仍和原来一样。

6.自编程序

用16位减法指令编一个32位(4字节)数减法程序,两个源数及结果存放地址同多字节加法程序,调试并做记录。

4字节减法程序源代码

1397:

0100MOVSI,1000

1397:

0103MOVCX,4

1397:

0106MOVDI,2000

1397:

0109CLC

1397:

010AMOVAL,[SI]

1397:

010CSBB[DI],AL

1397:

010EINCSI

1397:

010FINCDI

1397:

0110LOOP010A

1397:

0112INT20

1397:

0114

调试和运行

结果运行正确

六.思考题

1.MOVBYTEPTR[BX],20

MOVWORDPTR[BX+SI+2],2846

上述指令中BYTEPTR及WORDPTR伪操作不加行不行?

试一试。

2.用G命令运行多字节加法程序

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

当前位置:首页 > 高中教育 > 初中教育

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

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