Лекции.Орг


Поиск:




Однорідна позиційна система числення - це така позиційна система числення, в якій є одна основа d, а вага i-го розряду дорівнює p i.




Вага розряду p i числа у позиційній системі числення – це відношення

 

P i = d i / d 0 = d i

де i - номер розряду справа наліво, а d 0 це перший розряд ліворуч від коми і його номер дорівнює 0, а значення дорівнює 1.

Кожне число у позиційній системі числення з основою d може бути записане у вигляді дискретної суми степенів основи системи з відповідними коефіцієнтами, іншими словами, таку форму ще називають розгорнутою або повною:

 

(1)

 

де: A d – довільне число у системі числення з основою d;

– коефіцієнти ряду або цифри системи числення;

i = (n, n -1, n -2, …, 1, 0, -1, …, - m +1, - m) – номер розряду цілої (n) або дробової (-m) частини числа.

У сучаснихкомп’ютерних системах найбільше застосовуються позиційні системи числення. В універсальних цифрових комп’ютерах використовуються тільки позиційнісистеми числення, а у спеціалізованих комп’ютерах використовуються такі системи числення (в тому числі і не позиційні), якідозволяють значно спростити апаратуру процесора, зображення чисел і операції над ними для обчислення вузького класу задач.

 

1.2. Позиційні системи числення, які застосовуться у комп’ютерах

 

Для подання чисел в універсальних ЕОМ застосовували й застосовують двійкову, трійкову, вісімкову і шістнадцяткову системи числення, а для обробки економічної інформації – двійково-десяткову. Розглянемо основні з них.

 

1.2.1 Двійкова система числення

З точки зору технічної реалізації найліпшою є система з основою 2 або двійкова, тому що двохпозиційні елементи різної фізичної природи легко реалізуються. Крім того, у процесах з двома стійкими станами різниця між цими станами має якісний, а не кількісний характер, що забезпечує надійну реалізацію двійкових цифр. Таким чином, простота арифметичних і логічних дій, мінімум обладнання, що використовується для подання чисел та найбільш зручні умови реалізації визначили застосування двійкових систем числення практично в усіх відомих комп’ютерах і таких, що проектуються.

Двійкова система числення у комп’ютерах є основною, у якій здійснюються арифметичні і логічні перетворення інформації у пристроях комп’ютера. Вона має тільки дві цифри: 0 і 1, а всяке двійкове число зображається у вигляді комбінації нулів і одиниць. Кожний розряд числа у двійковій системі числення ліворуч від коми подається двійкою у відповідній додатний степені, а праворуч від коми – двійкою у від’ємній степені (табл. 1).

 

Таблиця 1

Номер розряду           -1 -2 -3 -4
Двійкова степінь 24 23 22 21 20 2-1 2-2 2-3 2-4
Десяткове значеня         1 (,) 0,5 0,25 0,125 0,0625

 

Наприклад, розгорнуту форму двійкового числа 11101,01 за формулою (1) можна записати так:

 

11101,012 = 1*24 + 1*23 + 1*22 + 0*21 + 1*20 + 0*2-1 + 1*2-2 =

 

= 16 + 8 + 4 + 1 = 29,2510

 

До недоліків двійкової системи числення можна віднести:

1. Значно більша, порівняно з іншими системами числення, кількість розрядів, які необхідні для подання однакових за абсолютною величиною чисел. Порівняйте:

 

2510 = 1758 = 5005 = 11111012

 

2. Необхідність переведення вхідних даних з десяткової системи до двійкової і вихідних – з двійкової до десяткової.

 

1.2.2. Вісімкова система числення

 

Вісімкова система числення має основу d = 8 i можливі значення розрядів αi = 0, 1, 2, 3, 4, 5, 6, 7. Число вісім, яке дорівнює основі системи числення, записується двома цифрами у вигляді 10. Любе вісімкове число може бути зображено за допомогою формули розгорнутого запису (1) десятковим еквівалентом, наприклад:

 

726,158 = 7 * 82 + 2 * 81 + 6 * 80 + 1 * 8-1 + 5 * 8-2 = 470,20312510

 

Запис команд і даних програми у вісімковій системі числення у три рази коротше, ніж у двійковій.

 

1.2.3. Шістнадцяткова система числення

 

Шістнадцяткова система числення має основу d = 16 і αi = 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F. Для запису чисел у системі числення з основою, більше ніж 10, арабських цифр виявляється недостатньо і доводиться додатково вводити символи, що однозначно подають цифри від 10 до 15. У даній системі числення застосовують великі латинські (англійські) символи для позначення цифр від 10 до 15.

Будь-яке число з шістнадцяткової системи числення також може бути зображено десятковим числом за допомогою формули (1), наприклад:

10А,F16 = 1 * 162 + 0 * 161 + 10 * 160 + 15 * 16-1 = (266 )16.

 

У таблиці 2, для порівняння, наведені числа, що записані у різних позиційних системах числення.

 

 

Таблиця 2.

Система числення
Десяткова Вісімкова П’яткова Шістнадцяткова Двійкова
N10 N8 N 5 N16 N2
         
         
        00 10
         
         
    10    
         
         
  10      
         
10     A  
      B  
      C  
      D  
      E  
      F  
      10  
         
         
         
       
         
         
      BAD  

Як видно із таблиці, число, що дорівнює основі системи числення, у любій системі числення кодується як 10.

 

1.3. Переведення чисел з однієї позиційної системи числення до іншої

 

Переведення чисел з однієї системи числення до іншої може бути виконано двома шляхами. Перший шлях - табличний, який базується на співставленні коду одної системи числення коду іншої системи числення, що мають однакові числові еквіваленти. Спосіб громіздкий, потребує великого об'єму пам'яті для зберігання таблиці, однак, може бути застосований для любих систем числення, включаючи також непозиційні системи числення. Другий шлях - розрахунковий, але він може бути застосований тільки для однорідних позиційних систем числення.

 

1.3.1. Переведення цілих чисел

 

Правило переведення цілого числа з однієї системи числення до іншої. Число послідовно ділять на основу нової системи числення, записаної у початковій системі числення, до отримання частки, що дорівнює нулю. Число у новій системі числення записується як послідовність залишків від ділення, починаючи з останнього залишку.

Операцію ділення виконують у початковій системі числення, тому її зручно використовувати при переведенні десяткових чисел до інших систем числення.

Приклад 1. Перевести число 2510 у двійкову, вісімкову і шістнадцяткову системи числення.

 

а). 25: 2 = 12 (залишок = 1) б). 25: 8 = 3 (залишок 1) в). 25: 16 = 1 (залишок 9)

12: 2 = 6 (залишок = 0)

6: 2 = 3 (залишок = 0) Напрямок запису Напрямок запису

3: 2 = 1 (залишок = 1)

1: 2 = 0 (залишок = 1)

↓ Напрямок

Остання запису

частка

Результат переведення буде: 2510 = 110012 = 318 = 1916.

 

1.3.2. Переведення правильного дробу

 

Правило переведення правильного дробу з однієї системи числення до іншої. Правильний дріб послідовно множать на основу нової системи числення, записаної в початковій системі числення. У процесі множення приймають участь тільки дробові частини проміжних добутків, тобто їх ціла частина ігнорується, але не відкидається. Операцію множення виконують в початковій системі числення, тому це правило переважно використовують при переведенні десяткових дробів до інших систем числення. Правильний дріб у новій системі числення записується як послідовність цілих частин добутків, отриманих від множення, починаючи з першого.

Процес переведення закінчується, коли проміжний добуток дорівнює 0 у всіх розрядах або досягнута необхідна точність, тобто отримана необхідна кількість розрядів результату після коми.

Приклад 2.3. Десятковий дріб 0,312610 перевести у двійкову і вісімкову системи числення з точністю до 2-4.

 

0,3126 0,6252 0,2504 0,5008 0,3126 0,5008 0,2504 0,5008

* 2* 2* 2* 2* 8* 8* 8* 8

0,6252 1,2504 0,5008 1,1,0016 2,5008 4,0064 0,0512 0,4096

 

Відповідно, результат буде записаний як: 0,312610 = 0,01012 = 0,24008.

 

1.3.3. Особливості переведення вісімкових і шістнадцяткових чисел до двійкової системи числення і навпаки

 

Якщо розглянути таблицю 2 в частині вісімкових і двійкових чисел від 08 до 78, можна зауважити істинність таких двох положень:

а) всяке однорозрядне вісімкове число можна записати у вигляді трьохрозрядного двійкового;

б) всяке трьохрозрядне двійкове число можна записати у вигляді однорозрядного вісімкового.

Аналогічно, такий самий висновок можна зробити і для шістнадцяткових чисел від 016 до 1516, але у двійкових числах треба розглядати чотири розряди. Група з трьох двійкових розрядів називається тріада, а з чотирьох двійкових розрядів – тетрада. На підставі цих положень можна стверджувати:

Для переведення вісімкових чисел до двійкової системи числення необхідно кожну вісімкову цифру замінити еквівалентною їй двійковою тріадою (для шістнадцяткових чисел – тетрадою).

Для переведення двійкових чисел до вісімкової системи числення необхідно двійкове число розбити на тріади праворуч і ліворуч від коми (для шістнадцяткових чисел – на тетради). Якщо останні ліворуч і праворуч тріади (тетради) будуть неповні, їх потрібно доповнити нулями. Потім кожну двійкову тріаду (тетраду) замінити одною еквівалентною їй вісімковою (шістнадцятковою) цифрою (див. табл. 2.).

Переведення чисел з десяткової системи числення до двійкової можна виконувати щляхом проміжного переведення до вісімкової системи числення, а потім отримане вісімкове число – у двійкове, тобто: A10 → A8 → A2.

Приклад 2.4. Десяткове число 572 перевести у двійкову систему числення.

 

572: 8 = 71 (залишок = 4) Отримуємо: 57210 = 10748 = 001000111100 2 .

71: 8 = 8 (залишок = 7)

8: 8 = 1 (залишок = 0)

1: 8 = 0 (залишок = 1)

 

1.3.4. Переведення чисел з любої позиційної системи числення до десяткової системи

 

При необхідності переведення чисел до десяткової системи з інших систем числення, у загальному випадку використовується формула повного запису числа (1). При використанні цього способу всі арифметичні дії виконуються у тій системі числення, до якої дане число переводиться. Число записується у розгорнутій (повній) формі у своїй системі числення, але значення розрядів записуються у десятковій формі. Виконавши всі операції за правилами десяткової арифметики ми отримаємо результат у десятковій формі.

Приклад 2.2. Перевести дані числа до десяткової системи числення.

 

1100101,12 = 1 * 26 + 1* 25 + 1* 22 + 1* 20 + 1* 2 -1 = 101,510;

 

3138 = 3 * 82 + 1* 81 + 3 * 80 = 20310;

 

1BF,516 = 1 * 162 + 11 * 161 + 15 * 160 + 5 * 16-1 = 447 + 5/16

 

2. Порядок виконання лабораторної роботи № 1.

 

1. Вивчити теоретичні відомості до лабораторної роботи № 1.

2. Дайте відповіді на такі контрольні питання:

1) Що називається системою числення?

2) Що таке основа системи числення?

3) Якою є вага окремого розряду числа у позиційній системі числення?

4) Які системи числення застосовуються у сучасних комп’ютерах?

5) Які особливості двійкової системи числення?

6) Які особливості вісімкової системи числення?

7) Які особливості шістнадцяткової системи числення?

8) Які є способи переведення чисел з однієї системи числення до іншої?

9) Правило переведення з однієї системи числення до іншої цілих чисел;

10) Правило переведення з однієї системи числення до іншої дробових чисел;

11) Правило переведення чисел з любої системи числення до десяткової системи;

12) Поясніть табличний метод переведення чисел з двійкової до вісімкової системи;

13) Поясніть табличний метод переведення чисел з двійкової до шістнадцяткової системи;

14) Поясніть табличний метод переведення чисел з вісімкової до двійкової системи;

15) Поясніть табличний метод переведення чисел з шістнадцяткової до двійкової системи;

У звіті кожний студент дає письмову відповідь на одне контрольне питання, номер якого співпадає з його номером за списком групи.

3. Запустити програму “Симулятор навчальної ЕОМ DeComp” (файл DeComp.exe) і включити живлення на панелі навчального комп’ютера.

За допомогою набірного поля і кнопок “Занесення з набірного поля”, записати до регістрів процесора такі значення двійкових кодів: до РА – 0101 0101 0101,

до РД – 0011 0011 0011 0011,

до А – 0000 1111 0000 1111,

до РІ – 0000 0000 1111 1111,

до ЛАІ – 1010 1010 1010.

Вміння виконувати вказані дії продемонструвати викладачу.

4. За допомогою набірного поля і кнопок “Операція з пам’яттю” записати до 5-ти сусідніх комірок пам’яті з адресами 20, 21, 22, 23 та 24 числа 16, 17, 18, 19 та 20. Попередньо всі десяткові числа перевести до двійкової системи числення і результати записати у робочий зошит для подання у звіті. Вміння виконувати вказані дії продемонструвати викладачу.

5. Записати у пам’ять описану нижче програму, яка додаватиме числа, що знаходяться у 10-й та 11-й комірках пам’яті, а результат запише до 12-ї комірки. Програму розмістити у оперативній пам’яті, починаючи з комірки за адресою 0 (нуль). Попередньо у 10-ту та 11-ту комірки занести числа відповідно до свого варіанту:

 

Таблиця варіантів до завдання

 

№ за списком Число 1 Число 2 № за списком Число 1 Число 2 № за списком Число 1 Число 2
                 
                 
                 
                 
                 
                 
                 
                 
                 
                 

 

 

Відповідна програма у мнемонічних кодах буде мати такий вигляд:

 

Мнемонічний код інструкції Дія, яку виконує інструкція
LOAD 10 завантажити (прочитати) значення числа з 10-ї комірки пам’яті до акумулятора;
ADD 11 додати до числа в акумуляторі значення числа з 11-ї комірки пам’яті і результат зберегти в акумуляторі;
STORE 12 зберегти (записати) значення числа з акумулятора до 12-ї комірки пам’яті;
HALT зупинити роботу процесора.

 

У двійковому поданні дана програма матиме наступний вигляд:

 

0000 0000 0000 1010 – двійковий код 1-ої інструкції

0010 0000 0000 1011 - - “ - 2-ої інструкції

0001 0000 0000 1100 - - “ - 3-ої інструкції

0111 1100 0000 0000 - - “ - 4-ої інструкції

 

Відповідно, двійковий код першої інструкції необхідно занести до комірки з адресою 0 (0000 0000 0000), другу – у комірку з адресою 1 (0000 0000 0001), третю – у комірку з адресою 2 (0000 0000 0010), а четверту – у комірку з адресою 3 (0000 0000 0011).

Після того, як програма розміщена у пам’яті навчального комп’ютера і у 10-ту (код адреси у двійковій формі - 0000 0000 1010) та у 11-ту (код адреси - 0000 0000 1011) комірки будуть занесені задані числа, необхідно у Лічильнику Адреси Інструкції за допомогою набірного поля встановити адресу першої інструкції, тобто код адреси - 0000 0000 0000, тобто показати процесору звідки починати виконання програми.

6. Виконати програму у автоматичному режимі і перевірити результат у 12-й комірці, прочитавши значення 12-ї комірки пам’яті.

7. Онулити 12-ту комірку, знову встановити у ЛАІ адресу першої інструкції – адресу 0 і дослідити цю програму, виконавши її у покроковому режимі. Після виконання кожної інструкції записати у подану нижче таблицю вміст усіх регістрів процесора.

 

  РА РД А РІ ЛАІ РО
1-й крок            
2-й крок            
...            
N –й крок            

 

Проаналізувати процес змін у регістрах процесора на кожному кроці виконання програми.

8. Оформити та захистити звіт з лабораторної роботи. Під час захисту звіту бути готовому дати усну відповідь на будь-яке контрольне питання і дати пояснення змінам у регістрах процесора, які відбуваються при виконанні кожного кроку програми.

Загальні вимоги до звітів з виконаних лабораторних робіт подані у додатку.


Лабораторна робота № 2

 

Тема: Набір інструкцій навчального комп’ютера. Загальний порядок виконання інструкцій.

Мета: 1. Засвоїти порядок виконання програм у комп’ютері. Ознайомитися з форматом та набором інструкцій симулятора навчальної ЕОМ. Засвоїти формати і способи використання інструкцій звертання до пам’яті та інструкцій арифметичних операцій;

2. Засвоїти призначення регістра ознак процесора;

3. Ознайомитися з потактовим режимом роботи навчального комп’ютера.

4. Засвоїти базовий порядок виконання інструкції навчального комп’ютера та

навчитися досліджувати хід виконання окремих інструкцій.

 

Теоретичні відомості

 

Звернімося до малюнку 2.3, на якому зображена таблиця “Набір інструкцій навчального комп’ютера DeComp”. Усі інструкції у навчальному комп’ютері можна поділяти за такими напрямками:

1. За форматом коду інструкції;

2. За призначенням.

Нагадаємо, що за форматом коду інструкції є адресні та безадресні (див. розділ ІІ “Опис архітектури навчального комп’ютера DeComp”). Безадресні інструкції взагалі не використовують будь-які операнди, як, наприклад, інструкція HALT або інструкції зсувів. У таких інструкціях однозначно відомо, звідки брати операнди для операції, наприклад:

- інструкція NOT однозначно працює з акумулятором (інвертує його вміст);

- так само роблять усі інструкції зсувів (LSL, ASR, ROR та інші);

- а от інструкції INPUT та OUTPUT працюють не лише з акумулятором, але й з портами вводу (INPUT) та виводу (OUTPUT).

У свою чергу, адресніінструкції для виконання своєї операції потребують операнди, в якості яких може бути вміст будь-якої з 4096 комірок пам’яті симулятора. Отже, окрім коду операції, який займає найстарші 4 розряди машинного коду інструкції (від 15-го до 12-го), решту розрядів займає 12-розрядна адреса комірки пам’яті, значення вмісту якої стане операндом і буде оброблятись у даній інструкції.

 

Усі інструкції навчального комп’ютера за призначенням можна розділити на такі групи:

1) інструкції звертання до пам’яті (LOAD та STORE);

2) арифметичні інструкції (ADD та SUB);

3) логічні інструкції (AND, OR, XOR та NOT);

4) інструкції вводу/виводу (INPUT та OUTPUT);

5) інструкції керування виконанням програми:

а) інструкція зупинки (HALT);

б) інструкції умовних переходів (JNZ, JZ, JP, JM, JNC та JC);

в) інструкція безумовного переходу (JMP);

6) інструкції зсувів (вліво (Left) та вправо (Right)):

а) інструкції логічного зсуву (LSL та LSR);

б) інструкції арифметичного зсуву (ASL та ASR);

в) інструкції циклічного зсуву (ROL та ROR);

г) інструкції циклічного зсуву через тригер ознаки переносу C (RCL та RCR).

 

 

1.1. Інструкції звертання до пам’яті:

 

1) LOAD ADR - завантажити (від англ. Load - завантажувати).

Дивимося на рис. 2.3: машинний код цієї інстркції – 0000 aaaa aaaa aaaa; виконання – (ADDR) ® Акумулятор.

Ця інструкція здійснює читання 16-розрядного числа з комірки пам’яті, на яку вказує поле адреси ADR, і розміщує його у акумуляторі. Перші найстарші 4 розряди (старша тетрада) містять код операції “завантаження” з пам’яті – 0000, а наступні 12 розрядів – адресу комірки, з якої відбуватиметься читання. Наприклад, для того, щоб прочитати число з 15-ї або 2041-ої комірки пам’яті і записати його до акумулятора, необхідно використати:

 

Мнемонічний запис Машинний код
LOAD 15 0000 0000 0000 1111
LOAD 2041 0000 1111 1111 1001

 

2) STORE ADR - зберегти (від англ. Store - зберігати)

Машинний код – 0001 aaaa aaaa aaaa; виконання – Акумулятор ® (ADDR)).

Ця інструкція здійснює протилежну до інструкції LOAD дію, тобто 16-розрядне значення вмісту акумулятора записує у комірку пам’яті, на яку вказує поле адреси ADR. Код операції інструкції “збереження” до пам’яті – 0001, а наступні 12 розрядів – адреса комірки пам’яті. Наприклад, щоб записати значення вмісту акумулятора до 148-ї або 2043 комірки, необхідно використати такі машинні коди:

 

Мнемонічний запис Машинний код
STORE 148 0001 0000 1001 0100
STORE 2043 0001 1111 1111 1011

 

Якщо нам потрібно у пам’яті перенести число з однієї комірки до іншої, однією командою цього зробити не можна. Потрібно скористатись послідовно двома командами - LOAD та STORE, причому акумулятор буде посередницьким пунктом, через який відбудеться передача.

Так, програма з двох інструкцій:

 

Мнемонічний запис Машинний код
LOAD 28 0000 0000 0001 1100
STORE 56 0001 0000 0011 1000

 

виконує переміщення 16-розрядного числа, яке знаходилось у 28-й комірці пам’яті, до 56-ї комірки. Відзначимо, що інструкція читання (завантаження) LOAD не знищує числа у 28-ій комірці. Після виконання у цій програмі інструкції запису (збереження) STORE, код числа з 28-ої комірки пам’яті буде скопійований до 56-ої комірки, а у акумуляторі залишиться те саме 16-розрядне число з 28-ї комірки.

 

1.2. Інструкції арифметичних операцій:

 

1) ADD ADR – арифметичне додавання (від англ. Addition -додавання)

Машинний код – 0010 aaaa aaaa aaaa; виконання – Акумулятор + (ADDR) ® Акумулятор.

Ця інструкція виконує додавання вмісту акумулятора і числа з комірки пам’яті, на яку вказує адреса ADR, та записує результат назад до акумулятора. Перші 4 розряди машинного коду містять код операції додавання – 0010, а решта 12 розрядів – адресу у пам’яті 2-го операнда, що буде додаватись. Знову звернемо увагу на центральну позицію акумулятора, який постачає одне з двох чисел для додавання та зберігає результат.

Можна не переживати, що результат знищить одне з 2-х чисел, яке перед виконанням дії додавання було записано з пам’яті до акумулятора, бо воно залишилося у пам’яті за своєю адресою. Проте, якщо операнд був записаний в акумулятор як результат виконання попередньої інструкції і не був збережений у пам’яті, то тоді він пропаде – буде “затертий” новим значенням акумулятора.

Нехай нам потрібно додати 3 числа, які знаходяться у 21-й, 22-й та 23-й комірках пам’яті, а результат необхідно зберегти в 25-й комірці. Відповідна програма у мнемонічних кодах матиме вигляд:

 

Машинний код Мнемонічний запис Коментар
0000 0000 0001 0101   LOAD 21 зчитування 1-го операнда з пам’яті до акумулятора
0010 0000 0001 0110   ADD 22 додавання вмісту акумулятора (числа з 21-ої комірки) і вмісту 22-ої комірки пам’яті. Тепер у акумуляторі знаходиться перший проміжний доданок
0010 0000 0001 0111   ADD 23 додавання першого проміжного доданку, що знаходиться у акумуляторі, з вмістом 23-ої комірки пам’яті. Тепер у акумуляторі – другий проміжний доданок – результат додавання трьох чисел
0001 0000 0001 1001   STORE 25 збереження результату у 25-й комірці пам’яті. Числовий код результату копіюється до 25-ї комірки і він же залишається у акумуляторі. У машинних кодах ця програма матиме наступний вигляд

 

 

2) SUB ADR – віднімання (від англ. Subtraction - віднімання).

Машинний код – 0011 aaaa aaaa aaaa; виконання: Акумулятор – (ADDR) ® Акумулятор.

Ця інструкція виконує віднімання від вмісту акумулятора значення вмісту комірки пам’яті з адресою, що вказана у полі ADR, і записує результат назад до акумулятора. Код операції віднімання – 0011, а решту 12 розрядів займає адреса комірки, вміст якої буде відніматися. Інші властивості цієї інструкції співпадають із властивостями інструкції додавання ADD.

 

 

1.3. Призначення Регістру Ознак

 

Відповідно до обмежень, які закладені у архітектурі любого комп’ютера, у тому числі і нашого навчального – симулятора DeComp, результат виконання арифметичних і більшості інших інструкцій необхідно аналізувати для визначення його певних особливостей. Що саме:

- потрібно відрізняти додатні і від’ємні числа;

- потрібно визначати стан, коли результат виконання інструкції дорівнює нулю;

- потрібно визначати переповнення розрядної сітки акумулятора.

Для фіксації цих станів існує регістр ознак у процесорі, який має три тригери: Z, S i C. На панелі навчального комп’ютера він розміщений біля акумулятора.

Прапорець Z (Zero - нуль) встановлюється у 1 (світиться), якщо результат операції дорівнює 0. Зрозуміло, що для команди ADD ця ознака встановиться лише у випадку, якщо до 0 додати 0, або якщо додаються два однакових числа з протилежними знаками.

Прапорець S (Sign - знак) встановлюється в 1, якщо результат операції – від’ємне число. Знову ж таки, інструкція ADD не може дати від’ємного результату за винятком чисел у доповняльному коді, яких ми поки-що не розглядаємо. Зрозуміло, якщо віднімати від меншого числа більше інструкцією SUB, отримаємо ознаку від’ємного результату S.

Прапорець C (Carry - перенос) встановлюється в 1, коли у результаті арифметичної операції (додавання чи віднімання) виникає перенос із старшого розряду результату або при виконанні операції зсуву вправо чи вліво крайній розряд числа вийшов за межі розрядної сітки. Так, наприклад, перенос виникне і, відповідно, встановиться тригер C, якщо додати два 16-ти розрядних числа у 16-ти розрядному процесорі:

 

- результат – 17-ти розрядне число.

 

Відслідковувати виникнення переносу (ознака – C) або від’ємного результату (ознака – S) повинен сам програміст і це дуже важлива задача, оскільки є головною умовою отримання коректного, правильного результату. Адже, наприклад, у розглянутому прикладі, якщо не врахувати виникнення переносу, отримаємо: 22 375 + 47 733 = 4 572 (замість 70 108). Які дії треба виконувати для корекції помилкових результатів – це питання буде розглядатися при вивченні алгоритмів виконання арифметичних операцій у наступних роботах.

Деколи різні ознаки результату можуть з’являтися одночасно. Які ознаки встановлюються і якою інструкцією подано на рис. 2.3. Наприклад, інструкція віднімання SUB може встановлювати усі три ознаки: Z, S та C. Насправді, операція віднімання здійснюється з використанням доповняльного коду, з яким ми познайомимось трохи пізніше.

 

1.4. Дослідження виконання інструкцій навчального комп’ютера

Для дослідження алгоритмів і ходу виконання програм за окремими інструкціями існує покроковий режим роботи навчального комп’ютера, з яким ми ознайомилися у лабораторній роботі № 1.

Загальний принцип виконання однієї інструкції ми вже знаємо: спочатку її необхідно прочитати з пам’яті, а потім, у залежності від коду операції, виконати ті або інші необхідні дії. Це і є найбільш спрощений порядок виконання інструкції:

1) вибірка (читання) інструкції (f etch – вибір, виклик).;

2) виконання інструкції (exec ution –виконання).

Оскільки більшість інструкцій призначені для виконання різних операцій, для яких необхідні вхідні числа, а також збереження результату, для більшості процесорів комп’ютерів стандартним є такий, більш детальний порядок виконання інструкцій:

1) вибірка інструкції;

2) декодування (розпізнавання) інструкції;

3) вибірка (читання) операндів;

4) виконання операції (арифметичної, логічної чи якоїсь іншої);

5) збереження (запис) результату.

У порівнянні із попереднім, простішим порядком виконання інструкції, у детальнішому порядку етап вибірки інструкції розділився на 2 частини: вибірку та декодування (розпізнавання) інструкції. Дійсно, етап декодування є надзвичайно важливим: він фактично є функцією пристрою керування, який повинен розпізнати (декодувати) інструкцію за її кодом операції, а також згенерувати послідовність керуючих сигналів, які спричинять виконання усіх наступних етапів.

Крім того, 2-й етап – виконання інструкції – розділився на 3 частини: вибірку операндів, виконання операції та збереження результату. При цьому, під читанням та записом маються на увазі операції звертання до пам’яті.

Але насправді виконання інструкції складається з ще більшої кількості етапів.

 

Для дослідження порядку виконання окремих інструкцій у процесорі призначений 3-й режим роботи навчального комп’ютера – потактовий.

 

Для прикладу, розглянемо порядок виконання інструкції додавання (ADD) за допомогою потактового режиму роботи навчального комп’ютера. Інструкція додавання обробляє два операнда, які повинні бути заздалегідь підготовлені. Вони можуть бути обидва розміщені у ОЗП, або один з них може бути розміщений безпосередньо у акумуляторі.

Виконаємо цю підготовку. Для цього спочатку за допомогою пульта управління занесемо до 0-ї комірки пам’яті машинний код інструкції ADD 01 -0010 0000 0000 0001, до 1-ї комірки – число 15 (двійковий код = 0000 0000 0000 1111), а до акумулятора число 240 (двійковий код = 0000 0000 1111 0000). У результаті виконання цієї інструкції у акумуляторі ми повинні отримати суму двох чисел - 15 + 240 – число 255 (машинний код - 0000 0000 1111 1111). Фактично нами складена програма додавання двох чисел, з яких одно знаходиться у комірці пам’яті за адресою 0000 0000 0001, а друге – у акумуляторі, а сама інструкція розміщена у комірці пам’яті з адресою 0000 0000 0000.

Для початку виконання інструкції до ЛАІ - лічильника адреси інструкцій - занесемо адресу розміщення першо ї інструкції ADD 01, тобто - 0000 0000 0000, а також встановимо потактовий режим роботи симулятора відповідною кнопкою вибору режиму.

Тепер, натискаючи кнопку ПУСК, ми можемо такт за тактом відслідковувати процес проходження інформації по регістрах процесора від початку до закінчення виконання інструкції. Під час здійснення аналізу на панелі процесора синім кольором позначатиметься джерело інформації (вихідний пристрій), а білим – місце призначення (кінцевий пристрій).

Відзначимо, що швидкість виконання одного кроку можна змінювати. Для цього необхідно у самому верху панелі, під синьою стрічкою заголовку вікна програми симулятора, вибрати пункт меню Режими, а у ньому – команду Тривалість підсвітки... У віконечку, що з’явиться, можна вибрати одне із значень затримки від 200 до 4000 мс. Стандартним значенням, яке автоматично встановлюється при запуску симулятора, є 800 мс.

1-й такт. Натиснемо кнопку ПУСК. У результаті спочатку синім кольором засвітиться лічильник адреси інструкції (ЛАІ), а потім білимрегістр адреси пам’яті (РА) і значення ЛАІ опиниться у РА, тобто код розміщення нашої першої (і єдиної) інструкції - 0000 0000 0000. Дійсно, перш ніж прочитати інструкцію з пам’яті, необхідно до РА занести її адресу. Оскільки за адресами інструкцій слідкує ЛАІ, то саме з нього ми беремо потрібну нам адресу: ЛАІ ® РА. Такий скорочений формат запису цього такту можна тлумачити таким чином: вміст регістру ЛАІ (де розміщена адреса інструкції) переноситься до РА.

2-й такт. Ще раз натиснемо кнопку ПУСК (Власне для виконання кожного такту потрібно натискати ПУСК). Тепер синім кольором засвітиться вікно пам’яті, а білимрегістр даних пам’яті (РД), тобто значення (вміст) виділеної комірки пам’яті (на яку вказує РА) зчитується і записується до РД – у нашому випадку - 0010 0000 0000 0001. Зараз машинний код інструкції вже прочитаний з пам’яті, але поки що знаходиться у регістрі даних:

Пам РА ® РД.

3-й такт: С иній – РД, білийрегістр інструкції (РІ), тобто ми переносимо машинний код інструкції з РД до спеціального регістра – РІ. Саме з нього процесор може декодувати інструкцію, що і відбувається на цьому ж 3-му кроці. З точки демонстрації дія декодування абсолютно непомітна – це внутрішній процес пристрою управління, але після нього процесор вже точно знає, які саме дії необхідно виконувати саме у цій інструкції:

РД ® РІ.

4-й такт. Оскільки команда додавання ADD використовує один з операндів, який знаходиться у пам’яті, тому на 4-му кроці значення адреси операнда (тобто 0000 0000 0001) з регістру інструкцій РІ заноситься до РА:

АДР (РІ) ® РА.

5-й такт. Операнд (тобто, двійковий код числа 1510 - 0000 0000 0000 1111) зчитується з пам’яті і записується до РД:

Пам(РА) ® РД.

6-й такт. Тепер ми маємо обидва операнди: один попередньо занесений у акумуляторі (0000 0000 1111 0000), а другий – у РД. Відповідно, на 6-му кроці виконується операція додавання і результат записується до акумулятора (0000 0000 1111 1111):

А + РД ® А.

Відзначимо, що виконання будь-якого етапу закінчується операцією запису якогось проміжного результату до одного з регістрів процесора або пам’яті. Так, сама операція додавання не потребує запису – вона є “наскрізною”: будь-яка зміна чисел (операндів) на входах АЛП призводить до майже миттєвої зміни на його виході. А от запис результату до акумулятора і визначає закінчення 6-го кроку.

7-й такт. Оскільки операція додавання є арифметичною, тому вона впливає на усі 3 прапорці регістру ознак (РО). Внутрішні схеми процесора аналізують у акумуляторі результат виконання операції (у нас – додавання) і включають, при необхідності, відповідний прапорець: Z, S, C (A) ® РО. (Хоча у нашому випадку жодна з ознак не змінюється).

8-й такт. На цьому виконання нашої інструкції ADD можна вважати закінченим. Залишився один маленький крок, хоча й надзвичайно важливий: підготувати адресу наступної інструкції. Якщо цього не зробити, процесор знову і знову виконуватиме ту ж саму інструкцію ADD:

ЛАІ + 1 ® ЛАІ.

У нашому випадку, замість інструкції у наступній комірці 0000 0000 0001, виявиться наше число 1510 = (0000 0000 0000 1111)2, але оскільки наша програма складається лише з однієї інструкції, то усе добре. Правильніше було б наш операнд записати до комірки, яка гарантовано не попадає у зону адрес роботи програми.

 

Отже, виконання інструкції ADD зайняло 8 тактів. У скороченому вигляді мікрокоманди виконання інструкції ADD для нашого прикладу можна було б представити у такому вигляді:

 

Мнемонічний запис Код, що обробляється Коментар
  ЛАІ ® РА 0000 0000 0000 вибір адреси 1-ої інструкції і занесення її до Регістра Адреси
  РА ® РД 0010 0000 0000 0001 вибір коду інструкції з РА і занесення його до Регістра Даних
  РД ® РІ 0010 0000 0000 0001 декодування інструкції у Регістрі Інструкцій
  РІ ® РА 0000 0000 0001 вибір адреси 1-го операнда
  РА ® РД 0000 0000 0000 1111 вибір коду 1-го операнда з пам’яті і запис його до Регістру Даних
  А + РД ® А 0000 0000 1111 1111 виконання операції додавання (2-й операнд – у акумуляторі)
  ZSC(А) ® РО   встановлення прапорців регістру ознак
  ЛАІ + 1 ® ЛАІ 0000 0000 0001 підготовка адреси нової інструкції

 

Такий запис мікрокоманд виконання інструкції називають мікропрограмою виконання інструкції. У дужках наведено фактичні значення, які записуються у регістри процесора для нашої інструкції ADD 01.

Порядок виконання роботи

 

1. Ознайомитись з теоретичними відомостями до лабораторної роботи № 2.

2. Описати призначення прапорців Регістру Ознак;

3. Ввести у симулятор і виконати дослідження у потактовому режимі програми додавання двох чисел, яка була підготована у роботі № 1. Записати результати – мікропрограму виконання з необхідними поясненями.

4. Ввести у симулятор та виконати дослідження у покроковому режимі програми, яка відніматиме два числа А і В для значень, коли А = В, А > В і А < В, вибравши довільні відповідні значення. Виписати результати виконання дослідження і значення прапорців ознак у таблицю, взірець якої поданий у роботі № 1. Поясніть отримані результати.

5. Ввести у симулятор та виконати дослідження у потактовому режимі 3-х окремих інструкції – LOAD, STORE i SUB. Пояснити необхідну підготовку числових даних, виписати порядок виконання інструкцій у вигляді мікропрограм із вказанням реальних значень регістрів і поясненням дій, що виконуються у кожному такті.

6. Оформити та захистити звіт з лабораторної роботи.

 

  1. Вимоги до звіту

 

У звіті програми повинні бути оформлені у вигляді:

- формулювання задачі;

- інформація про вхідні дані, їх попередньє розташування у комірках пам’яті,

призначення комірок, що використовуються;

- текст програми у форматі:

 

№ п/п № комірки пам’яті у двійковому коді Код інструкції (двійковий) Мнемонічний запис інструкції Коментар до кожної інструкції

Лабораторна робота № 3

 

Тема: Дослідження інструкцій переходів і зсувів. Організація циклів.

Мета роботи: 1. Засвоїти використання основних інструкцій зсуву і переходів у системі

команд навчального комп'ютера DeComp.

2. Навчитись організовувати цикли необхідної стуктури і використовувати їх у програмах.

Теоретичні відомості

 

Інструкції, з якими ми будемо знайомитися у даній роботі складають дві групи:

1) інструкції керування виконанням програми:

b) інструкція зупинки (HALT);

c) інструкції умовних переходів (JNZ, JZ, JP, JM, JNC та JC);

d) інструкція безумовного переходу (JMP);

2) інструкції зсувів (вліво (Left) та вправо (Right)):

e) інструкції логічного зсуву (LSL та LSR);

f) інструкції арифметичного зсуву (ASL та ASR);

g) інструкції циклічного зсуву (ROL та ROR);

h) інструкції циклічного зсуву через перенос C (RCL та RCR).

 

1.1. Розглянемо інструкції переходів.

 

Їх головне призначення – зміна звичайного порядку виконання інструкцій. У всіх інструкціях, за винятком інструкцій переходів, на останньому кроці адреса наступної інструкції визначається шляхом додавання 1 до ЛАІ. У інструкціях переходів 12 розрядів адресної частини містять нову адресу наступної інструкції. В результаті наступною після інструкції переходу буде не та інструкція, яка знаходиться у пам’яті зразу після інструкції переходу, а інструкція, яка може знаходитись у будь-якій іншій комірці пам’яті, на яку вкаже адреса у інструкції переходу.

Інструкція безумовного переходу JMP ADR має машинний код 1110 aaaa aaaa aaaa.

 

Відповідно, код операції дорівнює 1110, а решта розрядів – адресна частина. Мікропрограма виконання інструкції JMP має наступний вигляд:

1) ЛАІ ® РА;

2) РА ® РД;

3) РД ® РІ, декодування;

4) РІ ® ЛАІ – перехід на вказану адресу відбувається без будь-яких попередніх умов.

Як видно, інструкція безумовного переходу JMP просто записує до ЛАІ значення своєї адресної частини і програма буде змушена виконати інструкцію, що записана у комірці пам’яті за цією адресою. Інструкція JMP фактично є реалізацією оператора GOTO у мовах програмування Pascal, Basic та ін.

Призначення інструкцій умовного переходу (JNZ, JP тощо) дещо інше: у залежності від виконання чи не викогаггя умови, зазначеної у алгоритмі програми, перехід або буде здійснюватись, або не буде. Контроль виконання умови здійснює Регістр Ознак шляхом встановлення чи не встановлення відповідного тригера. (див. методичні матеріали до лабораторної роботи № 2).

 

Якщо умова виконується, тоді наступною буде виконуватися інструкція, яка розміщена у комірці пам’яті, номер якої вказаний у адресній частині коду інструкції.

Якщо умова не виконується, тоді наступною буде виконуватися інструкція, яка знаходиться відразу в сусідній комірці пам’яті з коміркою інструкції переходу.

 

Фактично інструкції умовного переходу дозволяють реалізувати оператори розгалуження IF та циклів FOR або WHILE. Наприклад, фрагменту програми на мові Pascal

If (a < b) then

c:= a;

Else

c:= b;

при реалізації його у навчальному комп’ютері DeComp (причому, змінна a знаходиться у 10-й комірці, змінна b – у 11-й, а змінна c – у 12-й) відповідатиме такий фрагмент програми у машинних кодах:

 

№ комірки пам’яті Двійковий код інструкції Мнемонічний запис інструкції Коментар
0000 0000 0000 0000 0000 0000 1010 LOAD 10; завантажити до акумулятора змінну a
0000 0000 0001 0011 0000 0000 1011 SUB 11; відняти від змінної a змінну b
0000 0000 0010 1100 0000 0000 0110 JNC 06; якщо C= 0 (a>b), перейти до c:=b
0000 0000 0011 0000 0000 0000 1010 LOAD 10; завантажити до акумулятора змінну a
0000 0000 0100 0001 0000 0000 1100 STORE 12; записати змінну a на місце змінної c  
0000 0000 0101 0111 1100 0000 0000 HALT; зупинити програму
0000 0000 0110 0000 0000 0000 1011 LOAD 11; завантажити до акумулятора змінну b
0000 0000 0111 0001 0000 0000 1100 STORE 12; записати змінну b на місце змінної c
0000 0000 1000 0111 1100 0000 0000 HALT; зупинити програму

 

Як видно з програми, оператор IF (a < b) реалізується за допомогою інструкцій віднімання SUB та умовного переходу за умови відсутності переносу C - JNC: якщо при відніманні від змінної a (розміщеної у акумуляторі) змінної b (розміщеної у 11-й комірці) не виникає переносу, це означає, що a > b, а значить, необхідно “перескочити” фрагмент, де виконується c:= a (блок інструкцій LOAD, STORE та HALT у 3-й, 4-й та 5-й комірках), і почати виконувати фрагмент c:= b (блок інструкцій LOAD, STORE та HALT у 6-й, 7-й та 8-й комірках).

Отже, у навчальному комп’ютері DeComp маємо такі інструкції умовних переходів (результат – число А знаходиться в акумуляторі):

 

Двійковий код інструкції Мнемонічний запис інструкції Значення ознаки, яка перевіряється Значення результату, що розміщений в акумуляторі
1000; JNZ ADR Z = 0 A ¹ 0
  JZ ADR Z = 1 A = 0
  JP ADR S = 0 A > 0
  JM ADR S = 1 A <0
  JNC ADR C = 0 A £ 216 - 1
  JC ADR C = 1 A ³ 216 - 1

 

При дослідженні інструкцій переходів у потактовому режимі видно, що їх хід відрізняється від розглянутого у прикладі, наведеному у лабораторній робті № 2. Для прикладу, мікропрограма інструкції JM матиме вигляд:

 

  № Мнемонічний запис мікрооперації Коментар
  ЛАІ ® РА; вибір адреси 1-ої інструкції і занесення її до регістру РА
  РА ® РД; вибір коду інструкції з РА і занесення його до регістру РД
  РД ® РІ; декодування іперевірка регістру ознак РО
  РІ ® ЛАІ якщо S = 1, інакше 5)
  ЛАІ + 1 ® ЛАІ якщо S = 0

 

 

1.2. Організація програмних циклів

 

Для організації циклу засобами навчального комп’ютера DeComp в одній з комірок пам’яті необхідно розмістити лічильник циклів. Лічильник циклів це число, яке може мати значення N (якесь число) або 0 (const = N або const = 0). Відповідно, у циклі необхідно кожний раз лічильник зменшувати (або збільшувати) на 1 і за допомогою інструкції умовного переходу перевіряти, чи потрібно зробити цикл ще раз.

Наприклад, у комірці пам’яті за адресою 1010 розміщений лічильник - const = K = 15, у комірці пам’яті за адресою 1110 – константа = 1 (const = 1), яка буде обслуговувати цей лічильник. Тоді програма обслуговування циклу:

 

LOOP 1:... – мітка (адреса) попередньої частини програми;

LOAD 10 - вибрати значення з комірки 10 і розмістити його у акумуляторі;

SUB 11 - із значення, що є у акумуляторі, відняти 1;

JNZ LOOP 1 – перехід на LOOP 1, якщо у результаті виконання попередньої

операції ознака Z ≠ 0, тобто вміст акумулятора не дорівнює 0,

інакше – перехід на наступну aдресу – LOOP 2.

LOOP 2....

 

Це є лічильник "на 0", тобто процедура LOOP 1 виконується K = 15 разів і кожний раз виконується перевірка числа таких виконань шляхом зменшення значення у лічильнику (комірка пам’яті – 10). Коли у лічильнику значення стане рівним 0, програма почне виконувати процедуру LOOP 2.

 

1.3. Особливості виконання операцій зсуву

 

- LSL, LSR - логічні зсуви (розряд, що виходить за межі аккумулятора, потрапляє у ознаку

переносу С).

- ASL, ASR - арифметичні зсуви (не змінюється знак. У ознаку переносу розряд потрапляє

не зі старшого, тобто - знакового розряду, а з попереднього - старшого розряду

числа).

- ROL, ROR - циклічні зсуви (розряди обертаються, не потрапляючи у ознаку переносу С).

- RCL, RCR - циклічні зсуви через ознаку С (розряди обертаються через ознаку переносу С).

 

2. Порядок виконання роботи:

 

1. Вивчити теоретичні відомостями до лабораторної роботи № 3.

2. Дослідити у потактовому режимі інструкції ROL, RCL. JP - для непарних номерів із списку групи, ROR, RCR, JC - для парних номерів із списку групи. Виписати результати та значення прапорців ознак.

3. Скласти програму, яка реалізуватиме оператор IF (умову перевірки вибрати самостійно). Закодувати її, ввести у симулятор та виконати її дослідження у покроковому режимі, Текст програми оформити згідно з прикладом у теоретичній частині даних методичних вказівок.

4. Розробити алгоритм і cкласти програму в інструкціях симулятора DeComp, що для довільного числа "А" з комірки пам"яті за адресою "N" підраховує кількість"1" - для непарних номерів із списку групи, і підраховує кількість "0" - для парних номерів із списку групи. Програма виконується в автоматичному режимі.

5. Оформити та захистити звіт з лабораторної роботи.

 

3. Вимоги до звіту.

 

Крім основних вимог, що зазначені у додатку, у звіті програми повинні бути оформлені у такому вигляді:

- формулювання задачі;

- блок-схема алгоритма;

- інформація про вхідні дані і їх попереднє розташування у комірках пам’яті;

- призначення комірок, що використовуються;

- текст програми у наступному форматі:

 

Адреса комірки пам’яті у десятковому коді Код інструкції (двійковий) Мнемонічний формат інструкції Коментар до груп інструкцій, що відповідають блокам алгоритму програми

 


Лабораторна робота № 4

 

Тема: Дослідження інструкцій логічних операцій і виконання арифметичних операцій

навчального комп’ютера – симулятора DeComp.

Мета роботи: 1. Вивчити призначення логічних операцій.

2. Навчитись створювати і використовувати "фільтри" за допомогою

логічних операцій.

3. Вивчити правила кодування додатних і від’ємних двійкових чисел для

здійснення арифметичних операцій у комп’ютерах;

4. Навчитися кодувати двійкові числа із знаком у інструкціях навчального

комп’ютера – симулятора DeComp.

 

Теоретичні відомості

 

1.1. Загальні відомості про логічні функції

 

Усі дії, які виконуються у комп’ютері, повинні бути закодовані попередньо у програмі. За допомогою кожної команди програми кодується одна операція комп’ютера, яка виконується над парою операндів.

Арифметична операція – операція, у якій операнди і результат сприймаються як числа. До них відносяться операції додавання і віднімання, з якими ми познайомилися у попередніх роботах, а також операції множення і ділення. Усі інші операції, наприклад, добування кореня квадратного, піднесення до степеня, дифференцювання та ін., реалізуються у комп’ютері на основі вказаних операцій.

Логічна операція – операція, що полягає у логічній обробці операндів, які приймають у ній участь. До них відносяться операції порівняння, визначення модуля, визначення ознак результатів арифметичних операцій та ін. До них часом відносять операції зсуву праворуч або ліворуч.

Точна, певна послідовність операцій або програма, яка потрібна для виконання певної задачі на комп’ютері, формується на основі математичної теорії, відомої як алгебра логіки. Створив алгебру логіки англійський математик Дж. Буль (1815 – 1864). Тому її називають також алгеброю Буля. Алгебра логіки отримала значний розвиток завдяки роботам таких вчених як Е. Пост, К. Шеннон, В. Глушков, С. Яблонський та ін. Основним поняттям алгебри логіки є висловлювання.

Під час вивчення звичайної алгебри розглядають залежності типу А = f(x1, x2, …xn), де x1, x2, …xn – аргументи, а А – функція. Аргументи і функція при цьому можуть набувати найрізноманітніших числових значень: додатних і від’ємних, цілих і дробових. У алгебрі логіки вивчають залежності аналогічного вигляду А = f(x1, x2, …xn), але такі, в яких аргументи і функція можуть набувати тільки двох значень: 1 і 0. Практичне використання таких функцій є формальним (математичним) описом логіки людського мислення в процесі виконання якоїсь задачі.

Вся діяльність людини так або інакше пов’язана з різними висловлюваннями. Будь-яке вимовлене твердження, зауваження є певним висловлюванням. У алгебрі логіки саме висловлювання є змінною (аргументом), яка може набувати одного з двох можливих значень (істина чи фальш, так чи ні, правдиво чи не правдиво) і над якою можна виконувати деякі дії. Подібно до аргументів у звичайній алгебрі, висловлювання позначають буквами якого-небудь алфавіту, наприклад, X, Y,Z або а, в, с...

За змістом висловлювання поділяють на прості і складні. Наприклад, прості: “вікно відчинене”, “у квартирі холодно”, “Микола вчиться в національному університеті “Львівська політехніка”, “Микола йде на стадіон”. З простих висловлювань за допомогою слів-зв’язок (сполучників) І, АБО, НЕ, ЯКЩО-ТО та ін. утворюють складні. Наприклад, речення: „Вікно відчинене і у квартирі холодно”, „Микола піде у парк або на стадіон”.

Будь-яке висловлювання може відповідати або не відповідати дійсності. У першому випадку його називають істинним (правдивим, true) і позначають як 1, а в інших – помилковим (хибним, false) і позначають як 0.

Особлив





Поделиться с друзьями:


Дата добавления: 2016-11-24; Мы поможем в написании ваших работ!; просмотров: 916 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Есть только один способ избежать критики: ничего не делайте, ничего не говорите и будьте никем. © Аристотель
==> читать все изречения...

765 - | 728 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.009 с.