Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
01_C_Vvedenie_student_2011-2012.ukr.doc
Скачиваний:
1
Добавлен:
09.07.2019
Размер:
225.28 Кб
Скачать

C++_2011-2012

Архітектура комп'ютера

Комп'ютер складається з центрального процесора (ЦП) і пам'яті, пристроїв введення-виводу, що з‘єднуються ситемною шиною. Шина надає можливість компонентам комп'ютера обмінюватия даними.

Елементарна одиниця пам'яті - байт ( вісім двійкових розрядів). Кожен байт має свою адресу. У 32-розрядній архітектурі адреси байтів змінюються від 0 до 232 - 1 з кроком 1. Пам'ять, з логічної точки зору – це масив байтів : можна прочитати або записати байт із заданою адресою.

Фізично по шині передаються не окремі байти, а машинні слова. У 32-розрядній архітектурі машинне слово - це чотири байта. У 64-розрядній архітектурі - вісім байтів.

Розглянемо роботу комп'ютера на простому прикладі.

ОП має розмір 256 байт і ділиться на комірки (машинні слова) розміром 4 байти.

Адреси байтів лежать в інтервалі від 0 до 255. В двійковій системі: від о до 111111112.

У шістнадцятиричній системі - від 0 до FF.

Адреса комірки дорівнює адресі молодшого байта, що входить в неї (байта з меншим номером).

Схема пам'яті :

Адреси осередків

Байти

00

00

01

02

03

04

04

05

06

07

08

08

09

0A

0B

0C

0C

0D

0E

0F

10

10

11

12

13

14

14

15

16

17

..

F8

F8

F9

FA

FB

FC

FC

FD

FE

FF

Адреси комірок міняються з кроком 4. Перший комірка має адресу 00, остання - FC.

Адреси представляються шістнадцятиричними числами (вісім двійкових розрядів). Отже, при зберіганні адреси в пам'яті вона займає 1 байт. Всього в пам'яті 64 осередки (256/4).

У осередку може зберігатися або число, або команда програми.

Цей працює тільки з цілими числами.

Приклад. Обчислити вираз (А+B)xC. А=1, В=2, С=3

Під величини А, В, С виділимо елементи пам'яті з адресами:

Адреси осередків

Байти

00

04

08

...

20

А

24

В

28

С

результат

FC

FC

FD

FE

FF

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

Спосіб представлення програми "зрозумілий" процесору називається мовою машинних команд - ММК.

Машинна команда містить в собі відповіді на наступні питання:

  1. яку операцію виконати? (складання, віднімання і т.п.)

  2. де знаходяться операнди? Операнди це дані, з якими проводиться операція (доданки, співмножники, зменшуване, ділене і дільник).

  3. куди помістити результат операції?

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

Їх означатимемо таким чином:

КОП

А1

А2

А3

КОП - код операції.

А1 - адреса першого операнда.

А2 - адреса другого операнда.

А3 - адреса результату.

Команда складання чисел А+B має вигляд :

КОП

А1

А2

А3

01

20

24

де

01 - код операції складання;

20 - адреса комірки, в якій зберігається перший доданок;

48 - адреса комірки, в якому зберігається другий доданок;

4С - адреса комірки, в який поміщається результат.

В двійковій системемі команда має вигляд

КОП

А1

А2

А3

0000 0001

0010 0000

0010 0100

0100 1100

Наступна машина команда обчислення виразу (А+B)xC має вигляд:

03

2C

28

2C

Розташуємо ці команди в ОП, починаючи с адреси 08:

Адреси комірок

Байти

Пояснення

00

04

08

01

20

24

A+B

10

03

2C

28

2C

(A+B) x C

...

20

00

00

00

01

А

24

00

00

00

02

В

28

00

00

00

03

С

результат

FC

FC

FD

FE

FF

Команди цієї програми виконуються в "природному порядку" зростання адрес : спочатку 0С, потім 10.

Комірці 2С значення присвоюється двічі: спочатку проміжний результат підсумовування, потім остаточний – множення.

А тепер припустимо, що початкові дані ми хочемо вводити з клавіатури, а результати обчислень хочемо побачити на єкрані монітора.

Введення – це занесення даних в ОП через пристрої введення. В нашому випадку це клавіатура.

Вивід інформації – це відображення інформації з ОП на пристроях виводу. (дисплей).

Припустимо, що з клавіатурою і дисплеєм пов’язаний останній елемент пам’яті – комірка FC – буферна комірка введення-виводу. Вміст цієї комірки постійно відбивається на дисплеї в шістнадцятиричному виді.

При введенні, значення з клавіатури потрапляє в комірку FC і ми бачимо його на екрані. Для виведення значення з будь-якого елементу пам’яті його потрібно переслати в FC.

FC виконує роль своєрідної відеопам’яті.

Для виконання цих дій використовується команда пересилки, що має наступну структуру.

00

А1

- -

А3

Значення з комірки, яка має адресу А1 пересилається в комірку з адресою А1. В результаті виконання команди значення в комірці А3 стає рівним (А1). Значення в комірці А1 не міняється.

Введемо значення 4, 5 6 в комірки з адресами 20, 24, 28. А на дисплей виведемо результат обчислень, отриманий в осередку 2С.

Адреси комірок

Байти

Пояснення

00

00

FC

00

20

А

04

00

FC

00

24

В

08

00

FC

00

28

С

01

20

24

A+B

10

03

2C

28

2C

(A+B) x C

14

00

00

FC

Вивід результату

18

77

00

00

00

...

20

00

00

00

04

А

24

00

00

00

05

В

28

00

00

00

06

С

00

00

00

36

результат

FC

FC

FD

FE

FF

Процесор, виявивши команду, у якої код операції дорівнює 00 і А1=FC, перериває роботу і чекає дій користувача. Користувач набирає на клавіатурі число, яке заноситься в комірку FC і, одночасно, висвічується на дисплеї. Після натискання клавіши <ВВЕДЕННЯ>, процесор виконує команду пересилки з комірки FC в комірку 20 і процесор переходить до виконання наступної команди.

Після виконання команди виводу (осередок 14) відбувається зупинка. Вона потрібна для того, щоб користувач встиг розгледіти результат на дисплеї, якщо в програмі декілька команд виводу.

У кожній програмі повинна бути команда зупинка роботи програми (в нашому випадку код операції дорівнює 77).

А тепер розглянемо, як процесор виконує машинні команди.