Семантический анализ структуры EXE файла и дисассемблер (с примерами и исходниками), вирусология
| Категория реферата: Рефераты по информатике, программированию
| Теги реферата: бесплатные рефераты скачать бесплатно, товар реферат
| Добавил(а) на сайт: Gorev.
Предыдущая страница реферата | 6 7 8 9 10 11 12 13 14 15 16 | Следующая страница реферата
Назначение: размещение содержимого операнда источник в стеке.
Алгоритм работы:
. уменьшить значение указателя стека esp/sp на 4/2 (в зависимости от значения атрибута размера адреса — use16 или use32);
. записать источник в вершину стека (адресуемую парой ss:esp/sp).
Состояние флагов после выполнения команды:
|выполнение команды не влияет на флаги |
Применение:
Команда push используется совместно с командой pop для записи значений в
стек и извлечения их из стека. Размер записываемых значений — слово или
двойное слово. Также в стек можно записывать непосредственные значения.
Заметьте, что в отличие от команды pop в стек можно включать значение
сегментного регистра cs. Другой интересный момент связан с регистром sp.
Команда push esp/sp записывает в стек значение esp/sp по состоянию до
выдачи этой команды. В микропроцессоре i8086 по этой команде записывалось
скорректированное значение sp. При записи в стек 8-битных значений для них
все равно выделяется слово или двойное слово (в зависимости от use16 или
use32).
О б ъ е к т н ы й к о д (три формата):
Регистр: |01010reg|
Сегментный регистр: |000sg111| (sg-сегм.рег.)
Регистр/память: |11111111|mod110r/m|
Пример:
my_proc proc near push ax push bx
;тело процедуры, в которой изменяется содержимое
;регистров ax и bx
... pop bx pop ax ret endp
SHL
(SHift logical Left)
Сдвиг логический операнда влево
|Схема команды: |shl |
| |операнд,количество_сдвигов |
Назначение: логический сдвиг операнда влево.
Алгоритм работы:
. сдвиг всех битов операнда влево на один разряд, при этом выдвигаемый слева бит становится значением флага переноса cf;
. одновременно слева в операнд вдвигается нулевой бит;
. указанные выше два действия повторяются количество раз, равное значению второго операнда.
Состояние флагов после выполнения команды:
|11|00|
|OF|CF|
|?r|r |
Применение:
Команда shl используется для сдвига разрядов операнда влево. Ее машинный
код идентичен коду sal, поэтому вся информация, приведенная для sal, относится и к команде shl. Команда shl используется для сдвига разрядов
операнда влево. Так же, как и для других сдвигов, значение второго операнда
(счетчикк сдвига) ограничено диапазоном 0...31. Это объясняется тем, что
микропроцессор использует только пять младших разрядов операнда
количество_разрядов. Аналогично другим командам сдвига сохраняется эффект, связанный с поведением флага of, значение которого имеет смысл только в
операциях сдвига на один разряд:
. если of=1, то текущее значение флага cf и выдвигаемого слева бита операнда различны;
. если of=0, то текущее значение флага cf и выдвигаемого слева бита операнда совпадают.
Этот эффект, как вы помните, обусловлен тем, что флаг of устанавливается в
единицу всякий раз при изменении знакового разряда операнда.
Команду shl удобно использовать для умножения целочисленных операндов без знака на степени 2. Кстати сказать, это самый быстрый способ умножения; умножить содержимое ax на 16 (2 в степени 4).
SHR
Сдвиг логический операнда вправо
Рекомендуем скачать другие рефераты по теме: реферат менеджмент, вопросы и ответы.
Категории:
Предыдущая страница реферата | 6 7 8 9 10 11 12 13 14 15 16 | Следующая страница реферата