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

     

     

     

     

     

         
     
    Програма, яка формує таблицю істинності для функції F = A + C * (B + D )
         

     

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

    Міністерство освіти Російської Федерації

    Рязанський державний технологічний коледж

    ПОЯСНЮВАЛЬНА ЗАПИСКА

    до курсової роботи з предмету

    "Архітектура ЕОМ систем і мереж "

    Виконав: Сорокін В.А.

    Перевірив: Лабутін А.В.

    Оценка_______________

    2001р

    Зміст

    1. Введення 1

    2. Загальні відомості про мову асемблер 2

    3. Програмна частина

    . Опис програми 3

    . Етапи розробки асемблерних програм 5

    . Блок-схема алгоритму програми 2

    . Програма, яка формує таблицю істинності для функції F = A + C ((B (D) 4

    4. Список використаної літератури 5

    Програмна частина

    Опис програми

    У цій роботі ми розглянемо один із способів написання програми,формує, таблицю істинності для функції F = A + C ((B (D), за допомогою мови
    Асемблера. Перш ніж створити програму треба детально розглянути, якікроки для цього треба зробити, тобто треба написати алгоритм роботи цієїпрограми. Для того, щоб комп'ютер зміг обробити дані, ці дані йомутреба спочатку ввести, а це означає першим кроком у вирішенні нашого завданнябуде введення числа. Для початку привласнимо початкове значення дорівнює 0 всімоперанда тобто A, B, C, D, F. Другим кроком у роботі буде обчислення функції
    F = A + C ((B (D). Після цього ми виводимо на екран значення операндів A, B, C, D іобчислений результат функції, тобто F. Наступним кроком буде збільшенняоперанда D на 1 і перевірка умови: якщо значення D не дорівнює 2, топереходимо до обчислення заданої функції та виведення значень операндів
    A, B, C, D, F на екран, інакше то переходимо до наступного кроку вирішення нашоїзавдання, тобто присвоєння операнд D значення 0, збільшенню операнда C на
    1. Після знову проводимо перевірку умови: якщо С не дорівнює 2, то переходимодо обчислення заданої функції та виведення значень операндів A, B, C, D, F наекран, інакше то переходимо до наступного кроку, присвоєння операнд Ззначення 0 і збільшення операнда B на 1. Далі перевіряємо умову: якщо B недорівнює 2, то переходимо до обчислення заданої функції та виведення значеньоперандів A, B, C, D, F на екран, інакше то переходимо до наступного кроку,присвоєння операнд B значення 0 і збільшення операнда A на 1, інакшепереходимо до наступного пункту, перевірці умови: якщо A не дорівнює 2, топереходимо до обчислення заданої функції та виведення значень операндів
    A, B, C, D, F на екран, інакше виходимо з програми. Тепер зберемо всі пунктиразом:

    1. Початок
    2. Надаємо початкові значення операнда A, B, C, D, F

    A = 0, B = 0, C = 0, D = 0, F = 0
    3. Виконуємо логічну операцію «виключає або» над операндами B і D і заносимо результат в регістр AH
    4. Виконуємо логічну операцію «або» над операндами A і C і заносимо результат в регістр AL
    5. Виконуємо інверсію результату що знаходиться в регістрі AL
    6. Виконуємо логічну операцію «і» над операндами AH і AL і присвоюємо результат операнд F
    7. Виводимо на екран значення операндів A, B, C, D, F
    8. Збільшуємо операнд D на 1
    9. Перевірка умови: якщо D не дорівнює 2, то перехід на пункт 2, інакше то перехід на пункт 9
    10. Надаємо операнд D значення 0, збільшуємо операнд C на 1
    11. Перевірка умови: якщо С не дорівнює 2, то перехід на пункт 2, інакше то перехід на пункт 11
    12. Надаємо операнд З значення 0, збільшуємо операнд B на 1
    13. Перевірка умови: якщо B не дорівнює 2, то перехід на пункт 2, інакше то перехід на пункт 13
    14. Надаємо операнд B значення 0, збільшуємо операнд A на 1
    15. Перевірка умови: якщо A не дорівнює 2, то перехід на пункт 2, інакше то перехід на пункт 15
    16. Кінець

    Це і є алгоритм програми природною мовою.

    Список використаної літератури:


    1. Питер Абель. «Мова асемблера для IBM-PC і програмування»

    Москва, «Вища школа», 1992р.
    2. П. Нортон, Д. Соухе. «Мова асемблера для IBM-PC» Москва, «Комп'ютер», 1993р.
    3. Б. Беріан. «Програмування на мові асемблера» Москва, «Мир», 1980р.
    4. В. Н. Пильщиків. «Програмування на мові асемблера для IBM-PC» видавництво «Діалог-МИФИ», 1994р.

    cseg segment org 100h assume cs: cseg, ds: dseg, ss: ssegstart: mov ax, dseg; встановити регістр DS таким mov ds, ax; чином, щоб він вказував

    ; на сегмент даних

    mov ax, 0600h mov bh, 07 mov cx, 0000 mov dx, 184Fh int 10h

    mov ah, 9; функція DOS виводу рядка mov dx, OFFSET Message; посилання на повідомлення "ABCDF" int 21h; вивести "ABCDF" на екран

    BEGIN:; ___

    ; Розрахунок функції F = A + C * B (+) D mov ah, B; копіювання 'B' в ah xor ah, D; виключає або mov al, A; копіювання 'A' в al or al, C; логічне додавання not al; інверсія and ah, al; логічне множення mov F, ah; перенесення результату в F

    jmp FUNC; Перехід на мітку FUNC для виводу

    ; рядки таблиці

    NEXT:

    add D, 1; збільшення D на 1 cmp D, 2; якщо D не дорівнює 2, то jne BEGIN; перехід на мітку BEGIN

    mov D, 0; обнулення D add C, 1; збільшення C на 1 cmp C, 2; якщо C не дорівнює 2, то jne BEGIN; перехід на мітку BEGIN

    mov C, 0; обнулення C add B, 1; збільшення B на 1 cmp B, 2; якщо B не дорівнює 2, то jne BEGIN; перехід на мітку BEGIN

    mov B, 0; обнулення B add A, 1; збільшення A на 1 cmp A, 2; якщо A не дорівнює 2, то jne BEGIN; перехід на мітку BEGIN

    ENDLAB: mov ah, 4ch; функція DOS для int 21h; завершення програми

    FUNC:; Опції ДОС для виведення символів

    ; Виводимо двійкові значення ABCD, а також F mov ah, 2; завантаження номера функції DOS для виведення символу наекран mov dl, 48; код виведеного символу 48 = 0 add dl, A; виводимо на екран int 21h; значення A mov ah, 2 mov dl, 32; код виведеного символу 48 = пробіл int 21h

    mov ah, 2 mov dl, 48 add dl, B int 21h mov ah, 2 mov dl, 32 int 21h

    mov ah, 2 mov dl, 48 add dl, C int 21h mov ah, 2 mov dl , 32 int 21h

    mov ah, 2 mov dl, 48 add dl, D int 21h mov ah, 2 mov dl, 32 int 21h

    mov ah, 2 mov dl, 48 add dl, F int 21h mov ah, 2 mov dl, 32 int 21h

    mov ah, 2 mov dl, 13 int 21h mov ah, 2 mov dl, 10 int 21h jmp NEXT; перехід на мітку NEXTcseg endsdseg segment

    A DB 0

    B DB 0

    C DB 0

    D DB 0

    F DB 0

    Message DB 'ABCD F', 13,10, '$'dseg endssseg segment stack 'stack' db 100 dup (0)sseg endsend start

    Примітки:
    Нижче пріведіни команди використовувалися в програмі: sub - двійкове віднімання. Віднімається з перших операнда вміст другого операнда

    Мнемоніка: sub,call - виклик процедури. Передає управління процедурою адресу якої задано операндом, після завершення процедури, виконання триває командою наступного за командою call

    Мнемоніка: call ret - повернення до процедуриshr - зрушити логічно вправоxor - виключає АБО

    Мнемоніка: xor,lea - завантажити ЕА

    Мнемоніка: lea reg,push - включити до stack

    Мнемоніка: push pop - витягти з stack

    Мнемоніка: pop mov - переслати

    Мнемоніка: mov,inc - збільшення на 1

    Мнемоніка: inc dec - зменшення на 1

    Мнемоніка: dec stosb - пересилає з'єднання регістра al або ax на який вказуєрегістр diloop - команда організації циклу з лічильником, також короткі переходи

    (127б) команда зменшує значення лічильника cx, без зміни будь-яких прапорів, якщо з'єднання cx> 0, то здійснюється перехід на задану позначку, в іншому випадку цикл завершується.

    Мнемоніка: loop
    . CODE - відкриває сегмент коду
    . DATA - відкриває сегмент даних
    . STACK N - визначає сегмент stack (а); деректіви закриття сегментів в цьому випадку не використовуються; N - показує розмір stack (a) в байтах
    Примітка: при використанні таких деректів регістр ds ініціалізуєтьсянаступним чином: mov ax, @ data mov ds, axassume в цьому випадку не використовується


    -----------------------< br>

    D = D 1

    D (2

    D = 0

    C = C 1

    F = AH (AL

    AL = AL

    AL = A + C


    A = 0; B = 0;
    C = 0; D = 0; F = 0

    AH = B (D

    початок

    Виведення на екран

    A, B, C, D, F

    вихід

    A (2

    B = 0

    A = A 1

    B (2

    C = 0

    B = B 1

    C (2



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

     

     

     

     

     

     

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