Скобки

Тема в разделе "WASM.BEGINNERS", создана пользователем maestro-ant, 17 авг 2006.

  1. maestro-ant

    maestro-ant Member

    Публикаций:
    0
    Регистрация:
    23 июл 2006
    Сообщения:
    112
    Вопрос может и примитивный, но нет описания на руском. Обьясните пожалуйста что на фасме означают квадратные скобки []?
     
  2. mix_mix

    mix_mix Михаил

    Публикаций:
    0
    Регистрация:
    8 окт 2005
    Сообщения:
    277
    Адрес:
    Токио
    Код (Text):
    1. fasm:
    2. mov eax, [ebx]
    3. masm:
    4. mov eax, dword ptr[ebx]
    5.  
    6. fasm:
    7. abc dd 0
    8. mov eax, [abc]
    9. masm:
    10. abc dd 0
    11. mov eax, abc
    12.  
    13. fasm:
    14. abc dd 0
    15. mov eax, abc
    16. masm:
    17. abc dd 0
    18. mov eax, offset abc
    Надеюсь, понятно
     
  3. maestro-ant

    maestro-ant Member

    Публикаций:
    0
    Регистрация:
    23 июл 2006
    Сообщения:
    112
    Я понял, что это связано с совместимостю типов, но какя разница тут?
    это
    abc dd 0
    mov eax, [abc]

    и это
    abc dd 0
    mov eax, abc

    прошу прощения я новичёк...
     
  4. madhex

    madhex New Member

    Публикаций:
    0
    Регистрация:
    17 авг 2006
    Сообщения:
    12
    скобки говорят об адресации к памяти,
    например
    mov eax,666
    положит в еах 666.
    mov [eax],666
    положит 666 в ячейку памяти адрес которой лежит в еах
    это справедливо и для масма и для фасма и для тасма..
     
  5. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    maestro-ant
    В масме никакой. В фасме в первом случае загрузишь данные из abc, во втором случае - адрес переменной abc.
     
  6. Ustus

    Ustus New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2005
    Сообщения:
    834
    Адрес:
    Харьков
    IceStudent
    дополню :)
    tasm и wasm в этом подобны masm -

    a dd 555

    mov eax, a
    mov eax, [a]
    mov eax, dword ptr a
    - равноценны, заносят в eax значение переменной a

    mov eax, offset a
    mov eax, offset [a]
    - заносят в eax адрес a

    mov eax, 666
    mov eax, [666]
    -заносят в eax 666, причем:
    mov eax, dword ptr [666] - тоже, с-собака, и я как-то на этом подкололся, а чтобы зачитать содержимое по адресу 666 надо писать во как:
    mov eax, dword ptr [ds:666]
    :dntknw: бред, ИМХО. А fasm'овский синтаксис тоже не без греха... ближе всего мне был tasm'овский ideal, но... как говорили древние римляне consuetudo est altera natura - очень тяжко перехходить с одного на другой и обратно - и я его забросил. :dntknw:
     
  7. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    Даже так? Бред.. Разве что будет транслироваться в lea eax,[a]