Jump to content

НАР 2

NAR 2 ( сербский Na stavni R ačunar 2, англ. Educational Computer 2) — это теоретическая модель компьютера с 32- битными словами, созданная профессором математического факультета Белградского университета Неделько Парежановичем в качестве усовершенствования своего предшественника NAR 1 . Он использовался на языка ассемблера и компьютерной архитектуры курсах . Слово «нар» означает «гранат» по -сербски . Было создано множество симуляторов NAR 2 — например, один был назван «Шлива» ( англ. «слива» ), поскольку этот фрукт растет в Сербии , а «нар» — нет.

Структура инструкции

[ редактировать ]

NAR 2 Центральный процессор использует 32-битные машинные слова. Каждая машинная инструкция содержит:

  • код операции в 8 старших битах (биты с 24 по 31)
  • 4 бита (от 20 до 23), определяющие индексный регистр , который будет использоваться в режимах индексированной адресации.
  • 4 бита (от 16 до 19), содержащие режима адреса флаги :
    • бит 19: P ( ср. эн посредно, . опосредованно ) — индексированный
    • бит 18: R ( . ср относительно) - относительно счетчика программ
    • бит 17: I ( ср. I ндиректно) - многоуровневая косвенная память (примечание: адрес загружается из указанного места и, если там также указан флаг "I", косвенный расчет адреса продолжается)
    • бит 16: Н ( ср. н епосредно) — немедленный
  • 16-битное со знаком значение параметра

Регистры

[ редактировать ]

NAR 2 имеет четыре регистра:

Мнемоника

[ редактировать ]

Были доступны следующие коды операций (фактические коды не были указаны, только мнемоника):

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

[ редактировать ]
  • MUA ( sr. Memorija U A kumulator , . ru. Memory Into Accumulator) загружает значение в аккумулятор
  • АУМ ( . A kumulator UM emoriju ср , англ. Accumulator Into Memory) хранит содержимое аккумулятора.
  • PIR ( sr. P unjenje I ndeksnog Load Index Register) Загружает значение Registra , англ. в индексный регистр.

Целочисленная арифметика

[ редактировать ]

Примечание: все мнемоники в этой группе заканчиваются буквой «Ф», обозначающей арифметику «Фиксни зарез» ( англ. Фиксированная точка). Однако это справедливо только для сложения, вычитания и отрицания (смены знака). Умножение и деление предполагают, что «точка» зафиксирована справа от младшего значащего бита, то есть числа являются целыми.

  • САБФ ( ср. Сабери у , Фиксном зарезу англ . Add, Фиксированная точка) — добавляет параметр в аккумулятор.
  • ОДУФ ( ср. Оду зми у Фиксном зарезу , англ. Subtract, Фиксированная точка) — вычитает параметр из аккумулятора
  • MNOF ( sr. Mno ži u F iksnom zarezu , en. Multiply, Fixed Point) - Multiples the accumulator with the parameter
  • DELF ( ср. Дэл и у Фиксном зарезу , англ. Divide, Фиксированная точка) — Делит аккумулятор по параметру
  • ПЗАФ ( ср. Promeni Z nak u A kumulatora Fiksnom zarezu , англ. Change the Sign of Accumuator,Fixed Point) — Меняет (переворачивает) знак аккумулятора.

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

[ редактировать ]
  • САБ ( ср. саб эри , англ. Add) — добавляет параметр в аккумулятор
  • ODU ( ср. Odu zmi , англ. Subtract) — вычитает параметр из аккумулятора
  • МНО ( ср. Мно жи , англ. Multiply) — умножает аккумулятор на параметр
  • DEL ( ср. Del i , en. Divide) — Делит аккумулятор по параметру.
  • ПЗА ( ср. Promeni nak Z A kumulatora англ , . Change the Sign of Accumuator) — Меняет (переворачивает) знак аккумулятора.

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

[ редактировать ]

Примечание. Все вышеперечисленные операции являются побитовыми . Их названия подразумевают, что это чисто логические операции , но их можно объяснить так, как будто они работают с векторами битов и отдельно применяют логические операции к каждой паре битов.

  • POL ( ср. Po meri L evo , англ. Shift Left) — сдвигает биты аккумулятора влево
  • POD ( ср. Po meri D esno , англ. Shift Right) — сдвигает биты аккумулятора вправо

Управление потоком

[ редактировать ]
  • NES ( ср. Негативни кок С по адресу, указанному параметром , , англ. Negative Jump) выполняет условный переход если текущее значение аккумулятора отрицательное.
  • BES ( ср. Be zuslovni S kok , англ. Unconditional Jump) выполняет безусловный переход по адресу, указанному параметром.
  • НУС ( ср. Ну ла- С кок , эн. Zero Jump) выполняет условный переход по адресу, указанному параметром, если текущее значение аккумулятора равно нулю.
  • ZAR ( ср. Za ustavi R ačunar , англ. Stop the Computer) останавливает любую дальнейшую обработку; это единственная инструкция, которая игнорирует параметр.

Стандартный синтаксис языка ассемблера

[ редактировать ]

Синтаксис ассемблера NAR 2 был разработан так, чтобы быть простым и легким для анализа. Каждая строка программы может содержать до одной инструкции, указанной следующим образом:

  1. Мнемоника инструкций
  2. Пробел, если инструкция указывает какие-либо индексные регистры, режим адресации или параметр, а затем разделяет их запятыми:
    1. Имя индексного регистра, если он используется
    2. Имена флагов режима адресации (также через запятую)
    3. Значение параметра

Пример кода:

  aum X1, p, 0
  mua n, 1
  aum 15
  pir X1, p, n, 1
  mua X1, p, n, 0
  oduf n, 1
  oduf X2, p, n, 0

Режимы адресации

[ редактировать ]

Благодаря четырем битам выбора режима адресации (P, R, I и N — индексированный, относительный, косвенный и непосредственный) инструкции NAR 2 могут указывать 16 различных режимов адресации, но не все из них имеют смысл во всех инструкциях. В следующей таблице:

  • M[x] указывает 32-битное значение (содержимое) ячейки памяти x.
  • BN указывает счетчик программ
  • p указывает 16-битный параметр со знаком в местоположении
  • Xi указывает индексный регистр, выбранный данными в местоположении.
  • f() — это функция «эффективного значения», используемая для косвенной адресации (подробности см. ниже):
Адрес флаги Тип инструкции
П Р я Н Данные Прыжок
 -   -   -   -  М[п] п
 -   -   -  Н п п
 -   -  я  -  М[f(М[р])] е(М[р])
 -   -  я Н е(М[р]) е(М[р])
 -  Р  -   -  М[БН+р] БН+п
 -  Р  -  Н БН+п БН+п
 -  Р я  -  M[f(M[BN+p])] f(M[BN+p])
 -  Р я Н f(M[BN+p]) f(M[BN+p])
П  -   -   -  М[Xi+p] Си+р
П  -   -  Н Си+р Си+р
П  -  я  -  M[f(M[Xi+p])] f(M[Xi+p])
П  -  я Н f(M[Xi+p]) f(M[Xi+p])
П Р  -   -  М[БН+Xi+p] БН+Си+п
П Р  -  Н БН+Си+п БН+Си+п
П Р я  -  M[f(M[BN+Xi+p])] f(M[BN+Xi+p])
П Р я Н f(M[BN+Xi+p]) f(M[BN+Xi+p])

Примечание 1: Флаг «N» (немедленный) не влияет на инструкции перехода (управления потоком данных), поскольку процессор не может перейти к указанному значению, а только к адресу памяти.

Многоуровневая косвенная память

[ редактировать ]

NAR 2 поддерживает режим многоуровневой непрямой адресации памяти. Местоположение сначала выбирается путем «смотрения» на флаги P (индексированный) и R (относительно счетчика программ). Затем, если обнаружен флаг I (косвенный), 32-битное слово загружается из рассчитанной на данный момент ячейки памяти, и расчет возобновляется (включая все флаги режима адресации, выбор индексного регистра и значение параметра - используется только «код операции»). опущен). Таким образом, следующая программа, если она загружена в ячейку памяти 0 и выполнена:

муа I, 0 ; Память-в-аккумулятор, косвенно, из ячейки 0

... заморозит NAR 2 в бесконечном цикле вычисления адреса:

  1. «I, 0» указывает, что фактический адрес должен быть загружен из ячейки памяти 0.
  2. Ячейка памяти 0 загружена. Он снова читает «Я, 0».
  3. «I, 0» указывает, что фактический адрес должен быть загружен из ячейки памяти 0.
  4. Ячейка памяти 0 загружена. Он снова читает «Я, 0».
  5. «I, 0» указывает, что фактический адрес должен быть загружен из ячейки памяти 0.
  6. Ячейка памяти 0 загружена. Он снова читает «Я, 0».
  7. ...

Обратите внимание, что:

муа R, I, 0 ; Память в аккумулятор, относительный, косвенный, из местоположения BN+0

кажется более общим (может заморозить NAR 2 из любого места), но это зависит от того, когда значение регистра BN увеличивается/изменяется.

Вопрос о том, как обращаться с флагом «N» (непосредственный) при наличии флага I (косвенный) открыт, поскольку ситуация несколько неоднозначна, то есть следует ли учитывать значение флага, указанное в исходной инструкции или значение в косвенно указанный (просмотренный) адрес приводит к конфликту. В таблице выше представлен первый случай, показывающий различные режимы адресации, достижимые таким способом.

Чтение значений из индексных регистров

[ редактировать ]

NAR 2 имеет инструкции для инициализации значения определенного индексного регистра (мнемоника «PIR»). Однако у него нет специальных инструкций для чтения значений индексных регистров. Это достигается за счет использования флагов режима индексированной и немедленной (P, N) адресации, таких как:

муа Си, П, Н, п; Память в аккумулятор, индексированный, немедленный, 0

... что по сути помещает Xi+n в аккумулятор. При n=0 это превращается в инструкцию «загрузить значение индексного регистра в аккумулятор».

См. также

[ редактировать ]
  • НАР 1
  • MMIX , еще один процессор, разработанный профессором для помощи студентам в обучении.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 6415141139ed364fb91aae160dc163fe__1721504580
URL1:https://arc.ask3.ru/arc/aa/64/fe/6415141139ed364fb91aae160dc163fe.html
Заголовок, (Title) документа по адресу, URL1:
NAR 2 - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)