Я программирую игру на ассемблере, и мне интересно, есть ли способ смешивать переменные длины в одной строке таким образом, чтобы вы могли определить множество переменных одинаковой длины в одной строке. Вот пример:

.Sprites:
    db $0f,120,39,$D506E3

Этот пример не работает с последним числом в этом списке, поскольку это не один байт. Но это:

.Sprites:
    dl $0f,120,39,$D506E3

Компилирует и вставляет пустое пространство между переменными. Причина, по которой я хочу иметь возможность изменять размер, заключается в том, что это будет таблица с множеством спрайтов, и каждый из них имеет один и тот же формат, поэтому было бы лучше оставить данные каждого в одной строке, чем использовать две строки, которые могли бы запутаться:

.Sprites:
    ?? $0f,120,39,$D506E3
    ?? $0b,110,39,$D5001C
    ?? $01,120,36,$D509A1
0
zane49er 18 Мар 2021 в 04:18

1 ответ

Лучший ответ

Я решил эту проблему, создав макрос в fasmg.

macro sprite? color*,x*,y*,spriteID*
    db color
    dw x
    db y
    dd spriteID
end macro
3
Peter Cordes 18 Мар 2021 в 05:28