обращение к данным в сегменте кода

Тема в разделе "WASM.ASSEMBLER", создана пользователем Bryan_, 4 дек 2007.

  1. Bryan_

    Bryan_ New Member

    Публикаций:
    0
    Регистрация:
    17 июн 2007
    Сообщения:
    8
    Пробую вот так:

    Код (Text):
    1. .code
    2.  
    3. start:
    4.  
    5.     mov eax, 4h
    6.     mov dword ptr [data_], eax
    7.  
    8. data:
    9.   data_ db 0
    10.  
    11. end start
    Подскажите как правильно обращаться.

    ой.. перенесите в WASM.BEGINNERS :)
     
  2. Noble Ghost

    Noble Ghost New Member

    Публикаций:
    0
    Регистрация:
    28 апр 2004
    Сообщения:
    204
    Адрес:
    Russia
    а что ты хочешь сделать-то? :)
     
  3. Bryan_

    Bryan_ New Member

    Публикаций:
    0
    Регистрация:
    17 июн 2007
    Сообщения:
    8
    Записать что нибудь в data_
     
  4. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    а секция кода у вас имеет доступ на запись?
     
  5. Mental_Mirror

    Mental_Mirror New Member

    Публикаций:
    0
    Регистрация:
    7 май 2007
    Сообщения:
    431
    Bryan_
    Во-первых переменная объявлена как BYTE, а пишут в нее DWORD, во вторых возьми PETools и поменяй аттрибуты секции .code на | WRITABLE.
     
  6. Freeman

    Freeman New Member

    Публикаций:
    0
    Регистрация:
    10 фев 2005
    Сообщения:
    1.385
    Адрес:
    Ukraine
    у человека похоже дос-приложение(+1 к телепатеи)...
    можно в принципе и так обращацо, но лучше либо объявить data_ как двойное слово, либо обращацо к нему как к байту.
     
  7. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    никак не похоже, регистры 32 разрядные :)
     
  8. censored

    censored New Member

    Публикаций:
    0
    Регистрация:
    5 июл 2005
    Сообщения:
    1.615
    Адрес:
    деревня "Анонимные Прокси"
    Asterix
    а что мешает в досе c eax работать? .386?
     
  9. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    я всегда считал что дос 16 разрядная система
     
  10. Vov4ick

    Vov4ick Владимир

    Публикаций:
    0
    Регистрация:
    8 окт 2006
    Сообщения:
    581
    Адрес:
    МО
    А когда загружается винда, у процесора вдруг отрастает память, 32- и 64-разрядные регистры и прочие вещи :derisive:
    Разрядность системы означает, что она сама не использует какие-либо возможности машины. Но никто не запрещает этого делать программам. :)
    Вообще линкер должен ругаться, когда в 16-разрядном сегменте адресуют по 32-разрядному регистру.
    К сегменту кода обратиться - либо приравнять DS=CS, либо префиксом переопределения сегмента. А лучше com-файлы писать.