Добрый день, господа. У меня возникла необходимость переписать программу с ТАСМа на МАСМ(615). Практически все получилось без особых проблем(по крайней мере внешне), но возник ряд сложностей. Я перечислю строки вызвавшие затруднения, если кто знает как их перевести в МАСМ и поделится, буду очень признателен. Итак: Код (Text): mov cl, [byte bx+di] ;error A2206: missing operator in expression mov [byte ptr di], ASCNull ;error A2032: invalid use of register mov [byte di], ASCnull ;error A2206: missing operator in expression mov [byte di], '-' ;тоже mov dl, [byte si-1] ;тоже Вот и все. Приношу свои извинения за ламерские вопросы, но у меня большая проблема с Интернетом и поиски через гуглю затруднены до невозможности. Заранее благодарен всем откликнувшимся.
mov cl, byte [bx+di] mov byte ptr [di], ASCNull mov byte [di], ASCnull mov byte [di], '-' mov dl, byte [si-1] Может так... P.S.: сам пишу на FASM, так что сильно не бить
Arvis Посмотри в отладчике работающую прогу на tasm'е, в этом месте, чтоб не сомневаться.. в OllyDbg например, там синтаксис masm.
Если мне не изменяет память, в TASM-е byte - это всего лишь константа, равная 1. Так что byte [di], например, эквивалентно [di+1]. При указании типа операнда требуется ptr.
Да, забыл сказать, может кому поможет разобраться(сам я этого пока не сделал) - прога на тасме в режиме IDEAL. [to Turkish] Вообще-то это не кусок кода, а набор строк вырванных из разных частей проги, так что переписывать нужно каждую по отдельности. И еще одно: не ругается только masm.exe, а ml.exe все равно что-то не устраивает.
masm.exe ? Это ж какая версия-то MASM ? уже вроде есть ml.exe v8 По поводу ideal могу сказать, что FASM основан на подобном синтаксисе, может быть проще будет взять его? (если нужен coff, то он способен его создать.) С MASM IMHO много головняка будет, т.к. <font face="monospace]mov eax,foo</font><!--face--> он понимает как <font face="monospace]mov eax,[foo]</font><!--face-->, и ему нужно далать <font face="monospace]mov eax,offset foo</font><!--face-->. Из-за путаницы с режимами адресации прога и не работает наверное. Asterix дело говорит - смотри в Olly, там можно переключаться между режимами MASM / ideal.
Попробывал ее загрузить в Олли. Он что-то не то выдал, она уменя под ДОС, он умеет с такими работать?
Все, разобрался с помощью Turbo Debugger. Заработало после того, как изменил код предоставленный ProgramMan'ом на: Код (Text): mov [di], ASCNull mov byte ptr [di], '-' mov dl, [si-1] И дальше в том же духе. Спасибо всем кто помогал.