资源描述:
《操作系统资源利用》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、本课内容1.软中断指令及中断返回指令2.常用系统调用3.键盘与显示输出控制4.流程图画法作业讲评1.堆栈操作P113.22.查表P113.51.堆栈操作P113.21.两次进栈后的堆栈状态FFA0:00ACFFA0:00ABFFA0:00AEFFA0:00AFFFA0:00B0790F5780SP1.堆栈操作P113.22.一次出栈后的堆栈状态FFA0:00ACFFA0:00ABFFA0:00AEFFA0:00AFFFA0:00B0790F5780SP出栈后堆栈内容并未变化2.查表P113.5用查表的方法可以将复杂的运算化成快速的查表操作。完整的程序如下:dataseg
2、menttabledb0,1,4,9,16,25,36,49,64,81,100,121,144,169,196,225dataendscodesegmentassumecs:code,ds:datamovax,datamovds,axmovcl,6moval,clmovbx,offsettablexlatmovah,4chint21hcodeendsend事先设计好表格供后面查表使用用到bx,al,结果存放在al中。[bx+al]->al2.查表P113.5用查表的方法也会受到一些限制,如上述程序中的表格为字节表,每个表格数据最大不能超过255。用乘法可以完成同样的功
3、能,但执行时间会长,如果多次做乘法的话,费时更长。用乘法的完整的程序如下:codesegmentassumecs:codemovax,datamovds,axmovcl,6moval,clmovbl,almulblmovah,4chint21hcodeendsend用到bl,al,结果存放在ax中。最大可达到255*2554.5系统功能调用4.5.1软中断指令及中断返回指令P.130中断:CPU执行程序过程中,外电路随机地向CPU发出中断请求,CPU暂停当前程序,而转去执行为该中断服务的子程序,处理完后,返回被暂停的程序处继续执行,这个过程称为中断。软中断:8086/8
4、088CPU在程序中允许安排一条中断指令来引起一个中断过程,实现某种服务功能,软中断服务完毕返回原中断指令处继续执行程序,这种中断叫软中断或叫内部中断。软中断指令及中断返回指令软中断指令:INTn;执行类型n的中断服务程序n为类型码(0~255)如:INT20;结束程序执行,返回DOS溢出中断指令:INTO;执行溢出中断的中断服务程序只有当OF=1时才执行溢出中断服务程序中断返回指令:IRET;从中断服务子程序返回4.5.2操作系统资源的使用(1)DOS系统功能调用(2)ROMBIOS中断调用操作系统DOS中已经将一些常用功能编写为中断子程序,只要知道相关参数,用户可当
5、做库函数来使用。4.5.2DOS系统功能调用(87种)P.131调用:(1)入口参数初始化(按入口参数要求)(2)DOS功能调用子程序编号送入AH(0~57H)(3)INT21H(软中断类型号为21H)常用DOS功能调用(INT21H)功能编号功能入口参数出口参数01H从键盘输入单个字符AL=输入字符的ASCⅡ码(回显)02H单个字符输出显示DL=要显示字符的ASCⅡ码09H输出显示字符串DS:DX=字符串的起始地址字符串显示在屏幕上(串必须以$结束)0AH输入字符串DS:DX=输入缓冲区的起始地址缓冲区长度1B、字符串长度1B、字符mB4CH返回DOSROMBIOS中
6、断调用(INT08H~INT1FH)ROMBIOS中断的调用方法:(1)入口参数初始化(按入口参数要求)(2)有的要将功能号送入AH(3)INTn(n=8~1FH)详见有关参考书.常用DOS功能调用INT21H指令是系统功能调用,包含有I/O操作、设备管理、文件管理、目录管理等几类。为方便调用,每个子程序对应有一个调用功能号。系统功能调用中的几十个子程序已成为汇编语言程序员的重要工具,程序员不必了解所使用设备的物理特性、接口方式和内存分配,不必编写复杂的控制程序,调用它们时采用统一的格式,只需要做到:①所需的入口参数送指定单元(通常是指定的寄存器);②将子程序功能号送
7、入AH寄存器中;③执行INT21H指令,实现DOS功能调用。DOS根据功能号携带入口参数转入相应的子程序执行,运行的结果由出口参数带出,一般也在某些寄存器中。(1)字符输入功能调用(1#)它没有入口参数,执行1号系统功能调用时,系统等待键盘输入,当按下任何一个键时,系统先检查是否为CTRL-BREAK键,如果是则退出运行的程序,否则将键入字符的ASCII码送入AL寄存器中,并在屏幕上显示该字符,程序继续向下执行。1号系统功能调用的格式如下:MOVAH,1INT21H常用DOS功能调用(续)(2)字符输出功能调用(2#)2号调用的功能是将D