Создание таблицы с использованием ячеек памяти - PullRequest
0 голосов
/ 11 января 2020

Я пишу свой собственный компилятор (пишу в python, вывод - псевдосборка), и я столкнулся с проблемой, которую не могу решить.

Я хочу создать структуру таблицы, используя только ячейки памяти и без регистров. Я могу выделить достаточно места, учитывая объявление, но я не знаю, как сослаться на tab(x) place.

У меня есть команда STOREN n, которая хранит основную память (которая y_{0} для y_{y_{n}}) и LOADN n, что делает обратное, так: y_{0} <- <code>y_{y_{n}}.

Кроме этого, у меня есть

  • "STORE n" y_{n} <- y_{0}
  • "LOAD n" y_{0} <- y_{n}
  • IN C y_{0} += 1
  • DE C y_{0} -= 1
  • "ADD n "y_{0} += y_{n}
  • " SUB n "y_{0} -= y_{n}
  • " JUMP k "(переход на другую строку, записаны все условия <,>, =,! =, =>, <= ) </li>
  • ^ выше условных переходов работают + JPOS k JZERO k JNEG k, который переходит на k, если число поз / ноль / отрицание в y_{0}

Я уже Создана функция для настройки пользовательского значения в ячейке памяти и для управления циклами. Допустим, я храню итератор для y_1, fromVal для y_2 и toVal для y_3, и выделил ячейки памяти от 4 до 104 для вкладки таблицы (1: 100). А теперь с учетом этого ввода ...

let tab(1:100)
let x = 1
for i = 1 to 100:
  tab(i) = x 

... как я могу написать python код, который выводит правильные инструкции для выполнения sh кода выше в этом псевдо-ассемблерном коде? Я действительно больше не надеюсь и не знаю, как написать правильную функцию управления таблицами, которая могла бы выполнить задачу, как в приведенном выше примере кода.

...