- •5. Назначение и основные функции операционной системы.
- •6. Управление процессами.
- •1.Классификация программного обеспечения
- •2.Системное программное обеспечение.
- •7. Файловая система.
- •12.Режим прямой адресации.
- •2.Системное программное обеспечение.
- •13. Режим косвенной адресации.
- •19.Организация работы с клавиатурой.
- •20.Организация работы с манипулятором мышь.
- •24.Антивирусное программное обеспечение.
- •3.Прикладное программное обеспечение
- •17. «Организ. Циклов»
- •11.Регистры общего назначения (рон)
- •8. Организация файловых систем.
- •10.Математические операции.
- •I. Сложение и вычитание.
- •II. Команды корректировки представления чисел в двоичном / десятичном коде.
- •III. Команды вычитания.
- •IV. Умножение и деление целых чисел.
- •9.Язык программирования Assembler
- •II.Процедура формирования программы.
- •III.Структура использования ассемблера в делфи.
- •VI. Команды Ассемблера.
- •16.Оператор условного перехода.
- •15.Оператор безусловного перехода.
- •II. Команды межсегментового перехода.
- •14. Программирование ветвлений
- •18. Видеопамять. Организация работы с видеопамятью.
- •15.Оператор безусловного перехода.
- •II. Команды межсегментового перехода.
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.