Как запустить разобранный код 6502?
Я должен программировать на сборке 6502. Я был вынужден использовать эмулятор Vice 128 Мне сказали, что Commodore 128 совместим с инструкциями 6502 Я новичок, и мне сделали практическую демонстрацию, но я ничего не понял. Был интерфейс из 80 столбцов, которые передавались с помощью команды (какой?) Инструкции на машинном языке или ассемблере (программе) вводились непосредственно в эту матрицу из 80 столбцов. Также данные вводятся в эту матрицу. Так это матрица памяти? Каждая строка представляет что? Мне сказали, что это дизассемблированный код 6502. Но я не знаю, что это значит, я очень запутался
Я хочу запустить эту простую программу, которая выполняет сумму двух чисел. Два числа хранятся на первой странице до слова ноль и до слова один. Я хочу сохранить результат во втором слове первой страницы. Я представлял, что первая строка содержит 80 слов. Это правильно? Так что я положил здесь данные в шестнадцатеричном (3 и 2).
$03 $02
LDA $00
ADC $01
STA $02
Но у меня есть синтаксическая ошибка. Я надеюсь, что кто-то может помочь мне, потому что это ускользает от меня, как все работает. заранее спасибо
2 ответа
Во-первых, в 6502 году мы используем байты, а не слова. (это 8-битная архитектура)
Вы не упоминаете, какой макрос ассемблер вы используете, но я предполагаю, что он пытается интерпретировать $03 как код операции, а не как данные. Я посмотрел два варианта в CA65 вы можете использовать
.BYTE $03 $02
в дазме вы используете
HEX 03 02
Кроме того, 6502 не имеет понятия 80 чего-либо (слова, строки, что угодно). Единственные 80, которые я могу вспомнить, это старые терминалы, которые имели 80 столбцов. Я не вижу, насколько это актуально здесь.
Как запустить разобранный код 6502?
Вы должны собрать обратно код.
Каждая инструкция 6502 обозначает 1, 2 или 3 байта, первый называется кодом операции, необязательный второй или третий - это данные, используемые инструкцией (операндом).
Вам нужна программа для перевода мнемоники инструкций в байты. На коммодоре было много таких программ.
В Commodore 128 был встроенный монитор, позволяющий вводить инструкции по сборке напрямую. Вы можете ввести его, набрав MONITOR
на бейсике Вам нужно будет сначала установить адрес, а затем использовать команды "сборка". Затем используйте команду "go" на начальном адресе, чтобы запустить его. Используйте команду BASIC POKE, чтобы установить местоположения, содержащие данные, прежде чем войти в монитор. Адрес 0B00
хороший адрес для использования, так как это буфер ленты, который не используется, кроме как во время ленточного ввода-вывода.
Удачи.