Программа LMC (Использование филиала) для хранения значений в разных местах - PullRequest
0 голосов
/ 09 мая 2018

Так что это для школьного проекта: мне нужно разработать программу (используя цикл ветвления), которая хранит 1 в ячейке памяти 91, 2 в 92 и т. Д. До 5 хранится в 95. Я не очень осведомлен LMC и хотел бы получить совет по этому вопросу. Я использую peterhigginson.co.uk/LMC для своего кода (если это помогает). Программа не может быть столь же простой, как хранилище 1 в 91, это должно быть сделано с использованием конечного цикла. Я легко могу это сделать в любой другой консоли кодирования, только не в LMC. Любая помощь приветствуется.

Спасибо!

1 Ответ

0 голосов
/ 18 июня 2018

Это не такой простой вопрос. Для кода, который пишет по разным адресам, вы должны составить правильные инструкции STA, используя кодировку, которая STA xx равна 3xx.

Вот один из способов сделать это:

L LDA COUNT
  ADD INS
  STA X
  LDA COUNT
X HLT
  LDA COUNT
  ADD ONE
  STA COUNT
  LDA FIVE
  SUB COUNT
  BRP L
  HLT

COUNT DAT 1
ONE   DAT 1
FIVE  DAT 5
INS   STA 90

Есть счетчик (хранится в COUNT), который идет от 1 до 5, и каждый раз, когда в цикле L, он добавляется к 390 (который хранится в INS) - это создает инструкции STA 91, STA 92, .., STA 95 на итерациях 1, 2, 3, 4, 5. Эта инструкция записывается в X, а затем выполняется с A, имеющим значение COUNT , Остальное просто увеличивается COUNT и останавливается, когда оно становится больше 5.

Вот прямая ссылка, на которой вы можете увидеть этот код, работающий на моем собственном эмуляторе LMC.

...