DOS 中断调用实战:INT 21h 文件/键盘/显示操作

DOS 中断是汇编与操作系统交互的桥梁。INT 21h 提供 100+ 功能调用,涵盖文件读写、键盘输入、屏幕显示。本文精选最实用的 10 个功能号,附完整代码示例。

3

什么是 DOS 中断?

DOS 中断是操作系统提供的系统调用。汇编程序通过 INT 21h 请求 DOS 服务。

功能号机制

1
2
3
MOV AH, 功能号  ; 选择服务
; 设置其他参数
INT 21h         ; 调用

常用功能号速查

功能号 功能 输入 输出
01h 键盘输入(带回显) - AL=字符
02h 显示字符 DL=字符 -
09h 显示字符串 DX=字符串地址 -
0Ah 键盘输入(缓冲区) DX=缓冲区地址 -
3Ch 创建文件 DX=文件名,CX=属性 AX=文件句柄
3Dh 打开文件 DX=文件名,AL=模式 AX=文件句柄
3Eh 关闭文件 BX=文件句柄 -
3Fh 读文件 BX=句柄,DX=缓冲区,CX=字节数 AX=实际读取
40h 写文件 BX=句柄,DX=缓冲区,CX=字节数 AX=实际写入
4Ch 退出程序 AL=返回码 -

实战:文件读写

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
; 创建并写入文件
DATA SEGMENT
    FNAME DB 'test.txt', 0
    MSG   DB 'Hello from Assembly!'
    BUF   DB 100 DUP(?)
    HANDLE DW ?
DATA ENDS

CODE SEGMENT
    ASSUME CS:CODE, DS:DATA
START:
    MOV AX, DATA
    MOV DS, AX
    
    ; 创建文件
    MOV AH, 3Ch
    MOV CX, 0
    MOV DX, OFFSET FNAME
    INT 21h
    MOV HANDLE, AX
    
    ; 写入数据
    MOV AH, 40h
    MOV BX, HANDLE
    MOV CX, 20
    MOV DX, OFFSET MSG
    INT 21h
    
    ; 关闭文件
    MOV AH, 3Eh
    MOV BX, HANDLE
    INT 21h
    
    ; 退出
    MOV AH, 4Ch
    INT 21h
CODE ENDS
    END START

总结

掌握 INT 21h,你的汇编程序就能与文件系统、键盘、屏幕交互,从玩具变成工具。

下一篇:《输入输出与中断程序设计:硬件交互的底层逻辑》

广告
广告位预留中 (728x90)