Отправляет email-рассылки с помощью сервиса Sendsay

Уроки по ассемблеру

  Все выпуски  

Уроки по ассемблеру


Информационный Канал Subscribe.Ru


Assembler. Уроки с сайта http://progs.biz

Рассылка №5

Assembler Урок 9. Команда move.
Assembler Урок 10. Команда int или что такое прерывание?

Полные версии уроков (с картинками) можно найти по адресам
Урок 9. Команда move.
Урок 10. Команда int или что такое прерывание?

Ассемблер. Урок 9. Команда mov

Команда mov служит для записи значения из одного места в другое (например, из одного регистра процессора в другой) или для записи некоторого значения в определенное место. Ее название просходит, разумеется, от английского move - переместить.

Вот примеры:

  mov ds, ax

Тут мы записываем значение их регистра процессора ax в регистр ds.

  mov cx, 21

Тут мы записываем 21 в регистр cx.

Обратите внимание на ряд вещей.

Во-первых, перемещаем данные мы вседа справа налево. Не перепутайте (особенно если будете перемещать данные из одного региста в другой)!

Во-вторых, значение правого операнда не изменяется. Так, в первом из приведеных в этом уроке примеров значение в регистре ax останется, естественно, неизменным.

В-третьих, не всегда мы можем напрямую записать значение в некоторый регистр. Такое у нас встречалось в уроке 6 - там мы не могли сразу записать конкретное значение в регистр ds процессора, а делали это через промежуточный регистр ax.

Наверх

Ассемблер. Урок 10. Команда int или что такое прерывание?

В уроке 6 нам пару раз встретилась команда int. Название этой команды происходит не от английского слова Integer, как можно подумать с первого раза, а от слова Interrupt, что и означает по-русски прерывание.

В наших примерах мы вызывали прерывание 21h:

    ...
    int 21h
    ...

Формат команды для прерывания такой:

    ...
    int Номер_прерывания
    ...

Итак, что такое прерывание и с чем его едят?

Представьте себе, что процессор выполяет некоторую задачу. И тут возникает необходимость выполнить еще что-нибудь - ну, например, обработать нажатие клавиши на клавиатуре. Вот тут-то прерывания и используется - т. е. это, грубо говоря, некоторая программа, которую может быть вызвана в любой момент работы процессора. Мы с помощью прерывания временно прекращаем выполение текущей задачи и заставляем процессор выполнять наше прерывание. После того, как вызванное прерывание будет обработано, прерванная задача опять начнет выполняться, причем с того места, на котором произошла остановка.

Прерывания бывают программные и аппаратные. У нас пока были программные прерывания - они вызывались из нашей программы.

Есть еще аппаратные прерывания - они вызываются аппаратурой компьютера. Аппаратное прерывание может вызвать, например, клавиатура - пользователь нажимает на клавишу, вызывается соответствующее прерывание и процессор как-то на прерывание реагирует. Обратите внимание на один момент - что инициатором прерывания является не процессор, а аппаратура компьютера (клавиатура в нашем случае). Т. е. процессор работает себе и работает и не занят слежением за клавиатурой или еще за чем-нибудь. Если кому-то надо, чтобы на него процессор обратил внимание, то именно он и вызывает соответствующее прерывание (стучится в дверь, образно говоря).

Прерывания еще различаются по приоритету. Так, если процессор занят обработкой некоторого прерывания и вызывается второе прерывание с большим приоритетом, то обработка первого прерывания пристанавливается, обрабатывается второе прерывание и затем процессор возвращается к обработке первого прерывания (с того места, на котором он остановился).

Еще прерывания различаются по тому, кто их обрабатывает. Некоторые прерывания обрабатывает, например, BIOS, а некоторые - DOS (или другая операционная система). Первые - это прерывания более низкого уровня, вторые - более высокого. Обычно используются прерывания операционной системы.

Наверх

Другие рассылки с сайта progs.biz

Рассылки Subscribe.Ru
Уроки по Java

Уроки по Java с самого начала. Основные конструкции языка, классы в Java, создание приложений с графическим интерфейсом, создание апплетов, работа в JBuilder от Borland'а, сетевые приложения.



Copyright Алексеев Игорь, 2003

Copyright сайт progs.biz, 2003


http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное