Ассемблирование и выполнение программы
Описание механизма введения в компьютер исходного ассемблерного текста программы. Осуществление шага ассемблирования, который включает в себя трансляцию исходного кода в машинный, объектный код и генерацию OBJ-модуля. Запуск программы-транслятора MASM.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | лабораторная работа |
Язык | русский |
Дата добавления | 18.03.2011 |
Размер файла | 48,9 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
ЛАБОРАТОРНАЯ РАБОТА
Тема: АССЕМБЛИРОВАНИЕ И ВЫПОЛНЕНИЕ ПРОГРАММЫ
ВВЕДЕНИЕ
В данной работе объясняется, как ввести в компьютер исходный ассемблерный текст программы, как осуществить ассемблирование, компоновку и выполнение программы.
1. ВВОД ПРОГРАММЫ
Для ввода исходной программы можно использовать любой текстовый редактор.
2. ПОДГОТОВКА ПРОГРАММЫ ДЛЯ ВЫПОЛНЕНИЯ
ассемблирование программа транслятор компьютер
После ввода на диск программы необходимо проделать два основных шага, прежде, чем программу можно выполнить. Сначала необходимо ассемблировать программу, а затем выполнить компоновку.
Шаг ассемблирования включает в себя трансляцию исходного кода в машинный, объектный код и генерацию OBJ-модуля. Формат OBJ-модуля уже более приближён к исходной форме, но ещё не готов к выполнению.
Шаг компоновки включает преобразование OBJ-модуля в ЕХЕ (исполняемый модуль, содержащий машинный код). После компоновки ЕХЕ - модуль можно выполнить любое число раз.
Если необходимо внести некоторые изменения в программе, следует скорректировать исходную программу, ассемблировать её и выполнить компоновку и получить новый ЕХЕ - модуль.
3. АССЕМБЛИРОВАНИЕ ПРОГРАММЫ
Для ассемблирования нужно запустить программу-транслятор MASM, что приводит к загрузке программы ассемблера с диска в оперативную память. На экране появится:
SOURCE FILE NAME (, ASN):
OBJEST FILE NAME (FAIL NAME.OBJ):
SOURCE listing (NUL.LST):
CROCE - REFERENCE (NUL.CRF):
Курсор при этом расположится в конце первой строки, где необходимо указать имя исходного файла. Введите номер дисковода и имя файла в виде А: имя программы. Не следует набирать тип файла, так как ассемблер подразумевает это.
Во втором запросе предполагается аналогичное имя файла (но можно его изменить), третий запрос предполагает, что листинг ассемблирования программы не требуется. Для получения листинга на дисководе А: наберите А: и нажмите клавишу ввод.
Последний запрос предполагает, что листинг перекрёстных ссылок не требует. Если хотите оставить значения по умолчанию, то в трёх последующих запросах просто нажмите ввод. Ассемблер преобразовывает исходные команды в машинный код и выдаёт на экран сообщения о возможных ошибках.
4. КОМПОНОВКА ПРОГРАММЫ
Если в результате ассемблирования не обнаружено ошибок, то следующий шаг - компоновка объектного модуля.
Для компоновки ассемблерной программы вставьте в дисковод А дискету с объектным модулем. Введите команду LINK. После загрузки в память компоновщик выдаёт несколько запросов, на которые необходимо ответить.
Первый запрос - запрос имени объектного модуля. Второй запрос - запрос имени исполняемого модуля.
Третий запрос предполагает, что LINK выбирает значения по умолчанию (т. е. МАР - файл отсутствует), МАР - файл содержит таблицу имени и размеров сегментов и ошибки, которые обнаружит LINK. Ответ CON- предполагает, что таблица будет выведена на экран вместо записи её на диск. На данном этапе единственной ошибкой может быть указание неправильных имён файлов. Исправить это можно только перезапуском программы LINK.
5. ВЫПОЛНЕНИЕ ПРОГРАММЫ
После ассемблирования и компоновки программы можно выполнить её. Если ЕХЕ- файл находится на диске А, то её можно выполнить командой А: имя программы. ЕХЕ.
6. ВЫПОЛНЕНИЕ РАБОТЫ
Выполнение лабораторной работы заключается в наборе и выполнении ассемблерных программ, разработанных на практических занятиях.
Для успешного выполнения работы каждому учащемуся необходимо иметь при себе разработанную программу на Ассемблере.
Итогом выполнения лабораторной работы является отлаженная программа, ответ которой просматривается преподавателем. Зачёт по лабораторной работе проставляется преподавателем на основе результата, увиденного на экране или распечатанного листинга и оформленной лабораторной работы.
Рассмотрим пример простой программы:
STACSG SEGMENT
DB 12 DUR ('AAAAAAAA') STACSG ENDS
CODESG SEGMENT
BEGIN PROC FAR
ASSUME SS: STACSG, CS:CODESG, DS:NOTHING PUSH DS; записать DS в стек
SUBAx, Ax; записать ноль в стек
PUSHAx;
MovAx,0123H; записать 0123 в Ах
ADDAx,0025H; прибавить 25 к Ах
MOVBx,Ax; переслать содержимое Ах в Вх
ADDBx,Ax; сложить содержимое Ах с
содержимым Вх
MOV Cx, Bx ; переслать содержимое Вх в регистр Сх SUB Cx, Ax ; вычесть содержимое Ах из содержимого Сх
SUB Ax, Ax ; очистить Ах
RET; возврат в DOS
BEGIN ENOP; конец процедуры
CODESG ENDS; конец сегмента
END BEGIN
Для ввода исходной программы можно использовать текстовый редактор MICROSOFT WORD.
Для выполнения программы нужно выполнить ассемблирование и затем компоновку (см. описание).
После ассемблирования и компоновки программу можно выполнить.
Но так как наша программа не вырабатывает видимых результатов, выполним её трассировкой отладчиком DEBUG. Для этого вводим команду: DEBUG A:PRIMER1.EXE
После этого отладчик выдаст дефис (-) в качестве приглашения.
Для просмотра сегмента стека нужно ввести:
D SS: 0
Для нашего примера эту область легко узнать по 12-ти кратному повторению константы АААААААА.
Для просмотра сегмента кода нужно ввести команду: D СS: 0
(можно сравнить с листингом Ассемблера)
Для просмотра содержимого регистров и выполнения программы нужно ввести команду R, и затем Т. В процессе пошагового выполнения программы обратите внимание на содержимое регистров.
Когда вы дойдёте до команды RET, нужно ввести команду Q для завершения работы отладчика.
Размещено на Allbest.ru
Подобные документы
Создание программы для хранения и обработки данных о съеме/сдаче жилья. Написание программы на языке C++ с использованием библиотеки Qt; использование исходного кода для создания приложения под Windows, Linux, Mac OS X без дополнительных изменений кода.
курсовая работа [60,4 K], добавлен 07.03.2013Перевод - процесс создания на основе исходного текста на одном языке равноценного ему в коммуникативном отношении текста на другом языке, требования к обеспечению его эквивалентности. Машинные технологии перевода; характеристика систем Translation Memory.
презентация [347,8 K], добавлен 06.01.2014Разработка исходного XML-документа, который будет содержать данные варианта. Разработка таблицы стилей XSLT для преобразования исходного XML-документа исходного XML-документ с заданной структурой. Анализ базового класса, содержащего виртуальные методы.
курсовая работа [1,3 M], добавлен 01.05.2019Технология программирования задач для операторных и функциональных языков программирования, разработка алгоритма и отладка программы. Трансляция исходного текста, компоновка программы, ее выполнение с целью определения логических ошибок и тестирование.
курсовая работа [336,6 K], добавлен 24.04.2010Составление транслятора на языке С для перевода кода программы из языка Pascal в код программы на языке Cи. Распознавание и перевод конструкций: for, type, function, integer. Вешняя спецификация, описание, структура, текст программы; распечатка текстов.
курсовая работа [287,8 K], добавлен 24.06.2011Осуществление работы разрабатываемой программы на основе алгоритма, использующего Z-буфер. Аналитическое описание программной реализации. Алгоритмы основных функций программы. Содержание руководства пользователя. Файлы программы, пункты главного меню.
курсовая работа [1,7 M], добавлен 15.04.2015Составление программы для зашифровки текста (не более 255 символов), с использованием одного перемешанного алфавита, полученного случайной перестановкой всех букв исходного алфавита. Создание меню-интерфейса для навигации пользователя по программе.
курсовая работа [496,2 K], добавлен 17.05.2015Создание транслятора, обрабатывающего код программы на языке Паскаль и за счет эквивалентных операторов генерирующего программу на Си. Особенности внешней спецификации и работы лексического анализатора. Структура программы, вывод результатов на экран.
курсовая работа [254,0 K], добавлен 02.07.2011Объекты автоматизируемых процессов. Функции и формы программы, листинг программного кода. Концептуальная и реляционная модели данных. Порядок установки и запуск программы, выполнение пользовательских операций. Требования к аппаратному обеспечению.
курсовая работа [545,9 K], добавлен 15.02.2016Кодирование информации в двоичном коде. Разработка приложения, реализующего следующее преобразование текста: каждая буква исходного текста заменяется третьей после нее буквой в алфавите, который считается написанным по кругу. Алгоритм работы программы.
курсовая работа [1,2 M], добавлен 20.12.2015