Что такое программа ехе

то в программе после оператора SEGMENT кодируется директива ORG 100H.

О б р а б о т к а. Для программ в EXE и COM форматах выполняется

ассемблирование для получения OBJ-файла, и компановка для получения

EXE-файла. Если программа создается для выполнения как EXE-файл, то ее уже

можно выполнить. Если же программа создается для выполнения как COM-файл,

то компановщиком будет выдано сообщение:

Warning: No STACK Segment

(Предупреждение: сегмент стека не определен)

Это сообщение можно игнорировать, так как определение стека в

программе не предполагалось. Для преобразования EXE-файла в COM-файл

используется программа EXE2BIN. Предположим, что EXE2BIN имеется на

дисководе A, а скомпонованный файл по имени CALC.EXE — на дисководе B.

Так как первый операнд всегда предполагает EXE файл, то можно не

кодировать тип EXE. Второй операнд может иметь другое имя (не CALC.COM).

Если не указывать тип COM, то EXE2BIN примет по умолчанию тип BIN, который

Что такое приложение? Это .exe или сайт?

впоследствии можно переименовать в COM. После того как преобразование

будет выполнено можно удалить OBJ- и EXE-файлы.

Если исходная программа написана для EXE-формата, то можно, используя

редактор, заменить команды в исходном тексте для COM файла.

Логика и организация программы

Некоторые команды могут передавать управление, изменяя нормальную

последовательность шагов непосредственной модификацией значения смещения в

командном указателе. Ниже приведены четыре способа передачи управления

(все будут рассмотрены в этой главе):

Безусловный переход: JMP

Условный переход: Jnnn (больше,меньше,равно)

Вызов процедуры: CALL

Заметим, что имеется три типа адресов: SHORT, NEAR и FAR. Адресация

SHORT используется при циклах, условных пеpеходах и некоторых безусловных

переходах. Адресация NEAR и FAR используется для вызовов процедур (CALL) и

Читайте также:
Как в программе wps office поменять язык с английского на русский

безусловных переходов, которые не квалифицируются, как SHORT. Все три

типа передачи управления воздействуют на содержимое регистра IP; тип FAR

также изменяет регистр CS.

Одной из команд обычно используемых для передачи управления является

команда JMP. Эта команда выполняет безусловный переход, т.е. обеспечивает

передачу управления при любых обстоятельствах.

. Команда LOOP, которая служит для этой цели, использует начальное значение в

регистре CX. В каждом цикле команда LOOP автоматически уменьшает

содержимое регистра CX на 1. Пока значение в CX не равно нулю, управление

передается по адресу, указанному в операнде, и если в CX будет 0,

управление переходит на следующую после LOOP команду. Дополнительно существует две разновидности команды LOOP — это LOOPE

(или LOOPZ) и LOOPNE (или LOOPNZ). Обе команды также уменьшают значение

регистра CX на 1. Команда LOOPE передает управление по адресу операнда,

если регистр CX имеет ненулевое значение и флаг нуля установлен (ZF=1).

КАК УСТРОЕН EXE ФАЙЛ?

Команда LOOPNE передает управление по адресу операнда, если регистр CX

имеет ненулевое значение и флаг нуля сброшен (ZF=0).

Флаговый регистр

Флаговый pегистр содержит 16 бит флагов, которые

управляются различными командами для индикации состояния операции. Во всех

случаях флаги сохраняют свое значение до тех пор, пока другая команда не

изменит его. Флаговый регистр содержит девять используемых бит.

Номер бита: 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

Флаг: * * * * O D I T S Z * A * P * C

Рассмотрим эти флаги в последовательности справа налево.

CF (Carry Flag) — флаг переноса. Содержит значение «переносов» (0 или

1) из старшего разряда при арифметических операциях и некоторых операциях

сдвига и циклического сдвига (см. гл.12).

(OP1) « (OP2) (меняет местами), (OP1) + (OP2) ® OP1

Читайте также:
Программа LG thinq для стиральной машины

INC OP1; (OP1) + 1 ® OP1

В Ассемблере команда ‘-‘

SUB OP1, OP2; (OP1) – (OP2) ® OP1

SBB OP1, OP2; (OP1) – (OP2) – (CF) ® OP1

DEC OP1; (OP1) – 1 ® OP1.

X = 1234AB12h, Y = 5678CD34h, X + Y =

MOV AX, 1234h

MOV BX, 0AB12h

MOV CX, 5678h

MOV DX, 0CD34h

ADD BX, DX

ADC AX, CX

X – Y = SUB BX, DX

SBB AX, CX

В командах сложения и вычитания можно использовать любые способы адресации:

ADD AX, mas[SI]; прямая с индексированием

95h + 82h = 117h 95 = 100101012 82 = 100000102

100101012 + 100000102 = 1 0001 01112, 10010101

CF = 1, OF = 1, SF = 0, ZF = 0, AF = 0, PF = 1. 10000010

Пример2: 1 00010111

MOV AL, 9h

SUB AL, 5h

9h – 5h = 4h 5 = 00000101 -5 = 11111011 9 = 00001001

9 + (-5) = 11111011 + 00001001 = 1 0000 0100

CF = 1, OF = 0, SF = 0, ZF = 0, AF = 1, PF = 0.

Источник: megaobuchalka.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru