2012-06-04 2 views
3

Я изучаю язык ассемблера 6502 и не могу что-то решить. Я пытался разработать JavaScript 6502 assembler/emulator, и заметил, что большинство примеров есть раздел, который выглядит как:Как установить байты непосредственно с помощью DASM?

colors: 
    dcb 0,0,0,0,0,$9,$9,1,1,0,0,0,0,0 

Я пытался Google каких dcb средств, и ближе всего я должен десятичная кодировкой двоичный , Исходя из исходного кода, похоже, что ассемблер принимает значения и вставляет каждый из них в виде отдельного байта в текущей точке кода.

Я использую DASM локально для сборки моего кода, и он не поддерживает dcb. Есть ли эквивалентный способ в DASM для установки значений байтов непосредственно в коде, как это?

+3

Если вы еще не обнаружили, что означает 'dcb', после отправки вашего ответа директива' DC' означает Define Constant и 'B' для байта. – AusCBloke

+0

Другими распространенными мнемониками для этого в различных сборках были '.byt' или' .db' для байта данных (в этом случае '.dw' обычно будет работать для 16-битных значений, то есть слова данных). – LawrenceC

ответ

0

Ну, как это часто бывает, задание вопроса помогло мне найти ответ. Согласно this page, для этой цели используется .DC.

Так пример в этом вопросе будет выглядеть так:

colors: 
    .DC 0,0,0,0,0,$9,$9,1,1,0,0,0,0,0 
1

.DC работает отлично, но прямой эквивалент в DASM является

colors: 
    dc.b 0,0,0,0,0,$9,$9,1,1,0,0,0,0,0 

b для байтов, как сказал AusCBloke. Вы можете заменить его на w для слов (2 байта) или l для длинных слов (4 байта).

Вы правильно поняли, что цель dc.x заключается в том, чтобы вводить постоянные значения в текущее местоположение.

Смежные вопросы