Приветствуем. IndigoBits - это место, где скапливаются самые интересные и наиболее удивительные биты информации из пространства hi-tech. Наша страсть - мир высоких технологий.

26. Прерывание. Классификация. Команда INT

Прерывание означает временное прекращение основного процесса вычислений для выполнения некоторых запланированных или незапланированных действий, вызванных работой устройств или программы. В зависимости от источника различают прерывания: Аппаратные (внешние) – реакция процессора на физический сигнал от некоторого устройства. Возникают в случайные моменты времени, а значит – асинхронные Программные (внутренние) – возникает в заранее запланированный момент времени —[…]

4. Структура оператора и псевдооператора

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

29. Команды побитовой обработки. Типы операндов. Логические операции. Команды доступа у отдельным битам.

Команды побитовой обработки: Позволяют анализировать или изменить часть операнда Выполняются быстрее Имеют 1-3 операнда Операндом может быть: имя регистра, адрес ячейки оперативной памяти, непосредственный операнд Операнды имеют размер: байт, слово, двойное слово По назначению делятся на: логические, доступа к отдельным битам и команды сдвига Логические операции Все команды, кроме NOT, изменяют флаги zf, cf, of,[…]

30. Команды сдвига и циклического сдвига

Логический сдвиг операнда влево/вправо SHL операнд, количество_сдвигов SHR операнд, количество_сдвигов SHL и SHR сдвигают биты операнда (регистр/память) влево или вправо соответственно на один разряд и изменяют флаг переноса cf. При логическом сдвиге все биты равноправны, а освободившиеся биты заполняются нулями. Указанное действие повторяется количество раз, равное значению второго операнда. Пример: ; al = 01011011 (двоичное)[…]

31. Команды сдвига двойной точности

shld операнд_1, операнд_2, счетчик_сдвигов — сдвиг влево двойной точности. производит сдвиг влево операнда_1, заменяя освободившиеся справа биты значениями битов операнда_2, которые были бы вытолкнуты из него сдвигом влево на то же количество битов. Количество сдвигаемых бит определяется значением счетчик_сдвигов, которое может лежать в диапазоне 0…31. Это значение может задаваться непосредственным операндом или содержаться в регистре[…]

16. Определение меток

Метка – это символьное имя, обозначающее ячейку памяти, которая содержит некоторую команду. Метка в языке ассемблера может содержать следующие символы: Буквы (от A до Z и от a до z), Цифры (от 0 до 9, не первым символом), Знак вопроса (?) Точка (.) (только первый символ), Знак «коммерческое эт» (@), Подчеркивание (_), Доллар ($)). Примеры[…]

15. Классификация переходов

Для осуществления любого перехода необходимо в регистр CS и/или IP занести новые значения, соответствующие месторасположению следующей выполняемой команды.. Отсюда вытекает первая классификация переходов: переход называется близким (или внутрисегментнным) переходом, если при этом меняется только значение регистра IP, если же при переходе меняются значения обоих регистров, то такой переход будем называть дальним (или межсегментным) переходом. Очевидно,[…]

12. Команды расширения

В программах довольно часто нужно переслать меньшее по длине значение в большую по длине переменную или регистр. В качестве примера предположим, что нам нужно загрузить 16-разрядное беззнаковое значение, хранящееся в переменной count, в 32-разрядный регистр ЕСХ. Самое простое решение этой задачи заключается в том, что вначале нужно обнулить регистр ЕСХ, а затем загрузить 16-разрядное значение[…]

13. Команды пересылки

Одна из основных команд языка ассемблер – это команда пересылки. С её помощью можно записать в регистр значение другого регистра, константу или значение ячейки памяти, а также можно записать в ячейку памяти значение регистра или константу. Команда MOV копирует данные из операнда-источника в операнд-получатель. Она относится к группе команд пересылки данных (data transfer) и используется[…]

9. Режимы адресации. Ограничения на использование режимов адресации.

Режим адресации – это форма записи операнда в команде. Режимы адресации: Непосредственный (5, 0Аh). Регистровый (AX, BX). Память : Прямой (mas (- имя переменной)) Косвенный ([BX] (- взять значение хранящееся по адресу записанному в регистр BX)) Ограничения Оба операнда должны иметь одинаковую длину. Оба операнда не могут одновременно быть памятью. Получатель не может быть регистром[…]