Введение
Содержимое раздела
Обосновывается актуальность изучения ассемблера для понимания устройства компьютера и программирования на низком уровне. Формулируются цель и задачи работы, обозначаются её практическая направленность и ожидаемые результаты.
Ассемблер и трансляция программы
Содержимое раздела
Раздел раскрывает место ассемблера в создании программ и объясняет, как исходный текст преобразуется в машинный код. Различение команд, директив и операторов задаёт понятийную основу для последующего разбора примеров.
Назначение ассемблера
Содержимое раздела
Рассматриваются задачи ассемблера и его связь с аппаратными средствами. Поясняется, почему программы на ассемблере зависят от архитектуры процессора.
Архитектурная зависимость языка
Содержимое раздела
Объясняется влияние набора команд и модели памяти процессора на исходный код. Подпункт помогает понять, почему один фрагмент нельзя без изменений переносить между архитектурами.
Этапы трансляции исходного текста
Содержимое раздела
Описывается преобразование мнемоник и обозначений в машинные инструкции и данные. Уточняется, какие сведения ассемблер вычисляет до запуска программы.
Команды, директивы и операторы
Содержимое раздела
Сравниваются инструкции, исполняемые процессором, указания ассемблеру и операции в выражениях. Это различие необходимо для правильного чтения и составления кода.
Применение директив в ассемблерном коде
Содержимое раздела
На основе справочной документации NASM и MASM рассматриваются директивы данных, меток, констант и организации исходного файла. Примеры показывают, как эти конструкции влияют на размещение данных и результат трансляции.
Объявление данных
Содержимое раздела
На примерах DB, DW и DD объясняется задание байтовых, словных и двойных словных значений. Сопоставление синтаксиса показывает, как директива определяет размер данных.
Резервирование памяти и размещение
Содержимое раздела
Рассматриваются директивы выделения области под данные и способы задать её начальное содержимое. Разбор документации помогает отличить резервирование памяти от записи значений.
Метки и символические константы
Содержимое раздела
Поясняется, как метки обозначают позиции в коде или данных, а имена констант связываются со значениями. Примеры из руководств показывают их применение при вычислении адресов.
Организация исходного файла
Содержимое раздела
Разбираются директивы включения файлов, выравнивания и повторения данных. Подпункт показывает, как такие средства упрощают структуру программы и влияют на размещение её элементов.
Операторы и практический разбор выражений
Содержимое раздела
Раздел анализирует арифметические и специальные операторы, используемые ассемблером при вычислении констант и адресов. Сравнение фрагментов NASM и MASM выявляет особенности синтаксиса и применения конструкций.
Арифметические операции в выражениях
Содержимое раздела
Рассматривается применение сложения, вычитания, умножения и деления при вычислении значений во время трансляции. Примеры помогают отделить такие операции от команд процессора.
Операторы адресации и положения
Содержимое раздела
Объясняется использование обозначений текущего положения и способов вычисления смещений между элементами. Это позволяет проследить, как выражения связаны с адресами в памяти.
Разбор примеров из документации
Содержимое раздела
Анализируются короткие фрагменты кода с данными, метками и выражениями по руководствам ассемблеров. По каждому примеру определяется, что обрабатывается при трансляции и что выполняет процессор.
Сопоставление синтаксиса NASM и MASM
Содержимое раздела
Сравниваются правила записи директив, констант и выражений в двух распространённых ассемблерах. Подпункт объясняет, почему примеры и доступные конструкции зависят от выбранного инструмента.
Заключение
Содержимое раздела
Подводятся итоги рассмотрения директив, операторов и команд процессора. Формулируются выводы о влиянии этих конструкций на трансляцию, размещение данных и вычисление адресов, а также о пользе их изучения.
Список литературы
В список включаются учебные материалы по архитектуре компьютеров и ассемблеру, а также официальные руководства NASM и MASM. Эти издания служат основой для терминологии и рассмотренных примеров.
Источники, найденные для этой работы. В готовой работе они будут оформлены по ГОСТ и расставлены сносками в тексте.
- МашЗавЯП ЛК_Акчурин_2011 — http://ivt.psuti.ru/files/MashZavYP/LK_MashZavYP_Akchurin_2011.pdf
- Язык программирования Ассемблер — https://eos.zabgu.ru/local/working_program/modules/typical_programs/PDF/PDF.php?id=16476
- Задачи и упражнения по языку ассемблера MASM — https://al.cs.msu.ru/system/files/MASM2021.pdf
- Программирование на языке Assembler в FASM — https://wasm.in/blogs/programmirovanie-na-jazyke-assembler-v-fasm.314/
- Режимы адресации — https://nweb42.com/books/assembler/rezhimy-adresatsii/
- Nasm неправильный вывод — https://ru.stackoverflow.com/questions/1050213/nasm-неправильный-вывод
- Выполнить арифметические операции (+, *, /) над двумя… — https://www.cyberforum.ru/asm-beginners/thread2573373.html
- Ю70 Assembler. Учебник для вузов. 2-е изд — https://publ.lib.ru/ARCHIVES/U/''Uchebnik_dlya_vuzov''_(seriya)/���� �.�._ Assembler. ������� ��� �����.(2010).pdf