Содержание
- 2. Как создать проект с ASM-кодом Создаём консольное приложение Win32. Заходим в «Настройки построения» проекта и ставим
- 3. Структура программы на ассемблере Общий синтаксис: .MODEL .STACK .DATA .CODE : RET END Пример: .686P .MODEL
- 4. Структура программы на ассемблере .686P ; 686 — набор команд P6 (Pentium II), P — защищённый
- 5. Основные типы данных Форматы: DB — байт; DW — слово; DD — двойное слово; DQ —
- 6. Задание числовых переменных Переменные определяются в сегменте данных. Синтаксис: ; комментарий Модификатор d (или отсутствие модификатора)
- 7. Задание символьных строк Символьные строки задаются в одинарных или двойных кавычках, либо в виде кодов символов,
- 8. Задание массивов Синтаксис: ; комментарий DUP( ) Примеры: ARR1 DB 0,1,2,3,4,5,6,7,8,9 ARR2 DB 0,1,2,3 DB 4,5,6,7
- 9. Структура команды : ; комментарий Обязательной частью является только сама команда. Задаётся 0, 1 или 2
- 10. Операнды Операнд, заданный на микропрограммном уровне, в команде не указывается; он подставляется неявно: MUL EBX ;
- 11. Операнды в оперативной памяти Прямая адресация — по имени операнда: ADD EAX, var1 Косвенная базовая адресация
- 12. Ограничения на операнды Нельзя в одной команде оперировать двумя областями памяти одновременно. Нельзя оперировать сегментным регистром
- 13. Основные флаги регистра EFLAGS CF — бит переноса. Этот флаг показывает состояние переполнения для беззнаковых целочисленных
- 14. Команды пересылки Пересылка операндов: MOV dest, src Обмен операндов: XCHG op1, op2 Загрузка эффективного адреса в
- 15. Команды работы со стеком Поместить операнд в вершину стека: PUSH src Извлечь значение из вершины стека,
- 16. Арифметические команды Сложение двух операндов: ADD dest, src Сложение двух операндов и регистра CF: ADC dest,
- 17. Арифметические команды Беззнаковое умножение: MUL src Первый операнд задан неявно — это регистр AL, AX или
- 18. Арифметические команды Беззнаковое деление: DIV src Первый операнд задан неявно — это регистры AH:AL, DX:AX или
- 19. Логические команды Побитовая конъюнкция: AND dest, src Побитовая дизъюнкция: OR dest, src Побитовая инверсия: NOT dest
- 20. Сдвиговые команды Логический сдвиг вправо (заполнение нулями): SHR dest, steps SHR dest Арифметический сдвиг вправо (деление
- 21. Сдвиговые команды Циклический сдвиг вправо: ROR dest, steps ROR dest Циклический сдвиг вправо через перенос: RCR
- 22. Команды преобразования типов Команды расширяют данные, хранящиеся в AL, AX или EAX. Расширение AL до AX:
- 23. Команды установки единичного бита Операнд — 8-битный регистр или переменная; проверяется условие на флаги, если оно
- 24. Команды управления флагами Сброс флага CF (CF = 0): CLC Установка флага CF (CF = 1):
- 25. Оператор переопределения типа Оператор переопределения типа PTR применяется для переопределения или уточнения типа метки или переменной,
- 26. Оператор получения сегмента и смещения Оператор получения сегментной составляющей адреса выражения SEG возвращает физический адрес сегмента
- 27. Операторы определения длины Оператор определения длины массива LENGTH возвращает число элементов, определённых операндом DUP. Если операнд
- 28. Консольный ввод/вывод Консольный вывод в DOS: .DATA STR1 DB "Console Output",0 .CODE MAIN: LEA DX, STR1
- 29. Консольный ввод/вывод .686P ;плоская модель памяти .MODEL FLAT, stdcall ;константы STD_OUTPUT_HANDLE equ -11 ;прототипы внешних процедур
- 31. Скачать презентацию