Теоретичні відомості
У навчальній ЕОМ усі інструкції діляться на дві частини: адресні та безадресні. У безадресних інструкціяї або взагалі не використовуються будь-які операнди (числа), як, наприклад, для інструкції HALT, або, як це є у більшості випадків, у таких інструкціяї однозначно відомо, звідки брати операнди для операції: наприклад, інструкція NOT однозначно працює з акумулятором (інвертує його); так само роблять усі інструкції зсувів (LSL, ASR, ROR та інші); а от інструкції INPUT та OUTPUT працюють не лише з акумулятором, але й з портами вводу (INPUT) та виводу (OUTPUT).
Відповідно адресні інструкції для виконання своєї операції потребують операнда, в якості якого може бути будь-яка з 4096 комірок пам’яті. Отже, окрім коду операції, який займає найстарші 4 розряду машинного коду інструкції (від 15-го до 12-го ), решту розрядів займає 12-розрядна адреса комірки пам’яті, значення якої і стане операндом і буде оброблятись у даній інструкції.
Інструкції діляться на наступні групи:
інструкції звернення до пам’яті (LOAD та STORE);
арифметичні інструкції (ADD та SUB);
логічні інструкції (AND, OR, XOR та NOT);
інструкції вводу/виводу (INPUT та OUTPUT);
інструкції керування виконанням програми:
інструкція зупинки (HALT);
інструкції умовних переходів (JNZ, JZ, JP, JM, JNC та JC);
інструкція безумовного переходу (JMP);
інструкції зсувів (вліво (Left) та вправо (Right)):
інструкції логічного зсуву (LSL та LSR);
інструкції арифметичного зсуву (ASL та ASR);
інструкції циклічного зсуву (ROL та ROR);
інструкції циклічного зсуву через перенос C (RCL та RCR).
Хід роботи
2. Програма матиме такий вигляд:
У двійкових кодах
У мнемонічних кодах

0000 0000 0000 1010
LOAD 10

0010 0000 0000 1011
ADD 11

0001 0000 0000 1101
STORE 13

0000 0000 0000 1010
LOAD 10

0011 0000 0000 1011
SUB 11

0001 0000 0000 1110
STORE 14

0111 1100 0000 0000
HALT


-2-