Допомога у написанні освітніх робіт...
Допоможемо швидко та з гарантією якості!

Розробка програми на асемблері

РефератДопомога в написанніДізнатися вартістьмоєї роботи

Обгрунтування вибору мови програмування… 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 (Основні… Читати ще >

Розробка програми на асемблері (реферат, курсова, диплом, контрольна)

Кыргызский Державний Національний Университет.

Інститут Інтеграції Міжнародних Освітніх программ.

Кыргызско-Американский Факультет Комп’ютерних Інформаційних Систем и.

ІНТЕРНЕТ (КАФ-ИНТЕРНЕТ).

[pic].

Курсової проект.

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

тема.

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

Виконали: студенти групи КИСЛО 2 — 98.

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

Перевірив: викладач Кочетов ОП.

Бішкек 2001.

СОДЕРЖАНИЕ ВВЕДЕНИЕ…3 АСЕМБЛЕР. ЕТАПИ РОЗРОБКИ ПРОГРАММЫ…4.

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

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

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

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

ЛОГІЧНІ КОМАНДИ І КОМАНДИ ЗСУВУ …14.

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

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

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

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

2. Вимоги до функціональним характеристикам…23.

3. Вимоги до технічною освітою і програмним засобам… 25.

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, якщо зустрілися логічні ошибки.

[pic] Текст програми на Ассемблері містить такі операции:

. а) команди чи инструкции,.

. б) директиви чи псевдооператоры,.

. в) операторы,.

. р) визначені імена. Дії зумовлені операціями перерахованими у пп. б, в, г виконуються на етапі трансляції, тобто. є командами Ассемблеру. Операції, звані командами чи інструкціями виконуються під час виконання програми, тобто. є командами микропроцессору.

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

Інструкція записується на окремої рядку і включає чотирьох полів, необов’язкові у тому числі виділено [ ]: |[метка:]|мнемоника_команды |[операнд (ы)] |[;коментар] |.

Мітка чи символічний адресу містить до 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, 101 0101b SHR 3; в регістр SI завантажать число 0Ah (1 010). 6. NOT — побітова інверсія. 7. AND, OR, XOR — операції «І «, «АБО », «ИСКЛ.ИЛИ ». mov dl, (10d OR 5d) XOR 7d; (dl) дорівнюватиме 8. 8. : — перепризначення сегмента. mov dl,[es:bx]; розмістити у dl байт даних із сегмента es і віддалений від його початку на (bx) байтів (усунення). 9. OFFSET — оператор отримання усунення адреси щодо початку сегмента (тобто кількості байтів з початку сегмента до ідентифікатора адреси). mov bx, OFFSET table.

ДИРЕКТИВИ (ПСЕВДООПЕРАТОРЫ).

1. : — визначає близьку мітку (не більше сегмента).

jmp lbl … … lbl: … 2. = - привласнює символічному імені значення висловлювання. videoram = 0B800h; присвоєння videoram = 0B000h; 3. .CODE — визначає початок кодового сегмента, тобто сегмента, де розташовуються коди програми. 4. .DATA — визначає початок сегмента даних. 5. DB, DW — директиви резервирующие чи кілька байтів: DB, чи одне чи кілька слів: DW.

.DATA fibs DB 1,1,2,3,5,8,13 rus DB «Турбо Асемблер «buf DB 80 DUP (0);резервируется 80 байтов, каждый обнуляется int DW 65 535;в двох байтах розташовується число FFFFh. Array DW 100 DUP (0);резервируется 100 слів 6. END — позначає кінець программы.

.CODE MyPROG:…; точка входу (початок программы).

…; команди программы.

END MyPROG 7. ENDM — закінчення блоку чи макровизначення 8. ENDP — позначає кінець підпрограми. 9. EQU — привласнює символічному імені чи рядку значення выражения.

BlkSize EQU 512 BufBlks EQU 4 BufSize EQU BlkSize * BufBlks 10. LABEL — визначає мітку відповідного типа.

.DATA m_byte LABEL BYTE;метка m_byte типу BYTE дозволяє тепер m_word DW 0;иметь доступ окремо до кожного байту данных.

.CODE;m_word типу WORD.

… mov [m_word], 0204h add [m_byte], «0 » ;нині у m_word зберігається код add [m_byte+1], «0 » ;3234h, ASCII код «0 «дорівнює 30h 11. LOCAL — визначає мітки всередині макровизначень як локальні й в кожному макрорасширении натомість асемблер вставляє унікальні мітки: ??XXXX, де XXXX = (0000…FFFF)h. Чому?? XXXX? І що нікому не має спасти на думку починати символічне ім'я з ??, і транслятор сміливо може генерувати мітки не боючись збігів. 12. MACRO — задає макроопределение.

Swap MACRO a, b; a, b — параметри макро (осередки пам’яті) mov ax, b;данное макрооопределение дозволяє робити mov bx, a;обмен даними між осередками пам’яті, в mov a, ax;отличие від команди xchg; mov b, bx;нельзя mov a, b;

ENDM Виклик цього макросу виробляється командою: Swap m, n 13. .MODEL — визначає розмір пам’яті під дані і код программы.

.MODEL tiny;под программу, данные і стік відводиться одну спільну сегмент (64 Kb). 14. PROC — визначає початок подрограммы.

Print PROC NEAR.

;тут команди підпрограми Print ENDP.

… call Print;вызов подпрграммы. 15. .STACK — визначає розмір стека.

.STACK 200h; виділяє 512 байтів для стека. 16. .RADIX base — визначає систему числення за умовчанням, де base — підставу системи числення: 2, 8, 10, 16.

.RADIX 8 oct = 77; oct одно 63d. 17.; - початок коментарю.

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

1. MOV DST, SRC; переслати (SRC) в (DST). Тут і далі вміст регістру, наприклад регістру AL буде позначатися — (AL) чи (al), а пересилання в коментарі буде позначатися знаком.

Показати весь текст
Заповнити форму поточною роботою