汇编语言实验报告——分支程序设计.doc

汇编语言实验报告——分支程序设计.doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

佛山科学技术学院

实验报告

课程名称汇编语言

实验工程分支程序设计

专业班级11计算机科学与技术1姓名林胜冰学号2011314117

指导教师杨定安成绩日期

一、实验目的

通过上机编程,熟悉利用汇编语言设计不同种类分支程序的方法,掌握汇编语言中实现分支程序的相关汇编指令。

二、实验仪器

微机一台,U盘一块。

三、实验原理

在实际问题中,需要对不同情况做不同的处理,这就需要使用到分支结构。汇编语言中的分支程序是利用条件转移指令或者跳转表,使程序在执行到某条指令后,根据运行结果是否满足一定条件来改变程序执行的顺序,然后执行不同的条件下对应的指令。如果进行的是逻辑分支,可以用每次分两支的方法来到达程序多分支的目的。一般而言,分支程序的结构通常有三种形式:不完全分支、完全分支和多分支,如下图:

在本实验中,我们以求解一组无符号字节序列中的最大值和最小值的问题进行讲解分支程序的设计和实现。最终结果是序列中的最大数和最小数,我们可以将存放器BX的高位和低位分别用于存放最大数和最小数,然后,将序列中的两个数存入其中,再将序列中的其他数分别与BH和BL中的数进行比拟,如果大于BH或者小于BL,那么将存放器中的数用当前取出的数进行替换,完全比拟之后,BH和BL中数即为整个序列中的最大数和最小数。

实验步骤

本实验重点算法的理解以及相关指令的灵活应用。

分析问题,设计算法。

根据上述算法,编制程序流程图,如图4-1所示。

图4-1程序流程图

〔3〕根据流程图,编写实现代码;

程序汇编为目标文件.obj。

目标文件.obj链接为可执行文件.exe。

使用Debug调试运行程序,设置断点,查询相关存放器内容,调试直至得到正确的结果。

根据实验过程和实验结果完成实验报告,并按时上交。

注意:在程序设计中,注意相关的存放器的用途,如CX的作用,SI的作用,以及汇编语言中,一个存放器的上下位可以分开使用的特点。

五、实验预习要求

预习相关的汇编语言指令,着重是理解相关存放器的特定用途,如:SI、CX等,以及存放器的上下位可以分开使用的特点。学校印刷的标准报告纸写实验报告。

六、实验原始代码

datasegment

Adw32,85,16,15,8

dataends

codesegment

assumecs:code,ds:data

start:movax,data

movds,ax

movcx,5

deccx

loop1:movdi,cx

movbx,0

loop2:

movax,A[bx]

cmpax,A[bx+2]

jlecontinue

xchgax,A[bx+2]

movA[bx],ax

continue:

addbx,2

looploop2

movcx,di

looploop1

movax,4c00h

int21h

codeends

endstart

实验过程记录

1.用r命令查看

用U反汇编

用t单步调试

Cx自减1,进行第一次循环

4.初始化BX

比拟AX和[BX+2],即比拟相邻2个数的大小,假设AX大于[BX+2],那么交换2个数的位置,假设AX小于[BX+2],那么比拟下一个数

6.32小于85,比拟下一个数

?7.BX+2比拟下一个数

进行的第2次循环,比拟下一个数,因为85大于16,所以进行交换

用d命令查看内存中的数据,可以看到85和16的位置已经交换

文档评论(0)

199****8042 + 关注
实名认证
内容提供者

相信自己,相信明天

1亿VIP精品文档

相关文档