Переход на 32-bit регистры
Я новичок в Ассемблере, и у меня вопрос по 32-разрядным регистрам. Как перейти к работе с нмми на tasm'е. Сначала компилировал проги с 16-битными регистрами на старом Tasm v.2.0, потом поставил себе пакет Tasm5, содержащий TASM,TASM32(V5.0) и TASMX(V4.1) Заменил в исходниках AX,BX и т.д. на EAX, EBX и т.д. и попробовал компильнуть на tasm32. Он трактанул EAX, EBX как <Undefined simbol>, как будто бы они необъявленные переменные, а не регистры. В чем дело? Ответьте, плз, новичку.
Первое ты должен указать директиву ассемблеру, что ты будешь пользоваться директивами ассемблера для соответствующего процессора.
Одна из
.386
.486
.586
Существую их разновидности к примеру .486p это позволяет использовать привилегированные инструкции данного процессора. Есть и другии инструкции.
Раз уж речь пошла про 32 разрядные регистры. То если ты пишешь программы для реального режима процессора, режима с которым работает DOS. То здесь мало изменений. Получаешь расширение регистров. Можешь пользоваться со процессором.
Но виндоус уже работает с защищенном режимом процессора. И там уже свои хитрости и тонкости. К примеру, тебе становится доступно 4ГБ памяти, виндоус ограничивает 2ГБ, часть инструкций становиться запрещенными. Но не пугайся виндоус моделирует среду для дос приложений, но не до конца.