начал писать под винду: инструкции такие .386 .model flat,stdcall option casemap:none далее всяческий код, типа Код (Text): mov esi, offset slpRootPathName mov edi, offset commandl_2 mov ecx,2 rep movsb само собой проходит, но есть у меня много древнего кода, который я хучу тут использовать типа: Код (Text): mov [si],al mov [di+3],dl ну так ML его не пропускает: second.asm(154) : error A2155: cannot use 16-bit register with a 32-bit address second.asm(171) : error A2155: cannot use 16-bit register with a 32-bit address код рабочий, но править не хочу, дофига надо будет править.
Раньше (в DOS) память была страничная и адрес ограничивался размером страницы 65536 (16-bit). А в Win32 можно писать в пределах 4-х гигабайт (32-bit). Поэтому если пишешь под Win32, то указатели используй 32-битные - ESI,EDI вместо SI,DI и т.п.