Введение
Ассемблер - низкоуровневый язык программирования. Для написания программы на этом языке (как и на других) требуется знание синтаксиса языка.
Общий формат строки программы на ассемблере
<Метка>: <Оператор> <Операнды> ; <Комментарий>
Поле метки. Метка может состоять из символов и знаков подчёркивания. Метки используются в операциях условного и безусловного перехода.
Поле оператора. В этом поле содержится мнемоника команды. Например мнемоника mov
Поле операндов. Операнды могут присутствовать только если присутствует оператор (поле оператора). Операндов может не быть, а может быть несколько. Операндами могут быть данные, над которыми необходимо выполнить какие-то действия (переслать, сложить и т.д.).
Поле комментария. Комментарий нужен для словесного сопровождения программы. Всё, что стоит за символом ; считается комментарием.
Будем использоваться ассемблер для i80x86 процессора:
Процесс получения рабочей программы.
Кратко рассмотрим процесс
получения (и загрузки для выполнения) загрузочного модуля (рабочей
программы).
(здесь и далее предполагается выполнении работы в режиме "командная
строка" или в "консольном" режиме. Вызов этого режима можно, например,
выполнить вызвав консоль операционной системы - "ПУСК - ВЫПОЛНИТЬ
- CMD").
1
шаг. Создают файл
исходной программы (SOURCE
файл). Обычно для этого применяют программу,
называемую редактором текста (например
EDIT имя_файла.ASM).
Редактор текста (или текстовый редактор) выбирается
исходя из удобства работы. "Классический" текстовый редактор консоли -
EDIT. Текстовый редактор, интегрированный в
файловый менеджер FAR превосходит
"классический" редактор по ряду параметров и может быть рекомендован для
подготовки исходных файлов. Вызов менеджера FAR
производится аналогично "консоли". Редактирование существующего
файла - F4, создание НОВОГО файла -
Shift - F4
2 шаг.
Транслируют исходную программу (файл), используя
программу - компилятор языка программирования ассемблер.
Компилятор языка программирования "читает" исходную программу из
SOURCE файла. Переводит текст программы в
набор машинных команд, которые записываются в выходной файл. Полученный
таким образом файл представляет собой файл объектной
программы (OBJ файл). Протокол
процесса перевода команд исходной программы компилятор помещает в
специальный "протокольный" файл, обычно называемый "листингом" (файл «листинг» - LST
файл).
Например можно
использовать следующую командную процедуру
c:\tasm\bin\tasm.exe
/c /r /la /ml /os /w2 /x /z /zi %1.asm,%1.obj,%1.lst
3 шаг.
Связывают (или преобразовывают внутренний формат
объектного файла) файл объектной программы с библиотечными программами и
другими программами с помощью редактора связей, и таким образом
формируют файл загрузочного модуля ( EXE
файл). Этот файл содержит "полный" набор машинных команд в такой форме,
при которой сразу
возможна их загрузка в оперативную память и выполнение. Обычно протокол
"связывания" объектных модулей помещается в файл протокола, или в файл
"карты памяти" (MAP - файл)
Например можно
использовать следующую командную процедуру
C:\TASM\BIN\TLINK
/m /M /s /l /i /Tde /v %1.obj,%1.exe,%1.map,MY_LIB.LIB;
4
шаг. Выполняют загрузочный модуль.
Вызывают системный загрузчик, который копирует содержимое исполняемого
файла в оперативную память ЭВМ и настраивает центральный процессор на
выполнение машинных команд, содержащихся в загрузочном модуле.
Для этих действий в консоли операционной системы вводят команду, имя
которой - имя загрузочного (собранного) файла.

Схема работы редактора текста, ассемблера, редактора связей.
В приведенном выше примере вызова редактора связей - файл MY_LIB.LIB - файл библиотеки объектных модулей.
Создайте на указанном преподавателем или лаборантом
дисплейного класса диске
в корневом каталоге папку с именем "шифр_группы"
(английскими буквами).
Если методика работы в компьютерном классе предполагает у вас наличие
индивидуальной папки, то возможно работать в ней.
Вызовите
новое окно "Интернет браузера"
по следующей ссылке
Сохраните файлы
TASM.zip,
a.bat,
l.BAT, proba.asm,
asm-help.zip, HELP.zip
(правая кнопка мышки на имя файла, выбор из меню - "сохранить
как...")
в созданной Вами папке "шифр_группы"
Разархивируйте сохраненные архивы:
TASM.zip -
в корень диска С:
asm-help.zip, HELP.zip - в папку "шифр_группы"
Будьте внимательны - в указанных папках не должна появляться папка с именем
архива,
а должен быть записан набор файлов и папок с другими именами)
Вызовите
консоль ("сеанс MSdos" -
command.com или "Командная строка"
- CMD).
Настройте удобное для Вас разрешение экрана и величину шрифта.
Сделайте папку
"шифр_группы" текущей (X: -
смена диска, CD \имя_папки - смена
текущей директории).
Создайте
(или проверьте наличие в Вашей рабочей папке) двух командно - процедурных файлов:
файл
a.bat:
echo on
<буква_диска>:\tasm\bin\tasm.exe
/c /r /la /ml /os /w2 /x /z /zi %1.asm,%1.obj,%1.lst
файл
l.bat:
echo on
<буква диска>:\TASM\BIN\TLINK
/m /M /s /l /i /Tde /v %1.obj,%1.exe,%1.map;
Эти файлы уже есть в Вашей папке, и если Вы
разместили систему программирования ассемблера не на диске С:, то их
необходимо откорректировать.
Создайте
(или проверьте его наличие) файл proba.asm:
STK SEGMENT STACK
DW 64 DUP (?)
STK ENDS
CODE SEGMENT PUBLIC
ASSUME CS:CODE
START PROC FAR
PUSH DS ; СЕГМЕНТ АДРЕСА
ВОЗВРАТА
MOV AX,0 ; СМЕЩЕНИЕ
АДРЕСА ВОЗВРАТА
PUSH AX
CLD ; УСТАНОВКА
НАПРАВЛЕНИЯ
MOV AX,CS ; УСТАНОВКА
СЕГМЕНТНОГО РЕГИСТРА
MOV DS,AX
ASSUME DS:CODE
LEA DX,MESSAGE
MOV AH,9H
INT 21H
RET
MESSAGE db 'Hello...ххххххх.',10,13, '$'
START ENDP
CODE ENDS
END START
Выполните компиляцию
программы, используя команду
a proba
и ее сборку
l proba.
Изучите и объясните что находится в файлах
*.lst, *.map, *.obj?
Какие программы создали эти файлы?
Это наиболее удобно выполнить с использованием
FAR менеджера.
Выполните программу
proba.
Измените программу так, что бы они выводили другой текст -
например Ваше имя и фамилия.
Изучите файлы
*.lst.
Вызовите и ознакомитесь с "справочными" программами
HELP,
asm-help
программами - справочниками по операционной системе
и
assembler.
Оформите отчет по проделанной работе используя MicrosoftWORD.
Требование к оформлению отчета.
Отчет подготавливается на машинном носителе в формате
Microsoft Word.
Титульная страница оформляется по обще принятым правилам.
На ней в обязательном порядке указывается тема работы.
В текст отчета
необходимо включить постановку задачи, листинг (снимок экрана, текст
файла и т.п.) разработанного файла и результат тестирования.
Файл, содержащий текст отчета, именуется по следующему шаблону:
шифр_группы-фамилия_студента-дисциплина-номер_работы.doc
где - дисциплина указывается SP_OS (системное
программирование и ОС)
и сохраняется до конца семестра.
В отчет включите описание
Примечание - все указанные в задании файлы Вы можете найти на странице
Основные контрольные вопросы.
- Что содержит файл исходного модуля?
- что содержит файл объектного модуля?
- что содержит файл загружаемого (абсолютного) модуля?
- что содержит файл листинга?
- какие программы используются для создания выше перечисленных файлов?
- какие системные программы и в какой последовательности используются для получения рабочей программы?
УСПЕХОВ В РАБОТЕ