Как запустить разобранный код 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 хороший адрес для использования, так как это буфер ленты, который не используется, кроме как во время ленточного ввода-вывода.

Удачи.

Другие вопросы по тегам