mov rax, gs:58h

Тема в разделе "WASM.BEGINNERS", создана пользователем r00tk1d, 30 янв 2009.

  1. r00tk1d

    r00tk1d New Member

    Публикаций:
    0
    Регистрация:
    20 окт 2007
    Сообщения:
    3
    Всем привет. Столкнулся с проблемой, что ml.exe для x64 не понимает инструкции
    assume gs:nothing
    что в результате выходит
    Код (Text):
    1. test.asm(4) : error A2008: syntax error : gs
    2. test.asm(33) : error A2027: operand must be a memory expression
    3.  
    4. line 4:
    5.     assume  gs:nothing
    6.  
    7. line 33:
    8.     mov rax, gs:58h
    как быть?
     
  2. reverser

    reverser New Member

    Публикаций:
    0
    Регистрация:
    27 янв 2004
    Сообщения:
    615
    qword ptr?
     
  3. murder

    murder Member

    Публикаций:
    0
    Регистрация:
    3 июн 2007
    Сообщения:
    628
    Может
    Код (Text):
    1. push word 0
    2. pop  gs
    3. mov  rax,qword[gs:58h]
     
  4. Pavia

    Pavia Well-Known Member

    Публикаций:
    0
    Регистрация:
    17 июн 2003
    Сообщения:
    2.409
    Адрес:
    Fryazino
    r00tk1d
    В x64 сегментые регистры используется иначи чем в 32. Сегментый регистр теперь не имеет базу ноль и соответствующий лимит. Поэтому
    неимеет смысла.
    Поповоду второй ошибки.
    Код (Text):
    1. mov rax, qword ptr[gs:58h]
     
  5. Phantom_84

    Phantom_84 New Member

    Публикаций:
    0
    Регистрация:
    6 июн 2007
    Сообщения:
    820
    Ну, для обращения через gs база сегмента как раз-таки может быть ненулевой. Особой проблемы нет и в том, что не работает директива assume. Используй префикс переопределения сегмента везде, где нужно адресовать переменные относительно базы из gs.

    В представленной инструкции размерность операнда определяется по разрядности регистра rax. Переопределять размерность нужно только тогда, когда в качестве второго параметра указана переменная другой размерности (чего мы не наблюдаем). Наиболее правильный вариант записи инструкции:
    Код (Text):
    1. mov rax, gs:[58h] ; [gs:58h] для fasm