09第四章5操作系统资源利用.pptVIP

  1. 1、本文档共26页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
作业讲评 1.堆栈操作P113.2 2.查表P113.5 1.堆栈操作P113.2 1.两次进栈后的堆栈状态 1.堆栈操作P113.2 2.一次出栈后的堆栈状态 2.查表P113.5 用查表的方法可以将复杂的运算化成快速的查表操作。完整的程序如下: data segment table db 0,1,4,9,16,25,36,49,64,81,100,121,144,169,196,225 data ends code segment assume cs:code,ds:data mov ax,data mov ds,ax mov cl,6 mov al,cl mov bx,offset table xlat mov ah,4ch int 21h code ends end 2.查表P113.5 用查表的方法也会受到一些限制,如上述程序中的表格为字节表,每个表格数据最大不能超过255。用乘法可以完成同样的功能,但执行时间会长,如果多次做乘法的话,费时更长。用乘法的完整的程序如下: code segment assume cs:code mov ax,data mov ds,ax mov cl,6 mov al,cl mov bl,al mul bl mov ah,4ch int 21h code ends end 软中断指令及中断返回指令 软中断指令:INT n ;执行类型 n 的中断服务程序 n为类型码(0~255) 如: INT 20 ;结束程序执行,返回DOS 溢出中断指令:INTO ;执行溢出中断的中断服务程序 只有当OF=1时才执行溢出中断服务程序 中断返回指令:IRET ;从中断服务子程序返回 常用DOS功能调用 INT 21H指令是系统功能调用,包含有I/O操作、设备管理、文件管理、目录管理等几类。 为方便调用,每个子程序对应有一个调用功能号。 系统功能调用中的几十个子程序已成为汇编语言程序员的重要工具,程序员不必了解所使用设备的物理特性、接口方式和内存分配,不必编写复杂的控制程序,调用它们时采用统一的格式,只需要做到: ①???? 所需的入口参数送指定单元(通常是指定的寄存器); ②???? 将子程序功能号送入AH寄存器中; ③???? 执行INT 21H指令,实现DOS功能调用。 DOS根据功能号携带入口参数转入相应的子程序执行,运行的结果由出口参数带出,一般也在某些寄存器中。 (1) 字符输入功能调用(1#) 它没有入口参数,执行1号系统功能调用时,系统等待键盘输入,当按下任何一个键时,系统先检查是否为CTRL-BREAK键,如果是则退出运行的程序,否则将键入字符的ASCII码送入AL寄存器中,并在屏幕上显示该字符,程序继续向下执行。1号系统功能调用的格式如下: MOV AH,1 INT 21H 常用DOS功能调用(续) (2) 字符输出功能调用(2#) 2号调用的功能是将DL寄存器中的字符送屏幕上输出显示。 2号调用时要求将显示字符的ASCII码(入口参数)送入DL中。 (3) 字符串输入功能调用(10#) 10号系统功能调用是将键盘上输入的字符串写到内存缓冲区中。 要求事先在内存储器中定义一个输入缓冲区,缓冲区的第一个字节单元给出该缓冲器能容纳的字符个数,第二字节单元留给系统填入实际键入的字符个数,从第三字节单元开始用来存放键入的字符串。调用时,必须使DS:DX指向该缓冲区。 执行10号功能调用时,系统等待从键盘上键入字符,键入回车表示字符串输入结束。如果实际键入的字符数不足以填满缓冲区,则剩余的字节存储单元填“0”, 如果实际键入的字符数超过定义的缓冲区容量,则超出的字符被丢弃,并且响铃告警。 (4) 字符串输出功能调用(9#) 9号系统功能调用是将指定的内存缓冲区中字符串输出到屏幕上显示或到打印机上打印。 9号功能调用要求,缓冲区首地址必须由DS:DX给出,同时字符串必须以字符“$”结束。 字符串输入与输出 下面是一个简单的人机对话程序。 DATA SEGMENT PARS DB 20 ; 定义缓冲区字节 DB ? DB 20 DUP(?) ; 10号调用的输入字符串存储缓冲区 MESG DB What is your name? ; 要显示的提问信息 DB $ DATA END

文档评论(0)

天马行空 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档