汇编语言之dos中断实战

文章详细介绍了MSDOS中使用中断号21H进行系统调用的各种功能,包括键盘输入、屏幕显示字符和字符串、字符串输入、读取和设置系统时间和程序退出等操作。通过设置特定的功能号和参数,可以实现与DOS系统的交互。
摘要由CSDN通过智能技术生成

中断的语法格式:

 INT    n  

调用中断n的中断服务程序。n 为中断号,取值0 ~ 255。

对标志位的影响:不影响CF、OF、SF、ZF。

MS DOS使用中断号21H作为系统调用,为程序员提供了上百种系统服务功能,对这些功能的调用步骤如下:

(1)由AH给出功能号。

(2)根据相应功能的要求,设置入口参数。

(3)INT 21H。

(4)分析和使用出口参数。

  其中,最常用的是功能号4CH,用来实现程序退出、并返回DOS。使用方法如下:

  mov    ah, 4ch 
  int    21h  

实战

  • INT 21H 中断

(1)、键盘输入并显示(功能01H)
功能描述:从标准输入设备(如:键盘)读入一个字符。该中断在处理过程中将一直处于等待状态直到有字符可读为止。该输入还可被重定向,如果这样做,则无法判断文件是否已到文件尾
入口参数:AH=01H,过滤掉控制字符,并回显

mov AH,01H
int 21H

出口参数:AL=输入字符的ASCII码

(2)、屏幕显示一个字符(功能02H)
功能描述:向标准输出设备(如:屏幕)输出一个字符。该输出还可被重定向,如果这样做,则将无法判断磁盘是否满
入口参数:AH=02H
DL=待输出字符的ASCII码
出口参数:AL=DL

mov AH,02H  
mov DL,输入字符的ASCII码
int 21H

(3)、屏幕显示字符串(功能09H)
功能描述:输出一个字符串到标准输出设备上。如果输出操作被重定向,那么,将无法判断磁盘已满
入口参数:AH=09H
DS:DX=待输出字符的地址
说明:待显示的字符串以$ 作为其结束标志
出口参数:AL=24H

data segment
    buf dw "I am a chinese people$",
data ends
start:
       mov ax,data
       mov ds,ax
       mov ah,09H   
       lea dx,buf 
       int 21H
       mov ax,4c00H            
       int 21H
end start               

输出
在这里插入图片描述
(4)、字符串输入功能调用(0AH号功能调用)

data segment
     ;5表示最大长度为5个字符,0占用的那个字节在调用结束后会被放入实际输入的字符个数;5 dup(0)开辟5个字节单元,存放输入的字符的ASCII码。
     buf db 5,0,5 dup(0)
data ends
start:
       mov ax,data
       mov ds,ax   
       lea dx,buf 
       mov ah,0AH   
       int 21H        
end start               

(5)、读取系统时间
功能描述:取系统日期
入口参数:AH=2AH
出口参数:CX=年(19802099),DH=月(112),DL=日(1~31)
AL=星期几(0=Sunday,1=Monday,…)

mov ah,2ah
int 21h

(6)、读取系统时间
功能描述:置系统日期
入口参数:AH=2BH
CX=年(1980-2099),DH=月(1-12),DL=日(1~31)
出口参数:AL=00H——设置成功,0FFH——设置失败

mov ah,2bh
int 21h

(7)、返回DOS操作系统(4CH号功能调用)

mov AH,4CH
int 21H
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值