Имхо кросс-ассемблеры - хорошо, но тем не менее все это полумеры. Вся эта "выгрузка в SNA" для отладки - лишние телодвижения. Нужна полноценная среда разработки, главный инструмент которой - ассемблер-ИНТЕРПРЕТАТОР (как бы дико это не звучало), то есть возможность эмулировать выполнение сразу ТЕКСТА отлаживаемой программы. Причем на этапе разработки пока необязательно привязанного к железу, то есть метки - это именно имена, а не адреса (если кодер явно не указал на привязку к физическим адресам), и объем кода/данных может быть любой. Работающий процесс можно будет в любой момент остановить, поменять значения в "регистрах", отредактировать несколько строк или даже вставить новый include и продолжить выполнение с того же самого (или любого другого) места. И уже когда все более-менее работает без логических багов, можно собирать "реальную" версию.
Тут основная сложность - хранение адресов в регистрах, когда возможны всякие сложения адресов со смещениями (размерами таблиц) и т.п. Да еще и к меткам могут быть дополнительные требования типа выравнивания.
И кстати для упрощения копания в фирменных игрушках (к примеру) те же возможности должны прилагаться и к отладке снапшотов, то есть опять-таки можно прервать выполнение SNA и дать команду типа "а выполни-ка ты с этого адреса
такой-то текст и вернись обратно" - или наоборот, в отлаживаемом тексте вставить "include такие-то адреса такого-то SNA". То есть чтобы можно было выполнять еще и любую смесь текста и уже скомпилированного кода.




Ответить с цитированием