Добавил:
інстаграм _roman.kob, курсові роботи з тєрєхова в.в. для КІ Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
звіт лаб3.docx
Скачиваний:
14
Добавлен:
31.05.2020
Размер:
65.13 Кб
Скачать

Виконання:

Мій порядковий номер зі списку групи - непарний, тому моя програма буде підраховувати кількість одиниць в двійковому записі числа А.

А – вибране число

k – кількість одиниць у записі числа А

b – лічильник циклу

с – ознака виходу за межі розрядної сітки

№ комірки пам’яті

Двійковий код інструкції

Мнемонічний запис

інструкції

Коментар

1

0000 0000 0000

0000 0000 0000 1010

LOAD 10;

завантажити до акумулятора змінну a

2

0000 0000 0001

0011 0000 0000 1011

SUB 11;

відняти від змінної a змінну b

3

0000 0000 0010

1000 0000 0000 0101

JNZ 05;

якщо Z = 0 (ab), перейти до c:=a+b

4

0000 0000 0011

0001 0000 0000 1100

STORE 12;

записати 0 на місце змінної c

5

0000 0000 0100

0111 1100 0000 0000

HALT;

зупинити програму

6

0000 0000 0101

0000 0000 0000 1010

LOAD 10;

завантажити до акумулятора змінну a

7

0000 0000 0110

0010 0000 0000 1011

ADD 11;

Додати до змінної a змінну b

8

0000 0000 0111

0001 0000 0000 1100

STORE 12;

записати суму a і b на місце змінної c

9

0000 0000 1000

0111 1100 0000 0000

HALT;

зупинити програму

  • Адр.12 → k

  • Адр.13 → 1

  • Адр.14 → b

  • Адр.15 → А(число)

  • ЛАІ → Адр.0

Алгоритм програми:

  1. Завантажити до акумулятора число A.

  2. Для того, щоб визначити значення старшого розряду числа, виконати логічний зсув вліво. Якщо це 12, то до попередньо підготовленої комірки пам’яті додаємо 110 ,якщо 02, пропускаємо додавання.

  3. В лічильнику циклу віднімаємо 110. Перевіряємо, чи число в лічильнику дорівнює 010 . Якщо ні, то повертаємося до п.2. Якщо так – закінчуємо програму.

№ комірки пам’яті

Двійковий код інструкції

Мнемонічний запис

Інструкції

Коментар

1

0000 0000 0000

0000 0000 0000 1111

LOAD 15

Визначення старшого розряду за допомогою зсуву числа A на один розряд вліво

2

0000 0000 0001

1111 1100 0000 0000

RCL

3

0000 0000 0010

0001 0000 0000 1111

STORE 15

4

0000 0000 0011

1101 0000 0000 0111

JC 7

Умовний перехід на 7 комірку,

якщо С=1. Інакше виконується наступний оператор

5

0000 0000 0100

0000 0000 0000 1100

LOAD 12

Збільшення лічильника одиниць на 1 та збереження нового значення.

6

0000 0000 0101

0010 0000 0000 1101

ADD 13

7

0000 0000 0110

0001 0000 0000 1100

STORE 12

8

0000 0000 0111

0000 0000 0000 1110

LOAD 14

Зменшення лічильника циклу на 1 та збереження нового значення.

9

0000 0000 1000

0011 0000 0000 1101

SUB 13

10

0000 0000 1001

0001 0000 0000 1110

STORE 14

11

0000 0000 1010

1000 0000 0000 0000

JNZ 0

Перевіряємо умову виконання циклу

12

0000 0000 1011

0111 1100 0000 0000

HALT

Завершення програми

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

Соседние файлы в предмете Архитектура ЭВМ