Dzięki za wyjaśnienie. Konieczność stosowania przecinka w przypadku .BYTE, podczas gdy .BY tego nie wymaga, jest dla mnie brakiem konsekwencji, bez której da się jednak żyć. :-)
Natomiast łączenie w jedną liczbę cyfr rozdzielonych spacją uważam za błąd. Dla przykładu:
powinno generować błąd składni, a nie blok bajtów: $7B $7B $7B.
Drugą rzeczą, którą poruszyłem na początku, jest pierwsza liczba ze znakiem za dyrektywą .BY, która modyfikuje pozostałe wartości. W dokumentacji mowa jest, że poprzedzenie tej liczby znakiem dodawania powoduje zwiększenie pozostałych o wskazana wartość. Rzecz w tym, że umieszczenie minusa powoduje adekwatnie zmniejszenie. W ten sposób, aby wprowadzić liczbę ujemną jak pierwszą trzeba uciekać się do akrobacji w rodzaju "256-b". Dla lepszego zobrazowania ".by -2 1" wygeneruje jeden bajt o wartości -1 ($FF), podczas gdy: ".by 256-2 1 - dwa bajty o wartościach: -2 ($FE), 1.
Proponuję zmodyfikować Madsa tak, aby wartości po dyrektywie .BY były modyfikowane tylko wtedy, gdy przed pierwszą liczbą jest znak plusa. Znak minus powinien określać tylko i wyłącznie znak liczby. Jeżeli zaszłaby potrzeba zmniejszania wartości, można to zrealizować tak, jak robi to MAE: ".BY +-n".