Реферат: Семантический анализ структуры EXE файла и дисассемблер (с примерами и исходниками), вирусология

|100000sw|mod000r/m|--data--|data, если BW=01|

CALL

(CALL)

Вызов процедуры или задачи

Схема команды:

call цель

Назначение:

  • передача управления близкой или дальней процедуре с запоминанием в стеке адреса точки возврата;
  • переключение задач.

Алгоритм работы:
определяется типом операнда:

  • метка ближняя — в стек заносится содержимое указателя команд eip/ip и в этот же регистр загружается новое значение адреса, соответствующее метке;
  • метка дальняя — в стек заносится содержимое указателя команд eip/ip и cs. Затем в эти же регистры загружаются новые значения адресов, соответствующие дальней метке;
  • r16, 32 или m16, 32 — определяют регистр или ячейку памяти, содержащие смещения в текущем сегменте команд, куда передается управление. При передаче управления в стек заносится содержимое указателя команд eip/ip;
  • указатель на память — определяет ячейку памяти, содержащую 4 или 6-байтный указатель на вызываемую процедуру. Структура такого указателя 2+2 или 2+4 байта. Интерпретация такого указателя зависит от режима работы микропроцессора:

Состояние флагов после выполнения команды (кроме переключения задачи):

выполнение команды не влияет на флаги

При переключении задачи значения флажков изменяются в соответствии с информацией о регистре eflags в сегменте состояния TSS задачи, на которую производится переключение.
Применение:
Команда call позволяет организовать гибкую и многовариантную передачу управления на подпрограмму с сохранением адреса точки возврата.

О б ъ е к т н ы й к о д (четыре формата):

Прямая адресация в сегменте:

|11101000|disp-low|diep-high|

Косвенная адресация в сегменте:

|11111111|mod010r/m|

Косвенная адресация между сегментами:

|11111111|mod011r/m|

Прямая адресация между сегментами:

|10011010|offset-low|offset-high|seg-low|seg-high|

CMP

(CoMPare operands)

Сравнение операндов

Схема команды:

cmp операнд1,операнд2

Назначение: сравнение двух операндов.

Алгоритм работы:

  • выполнить вычитание (операнд1-операнд2);
  • в зависимости от результата установить флаги, операнд1 и операнд2 не изменять (то есть результат не запоминать).

Состояние флагов после выполнения команды:

11

07

06

К-во Просмотров: 342
Бесплатно скачать Реферат: Семантический анализ структуры EXE файла и дисассемблер (с примерами и исходниками), вирусология