微原-第4章3.ppt

上传人:b****3 文档编号:2733122 上传时间:2022-11-10 格式:PPT 页数:28 大小:157.50KB
下载 相关 举报
微原-第4章3.ppt_第1页
第1页 / 共28页
微原-第4章3.ppt_第2页
第2页 / 共28页
微原-第4章3.ppt_第3页
第3页 / 共28页
微原-第4章3.ppt_第4页
第4页 / 共28页
微原-第4章3.ppt_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

微原-第4章3.ppt

《微原-第4章3.ppt》由会员分享,可在线阅读,更多相关《微原-第4章3.ppt(28页珍藏版)》请在冰豆网上搜索。

微原-第4章3.ppt

本教案内容本教案内容第第44章章汇编语言程序设计汇编语言程序设计1.汇编语言程序设计基础汇编语言程序设计基础2.源程序的汇编、连接与调试源程序的汇编、连接与调试3.分支程序设计技术分支程序设计技术4.循环程序设计技术循环程序设计技术5.子程序设计技术子程序设计技术6.综合程序设计示例综合程序设计示例程程序序设设计计是是指指为为计计算算机机编编写写的的、能能够够接接受受并并执执行行的的、且且具具有有实实际际意意义义的的语语句句序序列列。

对对于于汇汇编编语语言言程程序序设设计计,了了解解指指令令系系统统、伪伪指指令令及及宏宏指指令令是是最最基基本本的的要要求求,这这些些内内容容在在前前面面都都已已进进行行了了介介绍绍。

合合理理地地使使用用不不同同的的指指令令进进行行汇汇编编语语言言程程序序的的编编制制仅仅仅仅是是一一个个基基础础,是是编编出出高高质质量量程程序序的的一一个个方方面面。

然然而而程程序序设设计计的的方方法法可可体体现现出出一一个个程程序设计者的思路及运用指令的水平。

序设计者的思路及运用指令的水平。

4.3汇编语言程序设计汇编语言程序设计程程序序设设计计是是把把解解决决实实际际问问题题的的方方法法转转化化为为程程序序。

由由于于实实际际问问题题有有简简单单与与复复杂杂之之分分,因因此此程程序序设设计计就就需需要要根根据据解解决决问问题题的的思思路路,运运用用一一些些基基本本的的程程序序设设计计方方法法设设计计出出解解决决不不同同问问题题的的程程序序来来。

在在汇汇编编程程序序设设计计过过程程中中,首首先先对对要要解解决决的的问问题题的的过过程程进进行行具具体体的的描描述述,这这也也是是编编程程的的准准备备阶阶段段,对对于于较较小小的的程程序序可可以以使使用用程程序序流流程程图图。

对于对于较大的程序可以采用模块化程序设较大的程序可以采用模块化程序设计计方法。

无论采用流程图还是模块化的方法。

无论采用流程图还是模块化的方法设计都要使用程序设计的基本程序方法设计都要使用程序设计的基本程序结构来表现出来。

结构来表现出来。

基本的程序结构包括基本的程序结构包括顺序结构、分支结构、循环结构及子程顺序结构、分支结构、循环结构及子程序结构。

序结构。

由于不同的问题可采用不同结由于不同的问题可采用不同结构设计,因此需要对各种结构形式有所构设计,因此需要对各种结构形式有所了解,才能找到解决某一问题的最佳程了解,才能找到解决某一问题的最佳程序结构形式。

序结构形式。

1.顺序结构程序设计顺序结构程序设计顺顺序序结结构构是是一一种种最最简简单单的的程程序序设设计计结结构构形形式式。

采采用用这这种种结结构构只只能能完完成成简简单单的的任任务务程程序序设设计计。

顺顺序序结结构构在在任任何何结结构构的的程程序序中中都都会会出出现现,因因此此说说它它是是基基础础。

下下面面举举一一个个顺顺序序结结构构的的程程序序设设计计例例子子,要要求求完完成成表表达达式式所所规规定定的的操操作作:

Y=X1+X2+X3。

首先分析程序设计方法:

首先分析程序设计方法:

表表达达式式Y=X1+X2+X3的的计计算算过过程程可可采采用用顺顺序序执执行行的的方方法法来来完完成成:

首首先先读读入入数数据据X1、X2、X3;其其次次计计算算X1、X2、X3的和;最后保存结果到指定变量的和;最后保存结果到指定变量Y中。

中。

根根据据计计算算步步骤骤编编写写汇汇编编语语言言程程序序:

利利用用伪伪指指令令确确定定存存储储器器的的分分配配,将将X1、X2、X3定定义义为为字字变变量量;按按照照汇汇编编语语言源程序结构要求编写源程序。

言源程序结构要求编写源程序。

4.3程序结构设计技术程序结构设计技术程序如下程序如下:

PROGRAM;*DATASEGMENTDATA1DWX1,X2,X3,?

DATAENDS;*CODESEGMENTASSUMECS:

CODE,DS:

DATA4.3程序结构设计技术程序结构设计技术START:

MOVAX,DATAMOVDS,AXMOVAX,DATA1ADDAX,DATA1+2ADDAX,DATA1+4MOVDATA1+6,AXHLTCODEENDS;*ENDSTART4.3程序结构设计技术程序结构设计技术可可以以看看出出,上上面面的的源源程程序序是是由由数数据据段段和和代代码码段段两两部部分分组组成成的的。

在在数数据据段段定定义义了了X1、X2、X3为为自自变变量量,在在运运行行时时应应填填入入具具体体数数值值。

代代码码段段确确定定了了各各段段与与段段寄寄存存器器的的关关系系,并并且且以以计计算算机机的的基基本本操操作作指指令令按按顺顺序序执执行行的的结结构构形形式式将将计计算算机机操操作作过过程程进进行行描描述述,从从而而完完成成程程序序设设计计的的最最初初阶阶段段任任务务。

一一个个源源程程序序的的编编写写过过程程还还说说明明不不了了程程序序的的正正确确性性,必必须经过上机调试,须经过上机调试,才能验证设计的程序是否符合要求。

才能验证设计的程序是否符合要求。

2.分支结构程序设计分支结构程序设计在在解解决决某某些些实实际际问问题题时时,解解决决问问题题的的方方法法随随着着某某些些条条件件的的不不同同而而不不同同,将将这这种种在在不不同同条条件件下下处处理理过过程程的的操操作作编编写写出出的的程程序序称称为为分分支支程程序序。

程程序序中中所所产产生生的的分分支支是是由由条条件件转转移移指指令令来来完完成成的的。

汇汇编编语语言言提提供供了了多多种种条条件件转转移移指指令令,可可以以根根据据使使用用不不同同的的转转移移指指令令所所产产生生的的结结果果状状态态选选择择要要转转移移的的程程序序段段,对对问问题题进进行行处处理理。

采采用用分分支支结结构构设设计计的的程程序序,结结构构清清晰、晰、易于阅读及调试。

易于阅读及调试。

4.3分支程序设计技术分支程序设计技术4.3分支程序设计技术分支程序设计技术如果程序执行过程中,能够根据某种条件进行不如果程序执行过程中,能够根据某种条件进行不同的处理,这样就构成了同的处理,这样就构成了分支程序分支程序。

由于。

由于CPU能能够对执行的结果进行判断,从而作出相应的处理,够对执行的结果进行判断,从而作出相应的处理,使程序的功能得到大大的增强。

一般来说,包含使程序的功能得到大大的增强。

一般来说,包含两条及多条分支的程序称为分支程序,这样,实两条及多条分支的程序称为分支程序,这样,实际上几乎所有的程序都可以归类于分支程序。

际上几乎所有的程序都可以归类于分支程序。

4.3单单分支程序设计分支程序设计程序分支是通过程序分支是通过有有条件条件和和无条件无条件转移指转移指令实现的,它们又与令实现的,它们又与上一次上一次CPU操作所产操作所产生的生的PSW中的标志位中的标志位有关,有条件指令与有关,有条件指令与标志位的关系可以参标志位的关系可以参见第三章的表见第三章的表3.6。

单分支程序结构单分支程序结构在在汇汇编编语语言言程程序序设设计计中中,常常常常要要使使用用多多分分支支结结构构。

多多分分支支结结构构相相当当于于一一个个多多路路开开关关,在在程程序序设设计计中中通通常常是是根根据据某某寄存器或某单元的内容进行寄存器或某单元的内容进行程序转移。

程序转移。

在在设设计计多多分分支支转转移移程程序序时时,如如果果分分支支太太多多,则则平平均均转转移移速速度度太太慢慢。

如如果果用用转转移移地地址址表表实实现现多多分分支支转转移移,则则可可以以提高平均转移速度。

提高平均转移速度。

多分支结构如图多分支结构如图4-2所示。

所示。

例如,设计一个例如,设计一个256分支的段内程序转移程序。

分支的段内程序转移程序。

设设JUMP单单元元有有一一个个数数X,若若X0,则则转转移移到到标标号号为为P000的的程程序序段段;若若X1,则则转转移移到到标标号号为为P001的的程程序序段段,;若;若X255,则转移到标号为则转移到标号为P255的程序段。

的程序段。

4.3多分支程序设计技术多分支程序设计技术图图4-2多分支结构多分支结构DATASEGMENTJUMPDB?

;某数某数XTABDWP000;分支程序标号分支程序标号DWP001DWP255DATAENDSCODESEGMENTASSUMECS:

CODE,DS:

DATABEG:

MOVAX,DATAMOVDS,AXMOVBL,JUMPMOVBH,0ADDBX,BX;2XBX寄存器寄存器MOVSI,OFFSETTABJMPBX+SI;DS:

BX+SIIP实现转移实现转移P000:

.P001:

.P255:

.CODEENDSENDBEG4.3分支程序设计技术分支程序设计技术注意注意:

有些指令的执行对:

有些指令的执行对PSW的标志位没有影响,而的标志位没有影响,而且有条件转移指令的转移范围为且有条件转移指令的转移范围为-128+127,因此合因此合理选择条件转移指令在分支程序中是至关重要的,也是正理选择条件转移指令在分支程序中是至关重要的,也是正确程序设计的关键。

确程序设计的关键。

在分支程序设计中,要特别在分支程序设计中,要特别注意注意每个分支的完整性,每个分支的完整性,分支中包含分支中包含PUSH和和POP指令时,应该确保每一条分支中指令时,应该确保每一条分支中PUSH和和POP指令数的对等。

指令数的对等。

4.3分支程序设计技术分支程序设计技术下列以示例方式,对分支程序的设计进行说明。

下列以示例方式,对分支程序的设计进行说明。

例例4.2字节型变量字节型变量VAR1、VAR2和和VAR3存放有存放有3个无个无符号数,将其中的内容按从大到小重新排列。

符号数,将其中的内容按从大到小重新排列。

解解:

经重新排列后,:

经重新排列后,VAR1的值最大,的值最大,VAR3的值最的值最小。

由于变量中存放的数据为无符号数,因此应该采用小。

由于变量中存放的数据为无符号数,因此应该采用JA、JAE、JB、JBE等指令。

等指令。

编程思路:

编程思路:

通过在三个数中找出最大值,将它与通过在三个数中找出最大值,将它与VAR1单元进行交换;然后对剩余的两个数进行比较,将较大值单元进行交换;然后对剩余的两个数进行比较,将较大值存放在存放在VAR2中。

汇编语言程序如下:

中。

汇编语言程序如下:

4.3分支程序设计技术分支程序设计技术STACKSEGMENTSTACKSTACKSTACKSEGMENTSTACKSTACKDW100HDUP(?

)DW100HDUP(?

)TOPLABELWORDTOPLABELWORDSTACKENDSSTACKENDSDATASEGMENTDATASEGMENTVAR1VAR1DB46HDB46H;先假设一组值,以便检验程序设计;先假设一组值,以便检验程序设计的正确性的正确性VAR2VAR2DB15HDB15HVAR3VAR3DB0A2HDB0A2HDATAENDSDATAENDSCODESEGMENTCODESEGMENTASSUMECS:

CODE,DS:

DATA,ES:

DATA,SS:

STACKASSUMECS:

CODE,DS:

DATA,ES:

DATA,SS:

STACK4.3分支程序设计技术分支程序设计技术START:

START:

MOVAX,DATAMOVAX,DATAMOVDS,AXMOVDS,AXMOVES,AXMOVES,AXMOVAX,STACKMOVAX,STACKMOVSS,AXMOVSS,AXLEASP,TOPLEASP,TOPMOVAL,VAR1MOVAL,VAR1;用户编写的程序;用户编写的程序CMPAL,VAR2CMPAL,VAR2JAENO_CHG1JAENO_CHG1XCHGAL,VAR2

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

当前位置:首页 > 解决方案 > 工作计划

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

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