Разбираясь з темой звука скачал архив "MSPLAY.ZIP" предоставленный sadfsdfsdaf.
Увидел там исходники, и Бат-файл со строкой "tasm -85 -b msplay.asm MSPLAY.LVT".
Я в ТАСМ никогда особо не вникал. Но это меня заинтересовало, решил скачать TASM 3.2.
и расмотреть все. Далее я решил написать дискомпилятор для TASM 3.2 из LVT. Точнее "перекрутить" существующий у меня под МАДЛ на ТАСМ.
Понятное дело, что существуют там всякие IDA и т.д. но это уже отдельная история.
С "обычными" метками мой дискомпилятор работает вроде нормально (хотя еще тщательно не тестировал).
Ну тот меня "ударило в стопор"

дискомпиляция программы SPY.LVT.
В ней есть метки которые указывают на второй и третий байт, трехбайтовой команды, причем у той команды второй и третий байт тоже является меткой(!)
И вот я не понял, -
а как такое дискомпилировать в ТАСМ ?
вот пример из SPY.LVT.
Мой МАДЛовский дископилятор дискомпилирует это так
LABELp1(L91D1);LxiDE(L0000);
Что означает установить метку L91D1 на_адрес_где_метка_плюс_один, т.е. на младший байт команды LxiDE.
Ну а как такое "разруливается" ТАСМОм ? И "разруливается" ли вообще ?
Если бы вместо метки L0000 было числовое значение, можно бы было это решить! А тут метка!
И такого в SPY.LVT немало.
Вот еще.
LABELp1(L926F);LxiDE(LA000);
и вот
LABELp1(L92AF);LxiDE(L0000);
а тут вот вообще "весело"
LABELp1(LAD16);LABELp2(LAD17);LxiDE(LAEE0); - одна метка на младший, вторая на старший байт команды LxiDE, которая в параметре содержит метку.
С метками на второй (старший байт) (LABELp2) тоже "весело"
LABELp2(LAD17);LxiDE(LAEE0);
Правда, один раз только нашел такое, но все таки.
Короче,
как быть и что делать в таких случаях ?
или я чего-то туплю...
