分支结构程序设计汇编语言资料.docx

上传人:b****6 文档编号:8190697 上传时间:2023-01-29 格式:DOCX 页数:10 大小:475.19KB
下载 相关 举报
分支结构程序设计汇编语言资料.docx_第1页
第1页 / 共10页
分支结构程序设计汇编语言资料.docx_第2页
第2页 / 共10页
分支结构程序设计汇编语言资料.docx_第3页
第3页 / 共10页
分支结构程序设计汇编语言资料.docx_第4页
第4页 / 共10页
分支结构程序设计汇编语言资料.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

分支结构程序设计汇编语言资料.docx

《分支结构程序设计汇编语言资料.docx》由会员分享,可在线阅读,更多相关《分支结构程序设计汇编语言资料.docx(10页珍藏版)》请在冰豆网上搜索。

分支结构程序设计汇编语言资料.docx

分支结构程序设计汇编语言资料

 

汇编语言实验报告

 

实验名称:

分支结构程序设计

姓名:

学号:

班级:

一、实验内容

1.将程序1输入、汇编、连接并通过Debug调试和检查运行结果。

2.修改程序1完成将其中的最小数存入MIN单元。

3.将编写好的程序2输入、汇编、连接并通过Debug调试和检查运行结果。

4.将编写好的程序3输入、汇编、连接并通过Debug调试和检查运行结果。

二、实验目的

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

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

三、实验原理

1、汇编语言源程序编制完成后,在计算机上的操作过程分为四个阶段:

编辑、汇编、连接、运行调试(如图1)。

2、上机实验步骤:

1)确定源程序的存放目录

2)编辑ASM源程序

3)用MASM.EXE汇编程序产生OBJ目标文件

4)用LINK.EXE产生EXE可执行文件

5)执行程序

3、程序执行过程的跟踪

可以用Debug来跟踪一个程序的运行过程,这通常是必须要做的工作。

我们写的程序在逻辑上不一定总是正确,对于简单的错误,仔细检查一下源程序就可以发现;而对于隐藏较深的错误,就必须对程序的执行过程进行跟踪分析才容易发现。

为了观察程序的运行过程,可以使用Debug。

Debug可以将程序加载入内存,设置CS:

IP指向程序的入口,但Debug并不放弃对CPU的控制,这样,我们就可以使用Debug的相关命令来单步执行程序,查看每一条指令的执行结果。

4分支结构

汇编语言中的分支结构式一种很常用的结构,就像我们高级语言中的if结构一样。

对一些需要判断的很有用。

四、实验过程

1、实验环境

汇编语言程序设计的实验环境如下:

(1).硬件环境

微型计算机(Intelx86系列CPU)一台

(2).软件环境

Windows98/2000/XP操作系统

任意一种文本编辑器(EDIT、NOTEPAD(记事本)、UltraEDIT等)

汇编程序(MASM.EXE或TASM.EXE)

调试程序(DEBUG.EXE或TD.EXE)

文本编辑器建议使用EDIT或NOTEPAD,汇编程序建议使用MASM.EXE,连接程序建议使用LINK.EXE,调试程序建议使用TD.EXE。

2、实验步骤

(1)、用文件编辑器编写汇编语言程序,并以masm或asm为后缀命名,如:

1.asm(以下实验步骤均已此作为例子说明)。

(2)、进入dos,用masm编译所编写的汇编程序,生成1.obj,然后用link.exe连接1.obj文件,生成课执行文件1.exe.

(3)、执行1.exe.

(4)、由于在masm中执行了1.exe文件,以我们现在掌握的知识,并不能显示答案在屏幕中,所以用debug1.exe来打开这个文件,并用t命令一步一步的跟踪该程序的执行过程,验证此程序是否达到了我们想要达到的结果。

3、实验源程序代码及其结构分析

(1)求几个数中的最大数(1.ASM1.OBJ1.EXE)

代码如下:

DATASEGMENT

BUFDB38H,73H,1FH

MAXDB?

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

MOVAL,BUF

CMPAL,BUF+1

JNBLP1

MOVAL,BUF+1

LP1:

CMPAL,BUF+2

JAELP2

MOVAL,BUF+2

LP2:

MOVMAX,AL

MOVAH,4CH

INT21H

CODEENDS

ENDSTART

运行结果如下:

最大数就是DS数据段中的第四个数

(2)判断几个数据是正数还是负数测试数据为:

38H,-5H,-32H,-44H,40H,-02H(2.ASM2.OBJ2.EXE)

代码如下:

DATASEGMENT

COUNTDB07H

BUFDB38H,-5H,-32H,-44H,40H,-02H

STRING1DB'FUSHU',0DH,0AH,'$'

STRING2DB'ZHENGSHU',0DH,0AH,'$'

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

MOVAL,00H

MOVCL,00H

MOVSI,OFFSETBUF

LP0:

MOVBL,[SI]

INCSI

INCCL

CMPCL,COUNT

JNLLP4

CMPAL,BL

JNLLP1

JMPLP2

LP1:

MOVDX,OFFSETSTRING1

MOVAH,09H

INT21H

JMPLP0

LP2:

MOVDX,OFFSETSTRING2

MOVAH,09H

INT21H

JMPLP0

LP4:

MOVAH,4CH

INT21H

CODEENDS

ENDSTART

运行结果如下:

(3)找出几个数据中最小的数测试数为:

38H,73H,1FH(11.ASM11.OBJ11.EXE)

代码如下:

DATASEGMENT

BUFDB38H,73H,1FH

MINDB?

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

MOVAL,BUF

CMPAL,BUF+1

JBLP1

MOVAL,BUF+1

LP1:

CMPAL,BUF+2

JBLP2

MOVAL,BUF+2

LP2:

MOVMIN,AL

MOVAH,4CH

INT21H

CODEENDS

ENDSTART

结果如下:

(最小数据位于DS数据段的第四个数)

(4)测试的数据是-3,Y的结果保存在CX寄存器中:

(3.ASM3.OBJ3.EXE)

代码如下:

DATASEGMENT

XDB-03H

WORD1DB'Y=0',0DH,0AH,'$'

WORD2DB'Y=-1',0DH,0AH,'$'

WORD3DB'Y=1',0DH,0AH,'$'

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

MOVAL,X

MOVBL,00H

CMPAL,BL

JZLP1

JMPLP2

LP1:

MOVDX,OFFSETWORD1

MOVAH,09H

INT21H

MOVCL,00H

JMPLP5

LP2:

CMPAL,BL

JLLP3

JMPLP4

LP3:

MOVDX,OFFSETWORD2

MOVAH,09H

INT21H

MOVCL,-01H

JMPLP5

LP4:

MOVDX,OFFSETWORD3

MOVAH,09H

INT21H

MOVCL,01H

LP5:

MOVAH,4CH

INT21H

CODEENDS

ENDSTART

运行结果如下:

(5)判断几个数据的奇偶性(22.ASM22.OBJ22.EXE)

测试数据:

38H,-5H,-32H,-44H,40H,-02H

代码如下:

DATASEGMENT

COUNTDB07H

BUFDB38H,-5H,-32H,-44H,40H,-02H

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

当前位置:首页 > 高等教育 > 工学

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

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