ПЕРЕЛІК ДИСЦИПЛІН:
  • Адміністративне право
  • Арбітражний процес
  • Архітектура
  • Астрологія
  • Астрономія
  • Банківська справа
  • Безпека життєдіяльності
  • Біографії
  • Біологія
  • Біологія і хімія
  • Ботаніка та сільське гос-во
  • Бухгалтерський облік і аудит
  • Валютні відносини
  • Ветеринарія
  • Військова кафедра
  • Географія
  • Геодезія
  • Геологія
  • Етика
  • Держава і право
  • Цивільне право і процес
  • Діловодство
  • Гроші та кредит
  • Природничі науки
  • Журналістика
  • Екологія
  • Видавнича справа та поліграфія
  • Інвестиції
  • Іноземна мова
  • Інформатика
  • Інформатика, програмування
  • Юрист по наследству
  • Історичні особистості
  • Історія
  • Історія техніки
  • Кибернетика
  • Комунікації і зв'язок
  • Комп'ютерні науки
  • Косметологія
  • Короткий зміст творів
  • Криміналістика
  • Кримінологія
  • Криптология
  • Кулінарія
  • Культура і мистецтво
  • Культурологія
  • Російська література
  • Література і російська мова
  • Логіка
  • Логістика
  • Маркетинг
  • Математика
  • Медицина, здоров'я
  • Медичні науки
  • Міжнародне публічне право
  • Міжнародне приватне право
  • Міжнародні відносини
  • Менеджмент
  • Металургія
  • Москвоведение
  • Мовознавство
  • Музика
  • Муніципальне право
  • Податки, оподаткування
  •  
    Бесплатные рефераты
     

     

     

     

     

     

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

     

    Інформатика, програмування

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

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

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

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

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

    (Організація ЕОМ)

    тема

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

    Виконали: студенти групи КІС 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, якщо зустрілися логічні помилки.


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

    . а) команди або інструкції,

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

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

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

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


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


    Мітка або символічний адреса містить до 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, @ datamov 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, (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: ....< br>2. = - Присвоює символічного імені значення виразу.videoram = 0B800h; присвоєння videoram = 0B000h;
    3. . CODE - визначає початок кодового сегмента, тобто сегмента, дерозташовуються коди програми.
    4. . DATA - визначає початок сегмента даних.
    5. DB, DW - директиви резервують один або декілька байтів: DB, або однеабо кілька слів: DW.

    ....

    . DATAfibs DB 1,1,2,3,5,8,13rus DB 'Турбо Асемблер'buf DB 80 DUP (0); резервується 80 байтів, кожен обнуляєтьсяint DW 65535; в двох байтах розташовується число 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 - визначає мітку відповідного типу.

    ....

    . DATAm_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 8oct = 77; oct одно 63d.
    17. ; - Початок коментаря.

    КОМАНДИ Пересилання


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

         
     
         
    Реферат Банк
     
    Рефераты
     
    Бесплатные рефераты
     

     

     

     

     

     

     

     
     
     
      Все права защищены. Reff.net.ua - українські реферати ! DMCA.com Protection Status