CH4课件汇编语言程序设计.pptVIP

CH4课件汇编语言程序设计.ppt

此“教育”领域文档为创作者个人分享资料,不作为权威性指导和指引,仅供参考
  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

汇编語言程序设计;4.4程序设计措施;二、基本程序构造

次序构造

分支构造

循环构造

子程序构造;次序构造

分支构造

循环构造

子程序构造;;次序构造

分支构造

循环构造

子程序构造;次序构造

分支构造

循环构造

子程序构造;1、次序构造

例1:已知目前数据段中有壹种拾進制数字0~9的七段代码表,其数值依次為40H、79H、24H、30H、19H、12H、02H、78H、00H、18H。规定用XLAT指令将拾進制数57转换成對应的七段代码值,存到BX寄存器中,编写完整的汇编源程序。

分析:先求5的七段代码值,再求数字7的;

需定义数据段、七段代码表:TAB,字节变量;

关键指令XLAT,表偏移地址放BX,原数字放入AL;;源程序清單:;2、分支构造

程序根据不壹样条件选择不壹样处理措施;程序框图及清單:;3、循环构造

两种形式:

1)“先执行,後判断”:進入循环後至少要执行壹次循环体,再判断循环与否結束。

---用于循环次数固定的程序(简朴)(掌握)

2)“先判断,後执行”:進入循环後,先判断循环結束条件,再决定与否执行循环体,也許循环体壹次也不执行。

---用于循环次数不确定的程序;(a)“先执行,後判断”构造;;例3:将附加段起始地址為DA1的100個字节的存储区内容清0。;例4:编程在壹串給定個数的数据区BUFF中寻找最小数,成果寄存至MIN單元中!(循环+分支构造);MOVAH,4CH

INT21H

CODEENDS

ENDSTART;作业;例5:数据段從BUFF開始有壹字数组,寄存N個有符号数据,编程将数据按從小到大排序!(双重循环);MOVAH,4CH

INT21H

CODEENDS

ENDSTART;4、子程序构造

子程序:能完毕特定功能而又常常用到的程序段,编写成独立的模块,供其他程序调用,称為子程序或過程。

子程序构造的定义:

使用過程定义語句PROC…ENDP。

子程序属性:

调用程序和過程在同壹代码段中,则用NEAR属性;

调用程序和過程不在同壹代码段,使用FAR属性。;;子程序构造

段内调用格式;子程序构造

段间调用格式

(自學);子程序设计注意如下三點:

⑴保护调用程序的断點:由CALL指令自身完毕。

⑵保护某些寄存器内容(非入口/出口参数):

在子程序開頭??用壹组PUSH指令,保护寄存器本来的内容;在子程序結尾,用壹组POP指令,将寄存器本来的内容恢复。

⑶主程序和子程序间的参数传递。

入口参数:子程序所需的初始数据。(调用時)

出口参数:子程序运行所得成果。(返回時);参数传递常用的措施:

①用寄存器传递参数:参数较少,速度较快。

②用存储器传递参数:参数较多;

调用前,将参数存入内存,将参数首地址送入某壹寄存器(BX、SI、DI、BP)。進入過程後可采用寄存器间接寻址方式從内存中取出。

③用堆栈传递参数:参数较多,多用在子程序嵌套与递归调用中。;例6:数据段定义两個字型数组,编程序实現数组分别求和(不计溢出),规定用子程序实現求和。

解:通過存储器来传递参数。子程序阐明如下:

子程序名:SUB_SUM

功能:求壹数组之和

所用REG:AX

入口参数:数组地址指针SI、数组長度存于CX

出口参数:成果在AX中;DATA SEGMENT

ARY1 DW100DUP(?) ;定义数组1

SUM1DW?

ARY2 DW100DUP(?) ;定义数组2

SUM2 DW?

DATAENDS

CODE SEGMENT

ASSUMECS:CODE,DS:DATA

START:MOV AX,DATA

MOVDS,AX;LEASI,ARY1;数组1首地址,入口参数

MOVCX,LENGTHARY1;数组1長度,入口参数

CALLSUB_SUM;调用求和子程序

MOVSUM1,AX;数组1之和送SUM1

LEA SI,ARY2;数组2首地址,入口参数

MOVCX,LENGTHARY2;数组2長度,入口参数

CALLSUB_SUM ;调用求和子程序

MOVSUM2,AX;数组2之和送SUM2

MOVAH,4CH

INT21H;SUB_SUMPROC NEAR;子程序

XORAX,AX

文档评论(0)

每天进步一点点 + 关注
实名认证
文档贡献者

每天进步一点点,快乐生活每一天

1亿VIP精品文档

相关文档