news 2026/6/25 0:38:26

44、MS-DOS INT 21h 功能调用详解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
44、MS-DOS INT 21h 功能调用详解

MS-DOS INT 21h 功能调用详解

1. 引言

在早期的计算机编程中,MS - DOS 提供了一系列方便的功能调用接口,通过 INT 21h 中断来实现。这些功能涵盖了输入输出、日期时间获取与设置等多个方面,极大地简化了程序员的开发工作。下面我们来详细了解这些功能。

2. INT 21h 基础

INT 21h 中断支持大约 90 种不同的功能,通过将功能号存入 AH 寄存器来选择具体的功能。例如,最早用 Intel 汇编语言写的一个程序,仅用三条指令就在屏幕上显示了一个“*”:

mov ah, 2 mov dl, '*' int 21h

对于一些需要传递 32 位输入参数地址的功能,要将其存储在 DS:DX 寄存器中。若 DS 未指向程序的数据区,可使用 SEG 运算符来设置,示例代码如下:

.data inBuffer BYTE 80 DUP(?) .code mov ax, SEG inBuffer mov ds, ax mov dx, OFFSET inBuffer
3. 进程终止功能(INT 21h Function 4Ch)

INT 21h Function 4Ch 用于终止当前程序(进程)。在实地址模式程序中,常使用 Irvine16 库中的 exit 宏,其定义如下:

exit TEXTEQU <.EXIT>
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/24 21:50:40

48、磁盘操作与文件管理基础

磁盘操作与文件管理基础 1. 磁盘目录 为了说明磁盘目录的工作原理,我们以一个文件名包含 26 个字符的文件 ABCDEFG HIJKLM-NOPQRSTUVTXT 为例,将其作为文本文件保存到 A 盘的根目录中。之后,从命令提示符运行 DEBUG.EXE ,并将目录扇区加载到内存偏移量为 100 的位置,…

作者头像 李华
网站建设 2026/6/24 8:51:27

53、鼠标编程与BIOS级编程全解析

鼠标编程与BIOS级编程全解析 1. 鼠标编程基础 在进行鼠标编程时,米基(mickeys)与像素的比率和速度通常会被设置为默认值,鼠标的移动范围会被设定为整个屏幕区域。以下是通过INT 33h的不同功能来对鼠标进行操作的详细介绍。 1.1 重置鼠标并获取状态(INT 33h功能0) 该功…

作者头像 李华
网站建设 2026/6/24 18:42:43

Windows远程桌面多会话工具终极配置指南

Windows远程桌面多会话工具终极配置指南 【免费下载链接】rdpwrap RDP Wrapper Library 项目地址: https://gitcode.com/gh_mirrors/rdp/rdpwrap Windows远程桌面功能在企业环境中广泛应用&#xff0c;但Windows家庭版默认不支持多用户并发会话。RDP Wrapper Library作为…

作者头像 李华
网站建设 2026/6/24 18:23:48

13、Qt 数据库开发全解析:从基础到应用

Qt 数据库开发全解析:从基础到应用 1. 数据库与 Qt 简介 在现代应用程序中,数据库是不可或缺的一部分。即使是最简单的应用,也可能会用到数据库来存储和管理数据。Qt 提供了一个名为 QtSql 的模块,用于处理关系型数据库。SQL(结构化查询语言)是用于操作关系型数据库的语…

作者头像 李华
网站建设 2026/6/24 18:26:22

Lua 的 IO (输入/输出)模块

Lua 的 IO &#xff08;输入/输出&#xff09;模块 用于处理文件输入输出操作&#xff0c;主要通过 io 库实现。这个模块提供了简单而强大的文件操作功能&#xff0c;使得 Lua 能够高效地读写文件数据。 主要功能 1. 文件打开与关闭 io.open(filename [, mode])&#xff1a;…

作者头像 李华