Size: a a a

Ассемблер

2020 May 20

A

Aleksandr in Ассемблер
Функция 9 — вывод строки
источник

Y

YorkIsMine in Ассемблер
не очень ясно..
источник

A

Aleksandr in Ассемблер
Что такое прерывание?
источник

Y

YorkIsMine in Ассемблер
для меня это функция
источник

A

Aleksandr in Ассемблер
Нет
источник

Y

YorkIsMine in Ассемблер
ну или подпрограмма, как в инете говорят
источник

A

Aleksandr in Ассемблер
Всего тебе доступно 256 прерываний.
В начале адресного пространства располодена таблица прерываний. Она определяет адреса обработчиков прерываний.
Каждый адрес — сегмент и смещение, то есть четыре байта.
Int 21h — вызвать прерывание 21h. То есть процессор сохраняет FLAGS, IP и CS, а затем переходит по адресу номер 21h из таблицы прерываний
источник

A

Aleksandr in Ассемблер
По этому адресу расположен (ну, или должен быть расположен) обработчик прерывания
источник

A

Aleksandr in Ассемблер
Отдельный кусок кода, который получает управление и что то делает
источник

A

Aleksandr in Ассемблер
В досе прерывание 21h используется для реализации его апи. В регистрах передаются параметры (номер функции и параметры для нее)
источник

A

Aleksandr in Ассемблер
Ну, как то так
источник

Y

YorkIsMine in Ассемблер
сложновато...
После 20h String инициализируется, что довольно странно. В моей голове получается, что 21h печатает строку, которая null грубо говоря, но на самом деле она не null...
источник

Y

YorkIsMine in Ассемблер
столько вопросов на самом деле..
источник

Y

YorkIsMine in Ассемблер
какой вообще порядок выполнения всего этого чуда? Вряд ли последовательно
источник

A

Aleksandr in Ассемблер
последовательно
источник

Y

YorkIsMine in Ассемблер
тогда это еще страннее..
источник

A

Aleksandr in Ассемблер
mov ah, 9
 mov dx, offset String
 int 21h
источник

A

Aleksandr in Ассемблер
загружаем номер функции, загружаем адрес строки, выводим строку
источник

A

Aleksandr in Ассемблер
понятно?
источник

Y

YorkIsMine in Ассемблер
что есть номер функции? Какой функции?
источник