Турбо Ассемблер в режиме MASM в высокой степени совместим с ассемблером MASM версии 5.2. Однако стопроцентная совместимость - это идеал, к которому можно только стремиться, т.к. формальная спецификация языка отсутствует, и даже различные версии MASM не полностью совместимы друг с другом.
Для большинства программ замена MASM на Турбо Ассемблер не повлечет за собой каких-либо осложнений. В некоторых случаях в Турбо Ассемблере появятся предупреждающие сообщения и сообщения об ошибках там, где их в MASM не было, что обычно означает, что ошибочный оператор не был выявлен макроассемблером MASM. Напри- мер, MASM не обнаруживает ошибок в следующих операторах:
abc EQU [BP+2] PUBLIC abc
и генерирует бессмысленный объектный код. В Турбо Ассемблере по- добная конструкция, а также ряд других двусмысленных конструкций, будут идентифицированы как ошибочные.
Если при ассемблировании программы пользователя с помощью Турбо Ассемблера возникнут какие-либо затруднения, то можно попы- таться использовать директиву QUIRKS. Например, если с помощью следующей командной строки:
TASM /JQUIRKS MYFILE
программа будет ассемблирована правильно, то следует добавить в начало исходного файла директиву QUIRKS. Еще лучше, используя сведения из этого приложения, определить операторы, для которых требуется директива QUIRKS, и после этого переписать соответству- ющие строки исходного файла так, чтобы отпала необходимость ис- пользования директивы QUIRKS.
Для максимальной совместимости с MASM следует использовать директиву NOSMART и режим QUIRKS.