Пробую вот так: Код (Text): .code start: mov eax, 4h mov dword ptr [data_], eax data: data_ db 0 end start Подскажите как правильно обращаться. ой.. перенесите в WASM.BEGINNERS
Bryan_ Во-первых переменная объявлена как BYTE, а пишут в нее DWORD, во вторых возьми PETools и поменяй аттрибуты секции .code на | WRITABLE.
у человека похоже дос-приложение(+1 к телепатеи)... можно в принципе и так обращацо, но лучше либо объявить data_ как двойное слово, либо обращацо к нему как к байту.
А когда загружается винда, у процесора вдруг отрастает память, 32- и 64-разрядные регистры и прочие вещи Разрядность системы означает, что она сама не использует какие-либо возможности машины. Но никто не запрещает этого делать программам. Вообще линкер должен ругаться, когда в 16-разрядном сегменте адресуют по 32-разрядному регистру. К сегменту кода обратиться - либо приравнять DS=CS, либо префиксом переопределения сегмента. А лучше com-файлы писать.