Знакомство с инструментальными средствами разработки программ на Assembler (на примере WinAsm Studio)
Содержание
- 2. Язык ассемблера – это язык программирования со взаимно однозначным соответствием между его командами и командами процессора.
- 3. Для разработки программ на языке ассемблера для семейства процессоров Intel применяются два пакета программ: 1. Borland
- 4. Технология разработки программ на языке ассемблера включает следующие этапы: Постановка задачи и составление блок-схем. Формирование текста
- 5. ML.EXE LINK.EXE компиляция компоновка
- 6. WinAsm Studio - специальное инструментальное средство для разработки программ на языке ассемблера, которое содержит встренный текстовый
- 7. WinAsm Studio - специальное инструментальное средство для разработки программ на языке Ассемблера, которое скрывает от программиста
- 8. Проект - совокупность нескольких исходных программ на языке ассемблера, файлов заголовков и т.д., связанных между собой
- 9. Процедура создания проекта в WinAsm 1. Создание нового проекта
- 10. Процедура создания проекта в WinAsm 2. Выбор варианта нового проекта.
- 11. 3. Окно нового проекта. Процедура создания проекта в WinAsm
- 12. Процедура создания проекта в WinAsm 4. Сохранение нового проекта.
- 13. 5. Окно редактирования текста программы. Процедура создания проекта в WinAsm
- 14. Структура программы на языке ассемблера Исходный текст программы разделяется на следующие секции: данные, неинициализированные данные, константы,
- 15. Структура программы на языке ассемблера Секция данных (.DATA) содержит данные, доступные для чтения и записи, включается
- 16. Секция констант аналогична секции данных, но доступна только для чтения. Структура программы на языке ассемблера Секция
- 17. Шаблон программы на языке ассемблера .386 .MODEL Flat, STDCALL .DATA .DATA? .CONST .CODE end
- 18. Особенности шаблона программы на языке ассемблера 1) Директивы установки типа процессора – это директивы, которые определяют
- 19. Модели памяти, используемые в MASM
- 20. Особенности шаблона программы на языке ассемблера 1) Директивы установки типа процессора – это директивы, которые определяют
- 21. 3) Директивы, определяющие начала секций программы. .DATA .DATA? .CONST .CODE Особенности шаблона программы на языке ассемблера
- 22. .code start: … end start Секция кода
- 23. Использование функций Windows API в программах на ассемблере Windows API (Application Programming Interface) Kernel32.dll содеpжит API
- 24. Пpогpаммы по мере необходимости связываются с библиотеками. Связь осуществляется путем использования в тексте программы ссылки на
- 25. Регистры – участки высокоскоростной памяти для хранения данных в процессоре, они непосредственно подключены к блоку управления
- 26. В общем случае функция, выполняемая тем или иным регистром, определяется командами, в которых он используется. При
- 27. В общем случае функция, выполняемая тем или иным регистром, определяется командами, в которых он используется. При
- 28. Регистры указатели – это 16-разрядные регистры ЕВР (указатель базы), ЕSI (индекс источника), ЕDI (индекс результата), ЕSP
- 29. Регистры сегментов – это 16-разрядные регистры, которые позволяют организовать память в виде совокупности четырех различных сегментов.
- 30. Регистр флагов – это 16-разрядный регистр, содержащий биты, определяющие код условия, установленный последней выполненной командой, или
- 31. .386 .MODEL flat, stdcall include KERNEL32.inc includelib KERNEL32.LIB .DATA summand_1 db 12h summand_2 db 2fh .CODE
- 34. Синтаксис ассемблера Все конструкции языка ассемблера можно разделить на 4 вида: Команды (инструкции) – представляют собой
- 35. Формат команд и макрокоманд: [имя метки] : [операция] [операнд(ы)] ; [комментарий] Имя метки – символьный идентификатор
- 36. metka_1: adc al, var2 ; складываем с учетом флага CF содержимое регистра и переменную Пример:
- 37. Формат директивы: [имя] [директива] [операнд(ы)] ; [комментарий] Пример: summand_1 db 12h mov ax, summand_1
- 38. Основные директивы размещения данных
- 39. Примеры: summa db 10h ; выделяется байт, в него записывается число 10h char1 DB ‘A’ ;
- 40. Для присвоения значений константам применяются директивы объявления констант: 1) Директива равенства – сопоставляет с именем константы
- 41. Команды пересылки данных 1) MOV – копирует данные из одного операнда в другой. Формат команды: MOV
- 42. Недостаток команды MOV: отсутствие возможности использовать одновременно два операнда памяти, то есть чтобы переслать данные из
- 43. 2) XCHG (от exchange) – обменивает содержимое двух регистров или содержимое регистра и переменной. Возможны следующие
- 44. Арифметические команды 1) Команды инкремента и декремента INC операнд – команда инкремента (значение операнда увеличивается на
- 45. 2) Команды сложения ADC операнд-получатель, операнд-отправитель Особенностью команды ADC является то, что ЦП в процессе ее
- 46. Команды передачи управления Практически в любой программе есть точки, в которых необходимо принять решение о том,
- 47. Команда безусловного перехода: JMP метка – заставляет процессор продолжать выполнение программы с места, отмеченного меткой, которая
- 48. Для анализа соотношения между операндами перед командой условного перехода должна быть выполнена команда сравнения операндов: CMP
- 49. Существуют следующие команды условного перехода, выполняемые после команды CMP: j – jump, e – equal, n
- 50. Формат команды условного перехода: Jcc метка где cc – код конкретного условия, анализируемого командой. Пример: CMP
- 51. Другим вариантом команд условного перехода являются команды, которые просто анализируют состояние определенных флагов процессора. Обозначение этих
- 53. Пример: JC metka ; если флаг переноса равен 1, то ; переход к команде, ; перед
- 54. Две команды, предназначенные специально для работы с регистром ECX: JCXZ metka ; (Jump if CX is
- 55. Для организации цикла лучше всего использовать команду LOOP. Формат: LOOP metka Эта команда вычитает из регистра
- 56. Дополнительные операторы, директивы и команды Оператор OFFSET – возвращает расстояние (смещение) переменной от начала сегмента. Пример:
- 57. Оператор PTR позволяет выделить из указанной переменной необходимое количество байт и поместить их в необходимое место.
- 58. Директива LABEL устанавливает метку и присваивает этой метке определенный размер без размещения данных. В примере метка
- 59. Команда NEG позволяет осуществить перевод чисел в противоположные им по знаку. Формат команды: NEG [операнд] Полученное
- 60. Практические задания. Задание 1. Разработать алгоритм и написать программу на языке ассемблера для сложения двух целых
- 61. Практические задания. Задание 2. Разработать алгоритм и написать программу на языке ассемблера для сложения двух целых
- 63. Скачать презентацию