Цитата Сообщение от psb Посмотреть сообщение
ну конечно, вы опечатаетесь, сделаете вместо ld a,b - ld a,c, и вас все асмы предупредят.
Знаете, когда я был лет на 20 моложе мне тоже казалось что всякие строгие правила, ограничения, отсутствие каких-то мегафич которыми чешется попользоваться ровно два раза оскорбляют мое чувство творца, лишают меня свободы маневра, и вообще заставляют себя дураком чувствовать. Потом, с опытом у меня это "казалось" пропало.

Я даже не про макрос как таковой говорю. Я про косвенный эффект. Если я напишу код который не работает я буду разбираться в том что я написал и почему он не работает. Но я не имею желания разбираться в коде который я не писал. В моем конкретном случае я бы все равно в конце концов отладил код. Но то что нагенерил мне ассемблер дало интерференцию на другую процедуру которая работала правильно, вынуждая искать ошибку 1) в рабочем коде там где ее нет и 2) в эмуляторе.

Цитата Сообщение от psb Посмотреть сообщение
в нормальной программе, где стек используется как стек, ничего страшного не случится в принципе. про то, что от таких команд может произойти что-то непредвиденное явно написано в доке
Во первых, с каких это пор использовать стек так как мне нравится а не так как нравится форумчаниу psb вдруг стало ненормальным ? И почему ?

Во вторых я уже наверное в третьем сообщении пытаюсь от вас добиться, не соблаговолит ли глубокоуважаемый джинн показать все-таки это место в доке ? А то вот я ее читаю, читаю, а места этого не вижу ?

Цитата Сообщение от psb Посмотреть сообщение
может и EXA уничтожить?
Всенепременно. Во первых непонятно чем он лучше ex af,af'. Во вторых потому-что мнемоника стандартизирована. Хотите EXA - напишите макрос.

Цитата Сообщение от psb Посмотреть сообщение
и запретить по нескольку команд/параметров юзать?
Всенепременно. Потому-что по крайней мере на моей памяти один раз эту фичу поменяли (если не ошибаюсь то порядок занесения параметров в стек). Во вторых манипуляция со стеком в одну строку не наглядна, интуитивно понятнее когда это написано в столбик.

Более того, за 20 лет программирования на ассемблере я навскидку не припомню чтобы подобная фича когда-то было действительно нужна, за исключением нескольких случаев особо извращенных макросов. У некоторых программистов правда руки чешутся использовать эту порнографию для генерации пролога и эпилога, так в нормальных ассемблерах существует документированный механизм их генерации через декларацию процедуры с аргументом uses. Там вообще думать не надо, и пролог и симметричный эпилог генерируются автоматически.

Цитата Сообщение от psb Посмотреть сообщение
потом пойти дальше и запретить модули, case sensitive, мало ли, везде можно накосячить... я согласен лишь на отключение fakeops по дефолту.
Всенепременно. Оригинальный ассемблер всегда с рождения был case insensitive. Хотите ассемблер с шахматами и поэтессами, включайте все эти фишечки ручками, и сами потом кувыркайтесь с тем что вы там навключали.

То как в sjasm сделаны модули это вообще обнять и плакать. Во всех нормальных ассемблерах генерацию бинарного моделя делает линкер. А манмпуляции с подготовкой к линковке готового двоичного кода делает binobj. Во всяком случае у меня лично никогда проблем с этим не возникало. Зачем это в ассемблер тащить ? Делайте линкеры на свой вкус и цвет и настанет вам щщасте.

Более того, я бы ввел в ассемблер еще и строгую типизацию, запрещая допустим загружать в восьмибитный регистр значение переменной которая описана не как восьмибитная. Хочешь сделать запрещенный прием - напиши явно приведение типа, по крайней мере будет понятно что ты знаешь что делаешь, а не опечатался.

Я имею желание писать код, чтобы ассемблер максимально следил за тем что я делаю это правильно. И чтобы максимальное количество ошибок которые он способен отловить он отлавливал. В данном случае под "фичами" поданы сомнительные возможности которые увеличивают количество ошибок и ослабляют контроль за правильностью программы.