Лабораторная работаПрограммированиеГод: 2024ПГУТИ: Поволжский государственный университет телекоммуникаций и информатики
👁 9💼 0

Готовая лабораторная: Ассемблер, ввод-вывод и отладка

Загружена: 24.02.2026 10:00

Основы программирования на языке Ассемблера с использованием TASM, TLINK и TurboDebugger. Примеры включают программы вывода текста (hello_1.asm, hello_2.asm), автоматизацию сборки через .bat, разбор машинного кода и вычисления с проверкой в отладчике. Полезно для практических занятий и отладки низкоуровневых программ.

Содержание

**Лабораторная работа 4. «Программирование арифметических операций. Изучение основ работы с Turbo Debugger»**

**Цель работы:**
Программирование задач, выполняющих арифметические вычисления и получение навыков отладки программ средствами отладчика TURBO DEBUGGER.

**Задания (ход работы):**
1.  С помощью текстового редактора создать файл prog_4.asm. В значения переменных поместить данные для варианта 6. Написать код для вычисления требуемого уравнения.
2.  Скомпилировать файл и запустить его.
3.  Запустить и исследовать программу TurboDebugger. В таблице привести результаты исследования программы (основные моменты вычислений).
4.  Составить образ размещения программы.
5.  Вычислить адреса сегментов в памяти (для данных, стека, кода) и сверить с файлом .map.

**Исходные данные (Вариант 6):**
Уравнение: $$X = \frac{(B - 25)^{2}}{A + 1} + (B + D)^{2}$$
A = -5, B = 31, D = 4


**Лабораторная работа 1. «Введение в основы программирования на языке Ассемблера»**

**Цель работы:**
Практическое овладение навыками составления простейших программ на языке Ассемблера и работы с программами TASM и TLINK.

**Задания (ход работы):**
1.  Создать файл hello_1.asm с кодом программы, а также скопировать файлы tasm, td и tlink.
2.  Запустить компилятор для создания файлов hello_1.obj и hello_1.lst.
3.  С помощью компоновщика получить файлы hello_1.exe, hello_1.map.
4.  Запустить программу из командной строки, чтобы убедиться в её работоспособности.
5.  Для автоматизации процесса ассемблирования и компоновки создать файлы с расширением .bat, содержащие команды, выполняемые до этого из командной строки.
6.  Написать файл hello_2.asm, который выводит дополнительный текст.

---

**Лабораторная работа 3. «Изучение команд передачи данных. Основы работы с отладчиком»**

**Цель работы:**
Изучение команд передачи данных и практическое овладение навыками работы с отладчиком TURBODEBUGGER.

**Задания (ход работы):**
1.  С помощью текстового редактора создать файл Prog_3.asm. В значения переменных поместить данные для варианта 6.
2.  Скомпилировать файл и запустить его.
3.  Запустить и исследовать программу TurboDebugger. В таблице привести результаты исследования программы.
4.  Составить образ размещения программы.
5.  Вычислить адреса сегментов в памяти (для данных, стека, кода) и сверить с файлом .map.

Подробное описание

📘 О чем эта работа

Сборник лабораторных заданий по базовому программированию на языке Ассемблера для DOS-среды. Включены примеры создания и сборки простейших программ (файлы hello_1.asm и hello_2.asm), генерации объектных и исполняемых файлов с помощью TASM и TLINK, а также практическая отладка в TurboDebugger на примере файлов Prog_3.asm и prog_4.asm. Объектом являются исходные тексты и их машинные листинги; предмет — синтаксис ассемблера, команды передачи данных и арифметические операции с последующей отладкой.

📚 Что внутри

Документация и наглядные материалы, полученные в ходе выполнения работ:

  • Листинги исходных файлов: hello_1.asm, hello_2.asm, Prog_3.asm, prog_4.asm — с комментариями и фрагментами кода.
  • Сформированные файлы сборки: hello_1.obj, hello_1.lst, hello_1.exe и сопутствующие .map-файлы — показано содержимое и структура.
  • Таблицы с разбором машинного кода и адресов (примеры: строки с командами mov, pop, imul, idiv) — приведены машинные коды, длина в байтах, логические и физические адреса и состояние регистров.
  • Вычисления и пошаговая отладка арифметического выражения (вариант с A=-5, B=31, D=4): возведение в квадрат, сложение, деление и итоговые операции — зафиксировано, что деление прошло без остатка и результат соответствует ожиданию.
  • Автоматизация сборки: примеры .bat-файлов (hello.bat, run.bat) с командами компиляции и линковки для упрощённого воспроизведения сборки.
  • Образ размещения в памяти и сопоставление с .map: вычислены начала и концы сегментов данных, стека и кода (включая длины) и проверено соответствие с файлом .map.
  • Примечание по среде: лабораторные выполнены в эмуляторе DOSBox — указано ограничение по доступу к ПЗУ и id.

📊 Для кого подходит

Материал ориентирован на студентов технических направлений (информатика, телекоммуникации) для курсов по языкам низкого уровня, дисциплин 'Программирование' или 'Архитектура ЭВМ'. Подходит для выполнения практических заданий, подготовки отчёта и отработки навыков отладки в TurboDebugger.

✨ Особенности

Конкретика из работы: представлены реальные файлы сборки и листинги, показана генерация .obj/.lst/.exe и .map, показан разбор машинных кодов (напр., C6 09 03 00 10, A0 00 00, 58, 59, 5B, F6 E6, F7 FB, 03 D8) и состояния регистров на контрольных точках. Приведены адресные диапазоны сегментов данных, стека и кода (начало/конец/длина), что облегчает проверку соответствия с .map и понимание размещения программы в памяти. Включены .bat-скрипты для автоматизации сборки и запуска — удобно для повторяемых практических упражнений.

❓ Частые вопросы

Подойдет ли для моего ВУЗа?
Структура лабораторий соответствует стандартным требованиям: постановка цели, ход работы с листингами, результатами компиляции и отладки, формирование .map и выводы по корректности выполнения.

Можно адаптировать?
Да. Исходные asm-файлы и .bat-скрипты легко редактировать под другие варианты, значения переменных и специфические требования преподавателя.