第4章 汇编语言及汇编程序的设计.ppt

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

4.3.3 段定义伪操作 段定义语句的格式: 段名 SEGMENT ;第1行,表示一个段的开始 ASSUME 段寄存器名:段名[,段寄存器名:段名…] ;第2行,指 明段寄存器的名字 … ;其他指令系列 段名 ENDS ;第n行,表示一个段的结束 功能:定义了一个以SEGMENT伪指令开始,以ENDS伪指令结束,以段名命名的存储段。 说明: 在代码段中,第2 行是必需的,用ASSUME伪操作指明段寄存器的段名,分别是CS、DS、SS、ES、FS、GS等。段名是程序员为该段所取的名字,用来指出为该段分配的存储区起始位置(段基址)。除代码段的段基址自动分配外,其他段的段基址必须在代码段利用两条MOV指令对其赋值:先把该段的段基址送某通用寄存器,再由该通用寄存器送到该段的段。 例如: 一个简单的数据段和代码段的定义。 DATAS SEGMENT ;以段名为DATAS数据段定义的开始 MESS DB 'WELCOME!$' ;数据定义伪操作 DATAS ENDS ;以段名为DATAS数据段定义的结束 CODES SEGMENT ;以段名为CODES代码段定义的开始 ASSUME DS:DATAS,CS:CODES ;说明段和段寄存器的关系 MOV AX,DATAS ;把DATAS段地址送AX MOV DS,AX ;段地址经AX送DS CODES ENDS ;以段名为CODES代码段定义的结束 4.3.4 过程定义伪指令 在程序设计中,经常将一些重复出现的语句组定义为子程序。子程序又称为过程,可以采用CALL指令来调用。 过程定义格式: 过程名 PROC [NEAR]/FAR … ;其他指令系列 RET ;返回指令 过程名 ENDP 调用一个过程的格式为: CALL 过程名 说明: PROC、ENDP是定义子程序时必须使用的保留字,PROC和ENDP相当于一对括号,将子程序的指令包括在内。RET指令通常作为子程序的最后一条指令,用来控制CPU返回到主程序的断点处继续向下执行。 4.4 系统功能调用 4.4.1 系统功能调用概述 把控制外设工作的过程编写成程序,作为操作系统的一部分事先放在系统盘上,用户在需要时只要按规定的操作步骤,直接调用即可。这种方式叫做“利用操作系统的标准功能调用” 。 8086CPU采用DOS(磁盘操作系统)系统。DOS系统功能调用是通过中断技术实现的。 DOS提供了系统功能调用,主要分为设备管理(如键盘、显示器、打印机、磁盘等的管理)、文件管理、目录管理及其他功能调用4大类。 系统功能调用的基本方法: 基本方法:采用一条软中断指令INT n 。 软中断: 是以指令方式产生的中断,n是中断类型号,不同的n将转入不同的中断处理程序。其中DOS功能调用编号n从0~62H(3.0版)。最常用的系统功能调用是n=21H号软中断。 注意: 每一个类型号n里面又包含了众多的子功能调用号,以完成不同的功能。 系统功能调用的步骤如下: 1)将调用参数(不一定每个功能都有)装入指定的寄存器。 2)如需要子功能调用号,把它装入寄存器AH。 3)发出中断指令:INT 21H。 4)检查返回参数是否正确。 4.4.2 基本I/O调用 1.01H号调用 功能:从标准输入设备上(通常为键盘)读取字符,并在标准输出设备上(通常为显示器)回显。 格式: MOV AH 01H    INT 21H 说明: 输入字符的ASCII码送入AL中,如果读到的字符是Ctrl+C或Ctrl+Break,则结束程序。 2.02H号调

文档评论(0)

bokegood + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档