Что означает «int 21h» в сборке? - PullRequest
14 голосов
/ 09 июня 2011

Я новичок в изучении ассемблера, и мне интересно, что означает команда int 21h. Например:

 mov ah,01h
 int 21h

Который должен читать ключ от пользователя. Заранее спасибо за ваш ответ.

Ответы [ 3 ]

26 голосов
/ 09 июня 2011

int 21h означает, вызовите обработчик прерывания 0x21, который является диспетчером DOS-функции. «mov ah, 01h» устанавливает AH с 0x01, который является вводом с клавиатуры с обработчиком эха в прерывании. См:

http://spike.scu.edu.au/~barry/interrupts.html

5 голосов
/ 28 апреля 2014

INT 21H сгенерирует программное прерывание 0x21 (33 в десятичном виде), в результате чего будет выполнена функция, на которую указывает 34-й вектор в таблице прерываний, что обычно является вызовом MS-DOS API.

0 голосов
/ 24 апреля 2017

Это просто означает, что вы используете функцию 01h типа прерывания 21 ... где 01h, как вы сказали, это чтение символа из стандартного ввода, с эхо, результат сохраняется в AL. если в буфере клавиатуры нет символа, функция ждет, пока не будет нажата какая-либо клавиша. Он относится к типу 21h различных таблиц interrput, поэтому строки кода выглядят так, как вы упоминали.

...