Наталья Юрьевна Добровольская , Олег Васильевич Гаркуша - Ассемблер в примерах и задачах
Название: | Ассемблер в примерах и задачах | |
Автор: | Наталья Юрьевна Добровольская , Олег Васильевич Гаркуша | |
Жанр: | Учебники и самоучители по компьютеру, Программирование: прочее, Assembler | |
Изадано в серии: | неизвестно | |
Издательство: | Кубанский государственный университет | |
Год издания: | 2022 | |
ISBN: | 978-5-8209-2052-3 | |
Отзывы: | Комментировать | |
Рейтинг: | ||
Поделись книгой с друзьями! Помощь сайту: донат на оплату сервера |
Краткое содержание книги "Ассемблер в примерах и задачах"
Изложены фундаментальные темы: организация современного компьютера, устройство процессоров семейства IA-32, синтаксис языка ассемблера, макросредства, программирование типовых управляющих структур, сложные структуры данных, оптимизация программ. Приведены многочисленные примеры, иллюстрирующие материал. Адресуется студентам факультета компьютерных технологий и прикладной математики, изучающим основы программирования.
Читаем онлайн "Ассемблер в примерах и задачах". [Страница - 2]
- 1
- 2
- 3
- 4
- . . .
- последняя (17) »
ожидания нажатия любой клавиши
клавиатуры для задержки вывода на экран результатов работы
приложения. Получаем классический пример первой программы.
1.1. ФОРМИРОВАНИЕ ИСПОЛНЯЕМОГО ПРИЛОЖЕНИЯ
Для запуска шаблона необходимо выполнить:
− трансляцию Make > Assemble;
− компоновку Make > Link;
− запуск на выполнение Make > Run.
В процессе трансляции (ассемблирования) исходная
программа на ассемблере преобразуется в двоичный эквивалент.
7
Ассемблер в примерах и задачах
Если трансляция проходит без ошибок, то в окне Output, которое
появляется под окном программы, выводится текст:
C:\Masm32\Bin\ML.EXE /c /coff /Cp /nologo
/I"C:\Masm32\Include" "HelloWord.asm"
Assembling: HelloWord.asm
Make finished.
Total compile time 297 ms
Окно Output появляется на время ассемблирования и
закрывается. Чтобы повторно увидеть результаты, необходимо
курсор мыши перевести в нижнюю часть активного окна среды
RadASM.
Первая строка сообщения об ассемблировании — вызов
ассемблера:
C:\Masm32\Bin\ML.EXE — полное имя файла транслятора
ассемблера masm32 (путь + имя), за которым следуют опции:
/c — заказывает ассемблирование без автоматической
компоновки;
/coff — определяет формат объектного модуля Microsoft
(coff);
/Cp — означает сохранение регистра строчных и прописных
букв всех идентификаторов программы;
/nologo — осуществляет подавление вывода сообщений на
экран в случае успешного завершения ассемблирования;
/I"C:\Masm32\Include" — определяет местонахождение
вставляемых (.inc) файлов;
"HelloWord.asm" — имя обрабатываемого файла.
Остальные строки — сообщение о начале и завершении
процесса ассемблирования и времени выполнения этого процесса.
Результатом нормального завершения ассемблирования
является создание файла, содержащего объектный модуль
программы, — файла HelloWord.obj.
Если при ассемблировании обнаружены ошибки, то
объектный модуль не создается и после сообщения о начале
ассемблирования идут сообщения об ошибках, например:
HelloWord.asm(14):error A2006: undefined symbol: EDY
8
Формирование исполняемого приложения
В сообщении указывается:
− номер строки исходного текста (в скобках);
− номер ошибки, под которым она описана в документации;
− возможная причина.
После исправления ошибок процесс ассемблирования
повторяют.
Следующий этап — компоновка программы. На этом этапе к
объектному (двоичному) коду программы добавляются объектные
коды используемых процедур. При этом в тех местах программы,
где происходит вызов процедур, указывается их относительный
адрес в модуле. Сведения о компоновке также выводятся в окно
Output:
C:\Masm32\Bin\LINK.EXE /SUBSYSTEM:CONSOLE /RELEASE
/VERSION:4.0 /LIBPATH:"C:\Masm32\Lib"
/OUT:"HelloWord.exe" "HelloWord.obj"
Microsoft (R) Incremental Linker Version 5.12.8078
Copyright (C) Microsoft Corp 1992-1998. All rights
reserved.
Make finished.
Total compile time 109 ms
Первая строка вывода также является командной строкой
вызова компоновщика:
C:\Masm32\Bin\LINK.EXE — полное имя компоновщика, за
которым следуют опции:
/SUBSYSTEM:CONSOLE — подключить стандартное окно
консоли;
/RELEASE — создать реализацию (а не отладочный вариант);
/VERSION:4.0 — минимальная версия компоновщика;
/LIBPATH:"C:\Masm32\Lib" — путь к файлам библиотек;
/OUT:"HelloWord.exe" — имя результата компоновки —
загрузочного файла и параметр "HelloWord.obj" — имя
объектного файла.
После устранения ошибки программу необходимо
перетранслировать и заново скомпоновать.
Если процессы трансляции и компоновки прошли нормально,
то ее можно запустить на выполнение. При этом открывается окно
консоли, в которое выводится строка запроса.
9
Ассемблер в примерах и задачах
Окно закрывается при нажатии любой клавиши.
1.2. СТРУКТУРА ПРОГРАММЫ НА ЯЗЫКЕ АССЕМБЛЕРА
Программа
структуру:
на
языке
ассемблера
имеет
следующую
.686
.model flat, stdcall
option casemap: none
.data
.data?
.const
.code
end
Директива .686 указывает компилятору ассемблера, что
необходимо
использовать
набор
операций
процессора
определённого поколения.
Директива .model позволяет указывать используемую
модель памяти и соглашение о вызовах. Как уже было сказано, на
архитектуре Win32 используется только одна модель памяти –
flat, что и указано в приведённом примере. Соглашения о вызовах
определяют порядок передачи параметров и порядок очистки
стека.
10
Структура программы на языке ассемблера
Директива option casemap: none заставляет компилятор
языка ассемблера --">
клавиатуры для задержки вывода на экран результатов работы
приложения. Получаем классический пример первой программы.
1.1. ФОРМИРОВАНИЕ ИСПОЛНЯЕМОГО ПРИЛОЖЕНИЯ
Для запуска шаблона необходимо выполнить:
− трансляцию Make > Assemble;
− компоновку Make > Link;
− запуск на выполнение Make > Run.
В процессе трансляции (ассемблирования) исходная
программа на ассемблере преобразуется в двоичный эквивалент.
7
Ассемблер в примерах и задачах
Если трансляция проходит без ошибок, то в окне Output, которое
появляется под окном программы, выводится текст:
C:\Masm32\Bin\ML.EXE /c /coff /Cp /nologo
/I"C:\Masm32\Include" "HelloWord.asm"
Assembling: HelloWord.asm
Make finished.
Total compile time 297 ms
Окно Output появляется на время ассемблирования и
закрывается. Чтобы повторно увидеть результаты, необходимо
курсор мыши перевести в нижнюю часть активного окна среды
RadASM.
Первая строка сообщения об ассемблировании — вызов
ассемблера:
C:\Masm32\Bin\ML.EXE — полное имя файла транслятора
ассемблера masm32 (путь + имя), за которым следуют опции:
/c — заказывает ассемблирование без автоматической
компоновки;
/coff — определяет формат объектного модуля Microsoft
(coff);
/Cp — означает сохранение регистра строчных и прописных
букв всех идентификаторов программы;
/nologo — осуществляет подавление вывода сообщений на
экран в случае успешного завершения ассемблирования;
/I"C:\Masm32\Include" — определяет местонахождение
вставляемых (.inc) файлов;
"HelloWord.asm" — имя обрабатываемого файла.
Остальные строки — сообщение о начале и завершении
процесса ассемблирования и времени выполнения этого процесса.
Результатом нормального завершения ассемблирования
является создание файла, содержащего объектный модуль
программы, — файла HelloWord.obj.
Если при ассемблировании обнаружены ошибки, то
объектный модуль не создается и после сообщения о начале
ассемблирования идут сообщения об ошибках, например:
HelloWord.asm(14):error A2006: undefined symbol: EDY
8
Формирование исполняемого приложения
В сообщении указывается:
− номер строки исходного текста (в скобках);
− номер ошибки, под которым она описана в документации;
− возможная причина.
После исправления ошибок процесс ассемблирования
повторяют.
Следующий этап — компоновка программы. На этом этапе к
объектному (двоичному) коду программы добавляются объектные
коды используемых процедур. При этом в тех местах программы,
где происходит вызов процедур, указывается их относительный
адрес в модуле. Сведения о компоновке также выводятся в окно
Output:
C:\Masm32\Bin\LINK.EXE /SUBSYSTEM:CONSOLE /RELEASE
/VERSION:4.0 /LIBPATH:"C:\Masm32\Lib"
/OUT:"HelloWord.exe" "HelloWord.obj"
Microsoft (R) Incremental Linker Version 5.12.8078
Copyright (C) Microsoft Corp 1992-1998. All rights
reserved.
Make finished.
Total compile time 109 ms
Первая строка вывода также является командной строкой
вызова компоновщика:
C:\Masm32\Bin\LINK.EXE — полное имя компоновщика, за
которым следуют опции:
/SUBSYSTEM:CONSOLE — подключить стандартное окно
консоли;
/RELEASE — создать реализацию (а не отладочный вариант);
/VERSION:4.0 — минимальная версия компоновщика;
/LIBPATH:"C:\Masm32\Lib" — путь к файлам библиотек;
/OUT:"HelloWord.exe" — имя результата компоновки —
загрузочного файла и параметр "HelloWord.obj" — имя
объектного файла.
После устранения ошибки программу необходимо
перетранслировать и заново скомпоновать.
Если процессы трансляции и компоновки прошли нормально,
то ее можно запустить на выполнение. При этом открывается окно
консоли, в которое выводится строка запроса.
9
Ассемблер в примерах и задачах
Окно закрывается при нажатии любой клавиши.
1.2. СТРУКТУРА ПРОГРАММЫ НА ЯЗЫКЕ АССЕМБЛЕРА
Программа
структуру:
на
языке
ассемблера
имеет
следующую
.686
.model flat, stdcall
option casemap: none
.data
.data?
.const
.code
end
Директива .686 указывает компилятору ассемблера, что
необходимо
использовать
набор
операций
процессора
определённого поколения.
Директива .model позволяет указывать используемую
модель памяти и соглашение о вызовах. Как уже было сказано, на
архитектуре Win32 используется только одна модель памяти –
flat, что и указано в приведённом примере. Соглашения о вызовах
определяют порядок передачи параметров и порядок очистки
стека.
10
Структура программы на языке ассемблера
Директива option casemap: none заставляет компилятор
языка ассемблера --">
- 1
- 2
- 3
- 4
- . . .
- последняя (17) »
Книги схожие с «Ассемблер в примерах и задачах» по жанру, серии, автору или названию:
Алексей Николаевич Васильев - Программирование на JavaScript в примерах и задачах Жанр: Java, Java Script Год издания: 2017 Серия: Российский компьютерный бестселлер |
Алексей Николаевич Васильев - Программирование на C++ в примерах и задачах Жанр: C, C++, C# Год издания: 2017 Серия: Российский компьютерный бестселлер |