Int 21h: описание команды и её применение в ассемблере

Команда Int 21h в ассемблере используется для вызова функций DOS. Она позволяет программам на ассемблере взаимодействовать с операционной системой DOS через интерфейс программирования приложений (API).

Описание:

Int 21h — это прерывание, которое вызывает функции DOS. После Int 21h следует номер функции, которую нужно вызвать. Например, Int 21h, 4Ch завершает программу, а Int 21h, 09h выводит символ новой строки.

Применение:

Int 21h используется для выполнения различных операций, таких как работа с файлами, управление памятью, ввод-вывод и другие. Например, Int 21h, 3Fh используется для чтения данных из файла, а Int 21h, 3Eh для записи данных в файл.

Введение

Прерывание Int 21h — это основной способ взаимодействия программ на ассемблере с операционной системой DOS. Оно предоставляет широкий спектр функций, позволяя выполнять задачи по управлению файлами, вводом-выводом, памятью и другими системными операциями.

Структура команды

Команда Int 21h вызывается с номером функции в регистре AH и, в зависимости от функции, может требовать дополнительные параметры в других регистрах.

Пример: Если хотите завершить программу и передать код завершения в операционную систему, необходимо использовать функцию 4Ch:

  • AH = 4Ch — функция завершения программы
  • AL = код завершения

Пример кода:

mov ah, 4Ch
mov al, 00h
int 21h

Этот код завершает программу с кодом завершения 0.

Основные функции Int 21h

Функции для работы с файлами

  • 3Dh — Открытие файла:
  • AH = 3Dh — номер функции
  • DX = указатель на имя файла — полный путь к файлу
  • AL = режим доступа — 0 (чтение), 1 (запись), 2 (чтение и запись) Возвращает дескриптор файла в регистре AX.

Пример:

mov ah, 3Dh
mov dx, offset FileName
mov al, 0
int 21h
mov Handle, ax

Этот код открывает файл в режиме чтения и сохраняет дескриптор файла в переменную Handle.

  • 3Eh — Закрытие файла:
  • AH = 3Eh — номер функции
  • BX = дескриптор файла

Пример:

mov ah, 3Eh
mov bx, Handle
int 21h

Этот код закрывает файл с указанным дескриптором.

Функции ввода-вывода

  • 09h — Вывод строки на экран:
  • AH = 09h — номер функции
  • DX = указатель на строку — строка должна оканчиваться символом $

Пример:

mov ah, 09h
mov dx, offset Message
int 21h

Этот код выводит строку на экран.

Управление памятью

  • 48h — Выделение блока памяти:
  • AH = 48h — номер функции
  • BX = количество параграфов (один параграф = 16 байт) Возвращает сегментный адрес выделенного блока в AX.

Пример:

mov ah, 48h
mov bx, 10 ; выделяем 160 байт (10 параграфов)
int 21h
mov Segment, ax

Этот код выделяет 160 байт памяти и возвращает сегментный адрес.

Заключение

Int 21h — мощный инструмент для взаимодействия с операционной системой DOS. Он охватывает широкий спектр функций, от управления файлами и памятью до выполнения ввода-вывода и выполнения различных системных операций. Понимание и правильное использование Int 21h позволяет писать эффективные и мощные программы на ассемблере для DOS.

Закладка Постоянная ссылка.

Обсуждение закрыто.