ассемблер. СП асемблер ДАДАЯ. Системное программирование
![]()
|
![]() ![]() МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ Федеральное государственное бюджетное образовательное учреждение высшего образования «Кубанский государственный университет» (ФГБОУ ВО «КубГУ») Институт среднего профессионального образования (ИНСПО) Специальность 09.02.03 Программирование в компьютерных системах «Лабораторная работа №1 (Ассемблер)» по дисциплине «Системное программирование» Выполнил: Студент 3курса, группа 1 Черкашин Артём Игоревич Преподаватель: Трубников Юрий Юрьевич Краснодар 2021 Цели и задачи работы: - ознакомление с общими принципами построения программ на языке ассемблера; - обучение работе с программами Tasm.exe, Tlink.exe; - ознакомление со структурой программы на ассемблере; - дать понятие о директивах определения данных; Ход выполнения работы Для работы нужно установить на ПК программу, позволяющую работать в ассемблере. ![]() Создаём файл LAB1 и пишем наш код ![]() Запускаем процесс ассемблирования с помощью команды TASM LAB1 ![]() Компонуем программу с помощью команды tlink LAB1 ![]() Запускаем сохранённую программу ![]() Задание 2 Создаём файл LAB2 и пишем наш код и сохраняем в C:\TASM\ ![]() Запускаем процесс ассемблирования с помощью команды TASM LAB2. ![]() 3. Компонуем программу с помощью команды tlink LAB1 и запускаем программу ![]() Задание 3 Создаём файл LAB3 и пишем наш код и сохраняем в C:\TASM\ ![]() Запускаем процесс ассемблирования с помощью команды TASM LAB3. Компонуем программу с помощью команды tlink LAB1 и запускаем программу ![]() Директивы, являющиеся указанием транслятору ассемблера на выполнение некоторых действий. У директив нет аналогов в машинном представлении; ![]() ![]() Существуют определенные различия между программой, выполняемой как EXE-файл и программой, выполняемой как COM-файл. 1. Размер программы. EXE-программа может иметь любой размер, в то время как COM-файл ограничен размером одного сегмента и не превышает 64К. COM-файл всегда меньше, чем соответствующий EXE-файл; одна из причин этого - отсутствие в COM-файле 512-байтового начального блока EXE-файла. 2. Сегмент стека. В EXE-программе определяется сегмент стека, в то время как COM-программа генерирует стек автоматически. Таким образом при создании ассемблерной программы, которая будет преобразована в COM-файл, стек должен быть опущен. 3. Сегмент данных. В EXE программе обычно определяется сегмент данных, а регистр DS инициализируется адресом этого сегмента. В COM-программе все данные должны быть определены в сегменте кода. 4. Инициализация. EXE-программа записывает нулевое слово в стек и инициализирует регистр DS. Так как COM-программа не имеет ни стека, ни сегмента данных, то эти шаги отсутствуют. Когда COM-программа начинает работать, все сегментные регистры содержат адрес префикса программного сегмента (PSP), - 256-байтового (шест. 100) блока, который резервируется операционной системой DOS непосредственно перед COM или EXE программой в памяти. Так как адресация начинается с шест. смещения 100 от начала PSP, то в программе после оператора SEGMENT кодируется директива ORG 100H. Вывод: В ходе выполнения данной лабораторной работы я научился работать с базовыми командами ассемблера |