PC-01 Lviv http://pc01.lviv.ua/forum/ |
|
LVTtoTASM http://pc01.lviv.ua/forum/viewtopic.php?f=20&t=386 |
Page 1 of 1 |
Author: | als [ 12 Jan 2021, 19:06 ] |
Post subject: | LVTtoTASM |
Разбираясь з темой звука скачал архив "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); Правда, один раз только нашел такое, но все таки. Короче, как быть и что делать в таких случаях ? или я чего-то туплю... |
Author: | als [ 14 Jan 2021, 11:00 ] |
Post subject: | Re: LVTtoTASM |
Attachment:
В данном архиве находится по сути целая среда разработки LVTtoTASM0.exe, LVTtoTASMm.exe — декомпиляторы, TASM.EXE, TASM85.TAB - компилятор TASM 3.2 SASEmulator - эмулятор. Распаковываем и запускаем TEST0.bat TESTM.bat |
Author: | als [ 14 Jan 2021, 18:39 ] |
Post subject: | Re: LVTtoTASM |
Хотел декомпиляторы "перекрутить" для FASM. Вот только не знаю - как TASM85.TAB "прикрутить" (использовать) к FASM ? Может кто подскажет. Может sadfsdfsdaf знает, подскажи плиз ? |
Author: | Zelya [ 19 Jan 2021, 16:52 ] |
Post subject: | Re: LVTtoTASM |
Quote: В ней есть метки которые указывают на второй и третий байт, трехбайтовой команды, причем у той команды второй и третий байт тоже является меткой(!)
Такое используется довольно часто. Программа динамически изменяет код. Чаще всего - это адрес перехода. Но бывает, что условный переходможет меняться на безусловный, или же меняться аругмент +1/-1 и т.д.
|
Author: | als [ 19 Jan 2021, 17:46 ] |
Post subject: | Re: LVTtoTASM |
Quote: Quote: В ней есть метки которые указывают на второй и третий байт, трехбайтовой команды, причем у той команды второй и третий байт тоже является меткой(!)
Такое используется довольно часто. Программа динамически изменяет код. Чаще всего - это адрес перехода. Но бывает, что условный переходможет меняться на безусловный, или же меняться аругмент +1/-1 и т.д.
Вот конкретный пример: LABELp1(L91D1);LxiDE(L0000); Или же другими словами это так: $91D0: LXI DE, $91D1: L91D1: (второй байт (младший, команды LXI DE)) $91D2: (третий байт (старший, команды LXI DE)) Как всё такие такое на ТАСМе пишется ? |
Author: | Zelya [ 19 Jan 2021, 19:20 ] |
Post subject: | Re: LVTtoTASM |
Как в тасме - не знаю. Мне было бы удобно приблизительно так: $0010: LABEL_1: JMP LABEL_2 .... $0100: LXI HL, LABEL_3 $0103: SHLD LABEL_1 + 1 |
Author: | als [ 19 Jan 2021, 20:34 ] |
Post subject: | Re: LVTtoTASM |
Quote:
Как в тасме - не знаю. Мне было бы удобно приблизительно так:
Слушай, надо будет попробовать такое в ТАСМе (LABEL_1 + 1) может действительно работает там такое.
$0010: LABEL_1: JMP LABEL_2 .... $0100: LXI HL, LABEL_3 $0103: SHLD LABEL_1 + 1 |
Author: | als [ 17 Feb 2023, 19:09 ] |
Post subject: | Re: LVTtoTASM |
Дивно, що я не виложив сюди LVTtoTASM2 (з "примочкою" HOFAF.exe). Attachment:
|
Page 1 of 1 | All times are UTC+03:00 |
Powered by phpBB® Forum Software © phpBB Limited https://www.phpbb.com/ |