Смекни!
smekni.com

Разработка программы на Ассемблере (стр. 1 из 11)

Кыргызский Государственный НациональныйУниверситет

ИнститутИнтеграции Международных Образовательных программ

Кыргызско-АмериканскийФакультет Компьютерных Информационных Систем и ИНТЕРНЕТ (КАФ-ИНТЕРНЕТ)

Курсовой проект

(Организация ЭВМ)

тема

Разработка программы на Ассемблере.

Выполнили: студенты группы КИС 2 – 98

Вершинин АА Исманов АА

Проверил: преподаватель Кочетов ОП


Бишкек 2001

СОДЕРЖАНИЕ

ВВЕДЕНИЕ…………………………………………………………………3

АССЕМБЛЕР. ЭТАПЫ РАЗРАБОТКИ ПРОГРАММЫ………………...4

ФОРМАТ КОМАНДИ ИХ КЛАССИФИКАЦИЯ ………………………….5

НЕКОТОРЫЕОПЕРАТОРЫ, ПРЕДОПРЕДЕЛЁННЫЕ ИМЕНА, ДИРЕКТИВЫ И КОМАНДЫ   АССЕМБЛЕРА80X86(8088) ……………..7

КОМАНДЫПЕРЕСЫЛКИ …………………………………………………11

АРИФМЕТИЧЕСКИЕКОМАНДЫ ………………………………………..12

ЛОГИЧЕСКИЕКОМАНДЫ И КОМАНДЫ СДВИГА …………………...14

КОМАНДЫУПРАВЛЕНИЯ МИКРОПРОЦЕССОРОМ …………………18

ПРИМЕЧАНИЯ………………………………………………………………20

ОБЩИЙ РАЗДЕЛ…………………………………………………………21

1.1.       Технико-математическоеописание задачи……….………………….21

1.2.       Требованияк функциональным характеристикам…………………..23

1.3.       Требованияк техническим и программным средствам………….… 25

1.3.1.    Обоснованиявыбора языка программирования……………………. 26

СПЕЦИАЛЬНЫЙ РАЗДЕЛ……………………………………………………………….... 28

2.1. Постановказадачи……………………………………………………..  28

2.2. Описание структурыпрограммы……………………………….…..…  30

2.3. Описание алгоритмарешения задачи………………………….……….32

2.4. Отладка итестирование……………………………………….……….  34

2.5. Инструкция кпользователю………………………………….………..  35

2.6. Заключение орезультатах проектируемой задачи………….………..  36

ПРИЛОЖЕНИЕ 1 (Системысчисления)…………………………………..  37

ПРИЛОЖЕНИЕ 2 (Структурнаясхема микропроцессора)..……………..  44

ПРИЛОЖЕНИЕ 3 (Основныеположения алгебры логики)…….………..  59

СПИСОК ЛИТЕРАТУРЫ…………………………………………….…. 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, если встретились логические ошибки.

assm.gif (4712 bytes)

Текст  программы на Ассемблересодержит следующие операции:

  • а) команды или инструкции,
  • б) директивы или псевдооператоры,
  • в) операторы,
  • г) предопределенные имена.

Действия обусловленные операциямиперечисленными в пп.б,в,г выполняются на этапе трансляции, т.е. являютсякомандами Ассемблеру. Операции, называемые командами или инструкциямивыполняются во время выполнения программы, т.е. являются командамимикропроцессору.

ФОРМАТ КОМАНД И ИХ КЛАССИФИКАЦИЯ

Инструкция записывается наотдельной строке и включает до четырех полей, необязательные из которыхвыделены [ ]:

[метка:] мнемоника_команды [операнд(ы)] [;комментарий]

Метка или символическийадрес содержит до 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. $ -программный счетчик. Этот символ отмечает текущий адрес в текущем сегменте.Полезен при определении длины цепочек байтов или строк.

 

text  DB 'This string has NN letters'

NN = $ - text;  NN = длине строки text (количеству байтов

в этой строке). Не путать часть строки '..NN..' и константу NN!

2. @data - адресначала сегмента данных.

....

mov ax,@data

mov ds,ax;

в сегментном регистре DS теперьадрес сегмента данных.

3. ??date, ??time,??filename - эти имена во время трансляции заменяются, соответственнона текущие дату, время и имя файла в формате ASCII.

ОПЕРАТОРЫ

1. () - скобки,определяют порядок вычислений

2. [] - например[BX] означает содержимое ячейки памяти с адресом в регистре bx. Признак косвеннойадресации.

3. +, -, *, / -операторы сложения, вычитания, умножения и деления.

   mov ax,(2 * 3 + 8 / 2) - 2; в регистр ax будет помещено число 8.

4. MOD - делениепо модулю. Даёт остаток.

5. SHL,SHR -сдвиг операнда влево, вправо.

   mov si,01010101b SHR 3; в регистр SI будет загружено число 0Ah (00001010).

6. NOT -побитовая инверсия.

7. AND,OR,XOR -операции "И","ИЛИ","ИСКЛ.ИЛИ".

   mov dl, (10dOR 5d) XOR 7d; (dl) будет равно 8.

8. :  -переназначение сегмента.

mov dl,[es:bx]; поместить в dlбайт данных из сегмента es и отстоящий от его начала на (bx) байтов (смещение).