Я скачал симулятор MARIE с этого сайта и написал небольшую программу, которая просто объявляет массив шестнадцатеричных чисел, а затем пытается извлечь одно из этих чисел, используя адрес.
Проблема в том, что ассемблер жалуется, что loadi
не является распознанной инструкцией.Если я использую load
вместо loadi
, он соберет и выполнит и напечатает ожидаемый вывод (адрес нужного значения).
Я считаю, loadi
должно работать, и это инструкция, которую яМне нужно из-за моего предыдущего понимания, что он будет загружать значение, найденное по адресу, указанному операндом, а также некоторую документацию, которую я нашел на таких сайтах, как этот и этот .
Почему loadi
не распознается?Я делаю что-то неправильно?Может быть, существуют разные версии MARIE с различной поддержкой некоторых инструкций?
Мой код MARIE:
ORG 0
JUMP start
BADDR, hex 0003 / Date_B = 0003
EADDR, hex 001A / Date_E = 001A
/ data section begins
Data_B, hex 0102 / data begin address 3
hex 0105 / dec 261
hex 0106 / dec 262
hex 0108 / dec 264
hex 011A / dec 282
hex 0120 / dec 288
hex 0225 / dec 549
hex 0230 / dec 560 10
hex 0231 / dec 561
hex 0238 / dec 568
hex 0339 / dec 825
hex 0350 / dec 848
hex 0459 / dec 1113 000F
hex 055F / dec 1375
hex 066A / dec 1642
hex 0790
hex 08AB
hex 09AF
hex 0AB9
hex 0BBD
hex 0CC1
hex 0DCA
hex 0EFE / 0019
Data_E, hex 0FFE / data end address 001A
Count, dec 24 / the number of data
start, loadi mid
output
halt
mid, hex 000F / starting mid point