Чувашский государственный университет имени И.Н. Ульянова
Лабораторная работа №1
Тема: «Среда программирования на языке Ассемблер»
-
Выполнил
Ст. гр. ЭТ-41-10
Покровский А.Р
Проверил:
Доц. Мартыничев А. К.
Чебоксары 2011
Цель – ознакомление со средой программирования, структурой ассемблер-программы, этапами получения исполняемого модуля.
Рабочее задание:
1.Найти и освоить команды и программы для создания и редактирования ис-ходного модуля, его трансляции, компоновки, отладки. Обратить внимание на размер в байтах используемых программ.
2.Создать в рабочей папке KARKAS командный файл для последовательного выполнения трансляции и компоновки Вашей Ассемблер-программы.
3.Написать простейшую программу на языке ассемблер, которая выполняет суммирование двух слагаемых и выводит результат на монитор.
4.Освоить работу в среде программирования KARKAS. Выполнить программу Prima.asm сначала как самостоятельный файл, а затем в каркасной программе kar.asm в первой задаче.
5.Освоить макрокоманды установки курсора (Locate) , вывода на монитор сим-волов (Tout), текстовой строки (Print, PrintXY) и вывести свою фамилию, имя, отчество в заданную позицию экрана.
6.Выберите в меню строку «Тест клавиатуры» и внимательно изучите коды и сканкоды клавиатуры, обратив внимание на коды функциональных клавишей, латинских символов, цифровых клавишей, клавишей - стрелок.
Рассмотрим структуру простейшей программы: файл primer_1.asm с текстом программы:
Интегрированная среда программирования tasm
Программа - необходимая для решения задачи последовательность команд, записанная на языке программирования. Сама задача формулируется первоначально в виде алгоритма, который описывается в виде словесного описания либо в виде блок-схемы с использованием условных обозначений: ввода исходных данных, линейных участков программы, условных и безусловных переходов, вывода сообщений или данных на монитор, вывод команд управления на внешние устройства ЭВМ для управления электрооборудованием. Процесс программирования для ЭВМ можно разделить на следующие этапы.
Первый этап : Создание исходного модуля программы на языке Ассемблер ЭВМ IBM PC.
1. Исходный файл программы с именем Name и расширением asm (напри-мер, prima.asm) создается с помощью какого-либо текстового редактора.
2. Команды программы (инструкции) выполняют определенные операции (действия) с переменными (операндами), пишутся и размещаются в сегменте команд. Этот сегмент начинается директивой начала сегмента команд Code segment и завершаемся директивой конца сегмента: code ends. Адрес сегмента кода размещается в регистре процессора с именем CS (Code Segment)
3.Еще один сегмент памяти должен быть выделен в программе, это сегмент для организации стека, области памяти для временного хранения операндов программы. Это сравнительно небольшой по объему памяти сегмент, адрес которого размещается в регистре процессора с именем SS (Stack Segment)
4.В исходном модуле в начале программы прописываются указания (ди-рективы) для транслятора.
5.Независимо от конкретного содержания программного кода следует предусмотреть команды для сохранения окружения операционной системы и команды для завершения программы и правильного выхода в операционную систему ЭВМ.
Второй этап: Программа на языке ассемблера – это текстовая программа, удобная для программиста, но непонятная для процессора. Процессор - важнейший компонент ЭВМ, сложное электронное устройство, в котором все команды и данные «живут» в форме напряжений высокого (близкого к +5В) и низкого (близкого к нулю) уровня. Именно так видит компоненты ЭВМ электронщик, исследуя аппаратуру с помощью осциллографа. Программист «видит» все свои переменные, расположенные в памяти ЭВМ и регистрах процессора, в виде осмысленного кода - множества «единиц» (1) и «нулей» (0). Для того, чтобы процессор мог выполнить программу, ее необходимо преобразовать из текстового формата в двоичные коды. Преобразование исходного текстового файла в объктный выполняется программой трансляции Tasm.exe.
Третий этап: Для того чтобы программный объектный модуль был выполнен его следует обработать программой – компоновщиком, tlink.exe. Эта программа позволяет компоновать исполняемую программу из нескольких исходных объектных модулей и выполняет привязку программы к памяти ЭВМ. Результатом работы компоновщика является исполняемый модуль с расширением .exe, например, name.exe.
Каждый из этапов выполняется в командной строке вызовом в нее исполнительной программы и входной программы, например:
С:\ tasm.exe prima.asm – для этапа трансляции.
С:\ tlink .exe prima.obj - для этапа компоновки.
В процессе отладки программы после каждого изменения необходимо выполнять трансляцию и компоновку. Для удобства последовательного выполнения этих процессов полезно создать командный файл с расширением *.bat для пакетной обработки командных строк.
Указанные последовательные этапы от подготовки ассемблер-программы до получения исполняемого модуля представлены на рис.2.
Рис.2. Этапы процесса программирования.