汇编中的DOS功能调用

翱翔天空♂鹏 发表于 2008-11-18 10:21:25

DOS功能调用
  系统功能调用是MS—DOS为程序员编写汇编语言源程序提供的一组子程序,包括设备管理、文件管理和目录管理等。
  DOS规定使用软中断指令INT 21H作为进入各功能子程序的总入口,再为每个功能调用规定一个功能号,引用功能号即可进入相应的子程序入口。DOS系统功能调用的使用方法归纳如下:
  (1) 传送入口参数到指定的寄存器中;
  (2) 把要调用功能的功能号送入AH寄存器中;
  (3) INT 21H指令转入子程序入口;
  (4) 相应的子程序运行结束后,可以按照规定取得出口参数。
  常用系统功能调用简介。
  1 键盘输入单字符
  这是1号系统功能调用,其调用格式为
   MOV AH1
   INT 21H
  该功能调用无入口参数。其功能为系统等待键盘输入,如是Ctrol-Break键则退出;否则将键入字符的ASCII码送入AL寄存器中,并且通过显示器显示该字符。
  2 键盘输入字符串
  这是0AH号系统功能调用,其功能为将键盘输入的字符串写入内存单元中。因此,首先在内存中定义一个缓冲区,缓冲区第一个字节存放规定字符串的最大字节数,第二个字节由系统送入实际键入的字符数,从第三个字节开始用于存放键入的字符串,最后通过键入回车键来表示字符串的结束。如果实际键入的字符数未达到最大规定数,其缓冲区的空余区间填0;如果实际键入数超过缓冲区的容量,则超出的字符自动丢失,而且响铃警告。注意,回车键值也存于缓冲区中。
   3.75 使用格式举例。
     ·MODEL SMALL
     ·DATA
   BUF  DB 20
      DB?
      DB 20 DUP(?)
     ·CODE
     ·STARTUP
      MOV DXOFFSET BUF
      MOV AH0AH
      INT 21H
     ·EXIT
      END
  该程序在BUF为首地址的缓冲区定义了20个字符串字节的缓冲区,并且将缓冲区首地址送入DX中,调用0AH号子程序,系统等待用户键入字符串,每键入一个字符,其相应的ASCII码将被写入缓冲区中,直到键入回车键,由系统输入实际键入字符数,送入缓冲区第二个字节中。
  3 输出单字符
  这是2号系统功能调用,其使用格式为:
  MOV DL‘A’
  MOV AH2
  INT 21H
  执行2号系统功能调用,将置入DL寄存器中的字符(ASCII码形式表示)通过显示器显示出来(或从打印机输出)
  4 输出字符串
  这是9号系统功能调用,其功能是将指定的内存缓冲区中的字符串从显示器显示输出(或从打印机输出),缓冲区中的字符串以字符作为结束标志。
   3.76使用格式举例。
    ·MODEL SMALL
    ·DATA
  BUF DB ‘Thank you $’
    ·CODE
    ·STARTUP
     MOV DXOFFSET BUF
     MOV AH9
     INT 21H
    ·EXIT
     END
  5 返回操作系统
  这是4CH号系统功能调用,使用格式为
  MOV AH4CH
  INT 21H
  在用户程序结束处插入此调用,则返回到DOS操作系统,显示器显示系统提示符。



收藏: QQ书签 del.icio.us 订阅: Google 抓虾

最新评论

发表评论

* 昵称

已经注册过? 请登录

新用户请先注册 以便能显示头像及追踪评论回复

Email
网址
* 评论
表情
 
 

分类小组论坛
杂谈, 娱乐、八卦, 文学、艺术, 体育, 旅游、同城, 象牙塔, 情感, 时尚、生活, 星座, 科技

请注意遵守中华人民共和国法律法规, 如威胁到本站生存, 将依法向有关部门报告, 同时本站的相关记录可能成为对您不利的证据.

相关法律法规
全国人大常委会关于维护互联网安全的决定
中华人民共和国计算机信息系统安全保护条例
中华人民共和国计算机信息网络国际联网管理暂行规定
计算机信息网络国际联网安全保护管理办法
计算机信息系统国际联网保密管理规定