Язык ассемблера — это язык программирования низкого уровня, позволяющий напрямую управлять аппаратным обеспечением компьютера. Одним из наиболее интересных аспектов программирования на языке ассемблера является использование программных прерываний, также известных как инструкции «int», для взаимодействия с операционной системой. В случае архитектуры x86, особенно в среде DOS, инструкция «int 21h» используется для вызова функций операционной системы DOS.
Понимание инструкции «int 21h».
На языке ассемблера прерывание — это механизм, который позволяет процессору временно приостановить текущее выполнение и передать управление определенной процедуре, называемой обработчиком прерывания. Инструкция «int 21h» на языке ассемблера x86 запускает программное прерывание 21h, которое зарезервировано для вызова различных функций DOS.
Вызовы функций DOS:
За инструкцией «int 21h» следует параметр в регистре AH, который определяет выполняемую функцию, а также дополнительные параметры в других регистрах, которые предоставляют дополнительную информацию или данные.
Давайте рассмотрим некоторые распространенные вызовы функций DOS и связанные с ними значения AH:
- Отображение строки:
Чтобы отобразить строку на экране, мы можем использовать значение AH 09h. Например:
mov ah, 09h
mov dx, offset message
int 21h
message db 'Hello, World!', 0
- Чтение ввода символов:
Чтобы прочитать символ с клавиатуры, мы можем использовать значение AH 01h. Например:
mov ah, 01h
int 21h
mov myChar, al
myChar db ?
- Чтение ввода строки:
Чтобы прочитать строку символов с клавиатуры, мы можем использовать значение AH 0Ah. Например:
mov ah, 0Ah
mov dx, offset buffer
int 21h
buffer db 20h dup(?)
- Завершение программы:
Чтобы завершить программу, мы можем использовать значение AH 4Ch. Например:
mov ah, 4Ch
int 21h
Инструкция «int 21h» на языке ассемблера — это мощный механизм для вызова функций операционной системы DOS. Указывая соответствующие значения AH и передавая параметры в регистры, мы можем выполнять различные задачи, такие как отображение вывода, чтение ввода и завершение программы. Понимание и использование этих вызовов функций DOS открывает мир возможностей программирования на языке ассемблера.
Не забудьте изучить официальную документацию по функциям прерываний DOS и поэкспериментировать с различными значениями AH, чтобы открыть для себя больше возможностей!