Реферат: Разработка программы на Ассемблере
СПИСОК ЛИТЕРАТУРЫ…………………………………………….…. 30
ВВЕДЕНИЕ
В связи с появлением персональных компьютеров мгновенно вырос рынок аппаратных средств, как грибы росло число производителей, предлагающих свою продукцию. При этом, покупая то или иное аппаратное средство, производитель не может (а иногда и не хочет) дать 100% гарантию, что оно исправно.
В связи с этим также стремительно развивался и рынок программных тестирующих средств. На рынке существует огромное количество отличных диагностических программ, написанных большими корпорациями: такими как Symantec inc., APS (Advanced Personal Systems), Microsoft и т.д., но все существующие диагностирующие программы написаны на языках высокого уровня, а значит не достаточно быстры и надёжны.
Автор проекта не берётся конкурировать с огромными гигантами по количеству выполняемых этими программами тестов в силу того, что это бессмысленно. Была предпринята попытка написать более надежную, быструю диагностическую программу с использованием машинно-ориентированного языка программирования – Ассемблер.
АССЕМБЛЕР. ЭТАПЫ РАЗРАБОТКИ ПРОГРАММЫ.
Язык программирования наиболее полно учитывающий особенности "родного" микропроцессора и содержащий мнемонические обозначения машинных команд называется Ассемблером. Программа, написанная на Ассемблере называется исходной программой. Далее остановимся на версии, называемой Турбо Ассемблер.
Разработка программы на Ассемблере состоит из следующих этапов:
- 1) Составление алгоритма в виде блок-схемы или структурного описания,
- 2) Ввод в ЭВМ текста исходной программы PROG.ASM с помощью редактора текстов. Имя PROG может быть произвольным, а расширение ASM - обязательно,
- 3) Перевод (трансляция или ассемблирование) исходной программы в машинные коды с помощью транслятора TASM.EXE. На этом этапе получается промежуточный продукт PROG.OBJ (объектный код). Выявленные при этом синтаксические и орфографические ошибки исправляются повтором пп.2 и 3,
- 4) Преобразование с помощью программы TLINK.EXE объектного кода PROG.OBJ в выполнимый код PROG.EXE или PROG.COM.
- 5) Выполнение программы и ее отладка начиная с п.1, если встретились логические ошибки.
Текст программы на Ассемблере содержит следующие операции:
- а) команды или инструкции,
- б) директивы или псевдооператоры,
- в) операторы,
- г) предопределенные имена.
Действия обусловленные операциями перечисленными в пп.б,в,г выполняются на этапе трансляции, т.е. являются командами Ассемблеру. Операции, называемые командами или инструкциями выполняются во время выполнения программы, т.е. являются командами микропроцессору.
ФОРМАТ КОМАНД И ИХ КЛАССИФИКАЦИЯ
Инструкция записывается на отдельной строке и включает до четырех полей, необязательные из которых выделены [ ]:
[метка:] | мнемоника_команды | [операнд(ы)] | [;комментарий] |
Метка или символический адрес содержит до 31 символа из букв цифр и знаков ? @ . _ $. Причем цифра не должна стоять первой, а точка, если есть должна быть первой.
Мнемоника - сокращенное обозначение кода операции (КОП) команды, например мнемоника ADD обозначает сложение (addition).
Операндами могут быть явно или неявно задаваемые двоичные наборы, над которыми производятся операции.Операнды приводятся в одной из четырех систем счисления и должны оканчиваться символом b(B), o(O), d(D), h(H) для 2, 8, 10 или 16-ной СС. К шестнадцатиричному числу добавляется слева ноль, если оно начинается с буквы.
Система команд может быть классифицирована по трем основным признакам -
- длина команды или число занимаемых ею байтов,
- функциональное назначение и
- способ адресации.
Для МП 1810ВМ86 (8086) команда занимает от одного до шести байтов. Первым байтом команды всегда является код операции, например код команды INT XXh равен CD(HEX).
По функциональному признаку инструкции можно разбить на пять больших групп:
- 1) команды пересылки данных,
- 2) арифметические команды,
- 3) логические команды,
- 4) команды переходов и
- 5) команды управления.
Существует пять основных способов адресации:
- регистровая,
- непосредственная,
- прямая,
- косвенная и
- стековая.
Большинство остальных способов адресации являются комбинациями или видоизменениями перечисленнных.
В первом случае операнд(ы) располагаются в регистрах микропроцессора (МП), например по команде MOV AX,CX пересылается содержимое CX в AX.
При непосредственной адресации операнд располагается в памяти непосредственно за КОП, инструкция MOV AL,0f5h записывает число 245(f5) в регистр AL.
В случае прямой адресации за КОП следует не сам операнд, а адрес ячейки памяти или внешнего устройства, например команда IN AL,40h вводит байт данных из внешнего устройства с адресом 40h.
Косвенная адресация отличается от регистровой тем, что в регистре хранится адрес операнда, т.е. по команде MOV AL,[BX] в аккумулятор al будет записано число из ячейки памяти с адресом, хранящимся в регистре BX.
Стековая адресация производится к операндам расположенным в области памяти, называемой стек.
НЕКОТОРЫЕ ОПЕРАТОРЫ, ПРЕДОПРЕДЕЛЁННЫЕ ИМЕНА, ДИРЕКТИВЫ И КОМАНДЫ АССЕМБЛЕРА 80X86(8088)
ПРЕДОПРЕДЕЛЕННЫЕ ИМЕНА
1. $ - программный счетчик. Этот символ отмечает текущий адрес в текущем сегменте. Полезен при определении длины цепочек байтов или строк.