- 1、本文档共40页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
汇编语言.ppt
2007年11月 汇编语言 汇编语言 数学科学学院计算机应用技术专业 第13章 16位MS-DOS程序设计 MS-DOS和IBM-PC 在使用Intel 8088处理器的IBM个人计算机上,IBM的PC-DOS是首个实地址模式操作系统,它后来演化成了Microsoft的MS-DOS。实地址模式通常被称为16位模式,因为该模式下的地址是由16位值构成的。中断最早就是为实地址模式下的MS-DOS设计的。 实地址模式程序具有以下特征: 只能寻址1MB内存 一次任务中只能运行一个程序(单任务) 内存没有边界保护,因此任何应用程序都可以覆盖操作系统使用的内存 偏移是16位的 内存组织 在实地址模式下,地址最低的640KB内存是由操作系统和应用程序共用的,在此之上是为视频和硬件控制器保留的内存,最高端的C0000到FFFFF之间的内存是为系统ROM(只读内存)保留的。 重定向输入输出 标准输入设备(standard input device)和标准输出设备(standard output device)统称为控制台(console),控制台一般从键盘读取输入,并输出到视频显示中。 从命令行运行程序时可以将标准输入重定向,这使数据可以从文件或硬件端口输入而不是从键盘输入,也可以将标准输出重定向到文件、打印机或其他I/O设备中。如果没有重定向的能力,改变输入输出之前就必须修改程序。 重定向的例子:tree /f | sort dir_tree.txt 标准设备名的完整列表如下所示: 软件中断 软件中断(software interrupt)是对操作系统过程的调用。这些过程中的大多数被称为中断服务例程(interrupt service routine)或中断处理程序(interrupt hander)。中断处理程序为应用程序提供了输入输出的能力,通常被用于以下任务中: 显示字符和字符串 从键盘读取字符或字符串 显示彩色文本 打开和关闭文件 从文件中读取数据 向文件中写入数据 设置和返回系统的时间及日期 INT指令 INT(中断过程调用)指令(a)在堆栈上压入CPU的标志并(b)调用中断处理过程。在执行INT指令之前必须在寄存器中存放一个或多个参数,在最小需求的情况下,也应该在AH中存放一个数字,用来辨识需要调用的子过程。根据调用功能的不同,可能还要通过寄存器向中断传递其他不同的参数值。中断指令的格式如下: INT 中断号 其中的中断号是一个0到FFh之间的整数。 中断向量 CPU使用中断向量表来处理INT指令,中断向量表是存储在内存最底端1024字节中的地址表。该表中的每一项都是一个32位的段-偏移形式的地址,该地址指向中断处理过程。表中地址的数值在不同的机器上并不相同。在程序调用INT指令时CPU采取的动作: 步骤1:INT助记符之后的数字告诉CPU定位中断向量表中的哪个项(图中执行的是INT 10h)。 步骤2:CPU在堆栈上压入标志寄存器,禁止硬件中断并执行对中断向量表中存储的地址(F000:F065)的调用。 步骤3:(F000:F065处的)中断处理程序开始执行,直到执行IRET(中断返回)指令时结束。 步骤4:IRET指令使CPU在调用程序中的INT指令之后的下一条指令处恢复执行。 常用的中断 软件中断可用来调用BIOS或DOS的中断服务程序,一些常用的中断有: INT 10h视频服务:包括控制光标位置、显示彩色文本、卷动屏幕和显示图形等过程。 INT 16h键盘服务:包括读取键盘和检查其状态的过程。 INT 17h打印服务:包括初始化、打印和返回打印机状态的过程。 INT 1Ah时间服务:包括获取自计算机启动之后的时钟嘀嗒数或将该计数器设置为新值的函数。 INT 1Ch用户定时器服务:每秒执行18.2次空过程。 INT 21h MS-DOS服务:提供输入输出、文件处理和内存管理等的过程。也称为MS-DOS功能调用。 MS-DOS功能调用(INT 21h) MS-DOS提供了许多非常易于使用的功能以便在控制台上显示文本,这些功能是MS-DOS INT 21h功能调用的一部分。INT 21h支持90多个不同的功能调用,这些调用通过在AH寄存器中放入功能号来进行区分。 许多功能调用都要求输入的32位参数存储在DS:DX寄存器中。数据段寄存器DS通常指向程序的数据区,如果DS的值不符合实际的要求,可以使用SEG操作符将其设置为包含要传递给INT 21h数据的段地址,下面的语句就是这种情况: 精选的输出功能 过滤控制字符 本节中的所有的功能都过滤控制字符,或者说对控制字符进行解释。例如,如果向标准输出上写了一个退格符,光标就向左移动一格。下表中列出了最可能遇到的控制字符: 下面的几张表描述了INT 21h的几个重要的功能:功能2,功
文档评论(0)