Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СППО_все_шпоры_разом.docx
Скачиваний:
7
Добавлен:
18.04.2019
Размер:
96.32 Кб
Скачать

II.Процедура формирования программы.

Последовательность выполнения программы на языке ассемблер имеет следующую структуру:

1)ввод исходного кода программы текстовым редактором. (*.asm) - текстовый файл.

2)Ассемблирование программы(трассировка) (*.obj)

3) Создание загрузочного файла. Компиляция. (*.exe)

4) Отладка программы TASM MASM

мы будем использовать BASM, встроенный в DELPHY.

Система команд:

1. ADD – сложение.

код команды [пробел]операнд1,[пробел]операнд2

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

ADD AX, BX

ADD 5

2. AND - логич. «и»

3. CALL – вызов функции / вызов процедуры.

4. CMP – сравнение значений.

5. DIV – деление.

6. MOV – оператор присваивания, пересылки значения.

7. MUL – умножение.

8. OR – «или».

9. POP – извлечение значения из стека.

PUSH – помещение значения в стек.

10. ROL / ROR – циклический сдвиг влево / вправо.

11. SUB – вычитание.

12. XOR – исключающее «или».

13. NOT – отрицание.

[Логические команды побитовые.]

III.Структура использования ассемблера в делфи.

Для того, чтобы компилятор понял, что вы используете вставку ассемблерного кода, необходимо указать операторные скобки.

asm

end;

рассмотрим пример:

function Test() : integer; register

asm

MOV EAX, 10

end;

Передача значений по ссылке:

function Test(var i:integer):integer; register

asm

MOV EAX, [EAX]

ADD EAX, 5

end;

VI. Команды Ассемблера.

Команды представляют кратную запись системы команд, еще его называют машинной. Команда включает до 4 полей следующего вида:

1. [ метка]

2. мемо – код

3. [операнд]

4. [; комментарий]

[]- необязательные поля.

Метка предназначена для организации переходов между командами.

В качестве операнда в команде может фигурировать const, кот может вводиться в следующей форме

а) двоичн., как последовательность цифр 0 и 1, заканчивающихся буквой B. 100B

б) в десятичной форме, с необязательной D в конце

в) в 16ричной форме, как последовательность цифр от 0 до 9 и букв от A до F, в конце ставится буква H. 2AH

г) в форме литера – строка букв, цифр и др символов, заключенная в апострофы.

Мемо-коды могут иметь от 2 до 6 букв, при трансляции мемо-код преобразуется в числовое значение по таблице перекодировки, мемо-коды имеют жесткий формат, предусматривающий от 1 до 2 или отсутствие операнда. Если операндов 2, то они разделяются «,».

В качестве меток нельзя использовать имена регистров и мемо-коды. Метка должна начинаться с буквы, но может содержать цифры и знаки подчеркивания. Важной особенностью машинных команд является то, что они не могут манипулировать одновременно двумя операндами, находящимися в оперативной памяти. Это означает, что в команде только один операнд может указывать на ячейку АЗУ. Другой операнд должен быть либо регистром, либо непосредственным значением, поэтому возможны следующие сочетания операндов в команде:

регистр – регистр, регистр – память, память – регистр, регистр – непоср. значение, память – непосредственное значение.

Для команд характерно, что при наличии двух операндов, первый из них является приемником, а второй – источником. Результаты операции сохраняются по первому адресу, поэтому первый операнд не может быть const.