Введение
32 битная архитектура RISC, разработанная Неделжико Парезановичем NAR 2 (серб. Nastavni Računar 2, en. Educational Computer 2) - это теоретическая модель 32-битного словесного компьютера, созданная профессором математического факультета Белградского университета Неделжико Парезановичем в качестве улучшения своего предшественника, NAR 1. Он использовался для языка ассемблера и курсов компьютерной архитектуры. Слово "нар" на сербском языке означает гранат. Было создано много тренажеров NAR 2, например, один был назван "Šljiva" (en. Плюм), поскольку этот фрукт растет в Сербии, а "нар" - нет.
NAR 2 (Serbian Nastavni Računar 2, en. Educational Computer 2) is a theoretical model of a 32 bit word computer created by Faculty of Mathematics of University of Belgrade professor Nedeljko Parezanović as an enhancement to its predecessor, NAR 1. It was used for Assembly language and Computer architecture courses. The word "nar" means Pomegranate in Serbian. Many NAR 2 simulators have been created — for instance, one was named "Šljiva" (en. plum) as that fruit grows in Serbia, while "nar" does not.
Доступ к памяти/регистру
MUA (sr. курсивом=no, en. Memory Into Accumulator) загружает значение в аккумулятор AUM (sr. italic=no, en. Accumulator Into Memory) хранит содержимое аккумулятора PIR (sr. italic=no, en. Загружает значение в индексный регистр
AUM (sr. italic=no, en. Accumulator Into Memory) stores the content of the accumulator
PIR (sr. italic=no, en. Load Index Register) Loads the value into the index register
Арифметика целых чисел
Примечание: все мнемоники в этой группе заканчиваются на букву "F", обозначающую "Fiksni zarez" (en. Фиксированная точка) арифметика. Однако это верно только для сложения, вычитания и отрицания (изменение знака). Умножение и деление предполагают, что "точка" фиксируется справа от наименее значимого бита, то есть, что числа являются целыми. SABF (sr. курсив=no, en. Add, Fixed Point) добавляет параметр в аккумулятор ODUF (sr. italic=no, en. Subtract, Fixed Point) вычитает параметр из аккумулятора MNOF (sr. italic=no, en. Умножает аккумулятор на параметр DELF (sr. italic=no, en. Divide, Fixed Point) Делит аккумулятор на параметр PZAF (sr. italic=no, en. Изменить знак аккумулятора, фиксированная точка) Изменить (перевернуть) знак аккумулятора
ODUF (sr. italic=no, en. Subtract, Fixed Point) subtracts the parameter from the accumulator
MNOF (sr. italic=no, en. Multiply, Fixed Point) Multiples the accumulator with the parameter
DELF (sr. italic=no, en. Divide, Fixed Point) Divides the accumulator by the parameter
PZAF (sr. italic=no, en. Change the Sign of Accumuator, Fixed Point) Changes (flips) the sign of the accumulator
Арифметика с плавающей запятой
SAB (sr. курсивом=no, en. Add) добавляет параметр в аккумулятор ODU (sr. курсивом=no, en. Subtract) вычитает параметр из аккумулятора MNO (sr. italic=no, en. Умножает аккумулятор на параметр DEL (sr. italic=no, en. Divide) Делит аккумулятор на параметр PZA (sr. italic=no, en. Изменить знак аккумулятора) Изменить (перевернуть) знак аккумулятора
ODU (sr. italic=no, en. Subtract) subtracts the parameter from the accumulator
MNO (sr. italic=no, en. Multiply) Multiples the accumulator with the parameter
DEL (sr. italic=no, en. Divide) Divides the accumulator by the parameter
PZA (sr. italic=no, en. Change the Sign of Accumuator) Changes (flips) the sign of the accumulator
Битовый/логический
KON (sr. курсив=no, en. Conjunction) выполняет логическое AND с параметром и аккумулятором и сохраняет результат в аккумуляторе DIS (sr. italic=no, en. Disjunction) выполняет логическое ОР с параметром и аккумулятором и сохраняет результат в аккумуляторе NEG (sr. italic=no, en. Negation) выполняет логическое НЕ на содержимом аккумулятора (игнорирует параметр) Примечание: все вышеуказанные операции выполняются по битам. Их названия подразумевают, что они являются чисто логическими операциями, но они могут быть объяснены так, как если бы они работали на векторах битов и отдельно применяли логические операции на каждую пару битов.
DIS (sr. italic=no, en. Disjunction) performs logical OR with the parameter and the accumulator and stores the result in the accumulator
NEG (sr. italic=no, en. Negation) performs logical NOT on the content of the accumulator (ignores the parameter)
Note: above operations are all bitwise. Their names imply that they are purely logical operations but they can be explained as if they operate on vectors of bits and separately apply logical operations on each pair of bits.
Логические сдвиги
POL (sr. курсивом=no, en. Shift Left) смещает биты аккумулятора на левый POD (sr. italic=no, en. Shift Right) смещает биты аккумулятора вправо
POD (sr. italic=no, en. Shift Right) shifts the bits of the accumulator to the right
Контроль потока
NES (sr. курсивом=no, en. Negative Jump) выполняет условный прыжок к адресу, указанному параметром, если текущее значение аккумулятора отрицательное BES (sr. italic=no, en. Unconditional Jump) выполняет безусловный прыжок к адресу, указанному параметром NUS (sr. italic=no, en. Zero Jump) выполняет условный прыжок к адресу, указанному параметром, если текущее значение аккумулятора равно нулю ZAR (sr. italic=no, en. Остановить компьютер) останавливает любую дальнейшую обработку; это единственная инструкция, которая игнорирует этот параметр.
BES (sr. italic=no, en. Unconditional Jump) performs an unconditional jump to the address specified by the parameter
NUS (sr. italic=no, en. Zero Jump) performs a conditional jump to the address specified by the parameter if the current value of the accumulator is zero
ZAR (sr. italic=no, en. Stop the Computer) stops any further processing; this is the only instruction that ignores the parameter.