Лаб. Занятие 5. Обязательные задания. НН

Модуль 2. Лаб. Занятие 5.  Обязательная задача [8 баллов]

Следует разместить в Moodle решение одной из перечисленных ниже задач (по выбору преподавателя).

Во всех заданиях следует отправлять на проверку:
1) реализацию заданной инструкции на микропрограммном уровне (тот фрагмент с короткой микропрограммой на языке  микроассемблера MAL, который Вы добавляете в файл mic1mmv-mmcs.mal);
2) JAS file, в котором Вы вызываете созданную Вами новую инструкцию.
Измененный файл ijvm-mmcs.conf, который Вам нужен для проверки работоспособности Вашей микропрограммы отправлять не надо.

  1. [ n51]Реализуйте инструкцию SQR   [предлагаемый код: 0x16] для возведения в квадрат числа с вершины стека, в результате на стек следует поместить значение квадрата исходного числа. 
  2. [ n52] Разработайте микропрограмму для инструкции MUL  [предлагаемый код: 0x16], эта инструкция должна снимать со стека два слова, и класть на стек произведение этих слов. 
  3. n53] Разработайте микропрограмму для новой инструкции NOT [предлагаемый код: 0x16], которая заменяет слово на вершине, его ПОБИТОВЫМ отрицанием. 
  4. n54] Разработайте микропрограмму для новой инструкции DUP_2 [предлагаемый код: 0x16], которая дважды дублирует на стеке слово, лежащее  на вершине стека. Например, если на стеке лежит 5, то после выполнения DUP_2 на стеке должно лежать 5, 5, 5. 
  5. n55] Разработайте микропрограмму для инструкции OR_3  [предлагаемый код: 0x16], эта инструкция должна снимать со стека ТРИ слова, и класть на стек результат операции OR (логическое ИЛИ).
  6. v56] Разработайте микропрограмму для инструкции AND_3  [предлагаемый код: 0x16], эта инструкция должна снимать со стека ТРИ слова, и класть на стек результат операции AND (логическое И).