Введение

32 битная архитектура RISC, разработанная Неделжико Парезановичем NAR 2 (серб. Nastavni Računar 2, en. Educational Computer 2) - это теоретическая модель 32-битного словесного компьютера, созданная профессором математического факультета Белградского университета Неделжико Парезановичем в качестве улучшения своего предшественника, NAR 1. Он использовался для языка ассемблера и курсов компьютерной архитектуры. Слово "нар" на сербском языке означает гранат. Было создано много тренажеров NAR 2, например, один был назван "Šljiva" (en. Плюм), поскольку этот фрукт растет в Сербии, а "нар" - нет.

Доступ к памяти/регистру

MUA (sr. курсивом=no, en. Memory Into Accumulator) загружает значение в аккумулятор AUM (sr. italic=no, en. Accumulator Into Memory) хранит содержимое аккумулятора PIR (sr. italic=no, en. Загружает значение в индексный регистр

Арифметика целых чисел

Примечание: все мнемоники в этой группе заканчиваются на букву "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. Изменить знак аккумулятора, фиксированная точка) Изменить (перевернуть) знак аккумулятора

Арифметика с плавающей запятой

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. Изменить знак аккумулятора) Изменить (перевернуть) знак аккумулятора

Битовый/логический

KON (sr. курсив=no, en. Conjunction) выполняет логическое AND с параметром и аккумулятором и сохраняет результат в аккумуляторе DIS (sr. italic=no, en. Disjunction) выполняет логическое ОР с параметром и аккумулятором и сохраняет результат в аккумуляторе NEG (sr. italic=no, en. Negation) выполняет логическое НЕ на содержимом аккумулятора (игнорирует параметр) Примечание: все вышеуказанные операции выполняются по битам. Их названия подразумевают, что они являются чисто логическими операциями, но они могут быть объяснены так, как если бы они работали на векторах битов и отдельно применяли логические операции на каждую пару битов.

Логические сдвиги

POL (sr. курсивом=no, en. Shift Left) смещает биты аккумулятора на левый POD (sr. italic=no, en. Shift 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. Остановить компьютер) останавливает любую дальнейшую обработку; это единственная инструкция, которая игнорирует этот параметр.