网站大量收购独家精品文档,联系QQ:2885784924

4.3DOS功能调用.ppt

  1. 1、本文档共79页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
汇编语言源程序的操作流程图 1 用编辑程序建立汇编语言源程序文件 建立一个汇编语言源程序,可以使用Windows系统下的记事本程序来编写,也可以使用DOS操作系统下的EDIT程序来编写。 例如从键盘输入二个数存入内存以DATA开始的二个单元中,然后选出其中的大数输出。 设编辑后的汇编语言源程序名为:exp1.asm 2 用汇编程序将.ASM文件汇编成目标程序文件.OBJ 在对汇编语言源程序文件(简称ASM文件)汇编时,汇编程序将对ASM文件进行二遍扫描。若程序文件中有语法错误,则在结束汇编后将指出源程序中的错误语句及错误类型。否则将在汇编后生成目标程序文件(即OBJ文件) 完成汇编功能的是宏汇编程序MASM。 汇编过程如下表所示: MASM宏汇编的提示信息及回答 3 用连接程序生成可执行程序文件(EXE 文件) 经汇编后产生的目标程序文件(OBJ文件)并不是可执行程序文件,必须经连接后才能成为可执行文件(EXE文件)。连接程序并不是专门为汇编语言程序设计的,如果一个程序是由若干个模块组成的,也可以通过连接程序把它们连接在一起。这些模块可以是汇编程序产生的目标程序文件,也可以是高级语言编译程序产生的目标程序文件。 完成连接功能的程序是LINK程序。连接过程如下表所示: LINK程序的提示信息及回答 5 汇编语言和操作系统PC-DOS的接口 当我们编写的汇编语言源程序是在PC-DOS环境下运行时,必须了解汇编语言是如何同操作系统接口的。 当通过键盘键入的源程序经汇编和连接生成可执行的程序文件并欲执行该程序时,PC-DOS将按如下步骤操作: ⑴ 为该程序建立一个长度为256字节的程序前缀区PSP,以便存放所要执行程序的有关信息,并为程序和PC-DOS间提供一个接口。 程序和PC-DOS之间的接口是通过INT 20H软中断指令来实现的。该指令的两字节操作码存放在PSP的第0号及第1号单元内,其中断服务程序由PC-DOS提供。因此,用户在组织程序时必须是程序执行完后能去执行存放于PSP开始的INT 20H指令,这样便返回DOS管理的状态下,否则就无法继续键入、调试和执行其它程序。 ⑵ 把要执行的程序从磁盘上装入到内存中并为其定位。在微程序定位时,内存分配见下图。 紧接在PSP之后的内存区域中依次存放代码段、数据段和堆栈段。 ⑶ 设置段寄存器的值,使DS和ES指向PSP的段基址,即INT 20H的存放地址,同时将CS设置为PSP后面代码段的段基址,IP设置为指向代码段中第一条要执行的指令位置,把SS设置为指向堆栈段的段基址,让SP指向堆栈段的段底。 ⑷ 开始执行程序。 为了保证用户程序执行完后能回到DOS,可使用如下两种方法: ① 标准方法 首先将用户程序的主程序定义成一个FAR过程,其最后一条指令为RET。然后在代码段的主程序的开始部分用如下三条指令将PSP中INT 20H指令的段基址及偏移地址压入堆栈: PUSH DS MOV AX, 0 PUSH AX 这样,当程序执行到主程序的最后一条指令RET是,由于该过程具有FAR属性,故存在对战内的两个字就分别谈出到CS和IP中,INT 20H指令得以执行,保证了控制返回DOS状态。 ② 非标准方法 也可在用户的程序中不定义过程段,只在代码段结束之前,增加两条指令: MOV AH, 4CH INT 21H 则程序执行完后也会自动返回DOS状态。 此外,由于开始执行用户程序时,DS和ES并未指向用户的数据段基址和附加段基址,故在程序的开始处应重新装填DS和ES的值。 DATA SEGMENT … DATA ENDS CODE SEGMENT ASSUME CS:CODE, DS:DATA, ES:DATA START: MOV AX, DATA MOV DS, AX MOV ES, AX … MOV AH, 4CH INT 21H CODE ENDS END START DATA SEGMENT … DATA ENDS CODE SEGMENT MAIN FROC FAR ASSUME CS:CODE, DS:DATA, ES:DATA START: PUSH DS XOR AX, AX PUSH AX MOV AX, DATA MOV DS, AX MOV ES, AX … RET MAIN ENDP CODE ENDS END START 5.3 DOS和BIOS功能调用 这些完成不同功能的子程序是以中断服务程序的方式提供的。 每执行一条软中断,就相当

文档评论(0)

ajgoaw + 关注
内容提供者

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

1亿VIP精品文档

相关文档