Помогите переписать в asm-синтаксисе

Тема в разделе "WASM.BEGINNERS", создана пользователем _animaTOR_, 11 сен 2008.

  1. _animaTOR_

    _animaTOR_ New Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    58
    Добрый день
    Помогите переписать в asm-синтаксисе
    Код (Text):
    1. #define TOLONG(a, b) ((unsigned long) (((unsigned short) (a)) | ((unsigned long) ((unsigned short) (b)))<<16))
    не пойму какая операцич следом за какой выполняется.
     
  2. CyberManiac

    CyberManiac New Member

    Публикаций:
    0
    Регистрация:
    2 сен 2003
    Сообщения:
    2.473
    Адрес:
    Russia
    А это неважно. Главное, что OR - последняя.
     
  3. Magnum

    Magnum New Member

    Публикаций:
    0
    Регистрация:
    29 дек 2007
    Сообщения:
    925
    a dw 1234
    b dw 5678

    ....
    movzx eax, word ptr [a]
    movzx ebx, word ptr
    shl ebx, 16
    or eax, ebx
     
  4. _animaTOR_

    _animaTOR_ New Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    58
    спасибо
     
  5. Magnum

    Magnum New Member

    Публикаций:
    0
    Регистрация:
    29 дек 2007
    Сообщения:
    925
  6. DEEP

    DEEP Андрей

    Публикаций:
    0
    Регистрация:
    27 апр 2008
    Сообщения:
    491
    Адрес:
    г. Владимир
    Magnum

    тогда уж так:

    MOVZX EAX, WORD PTR
    SHL EAX, 16
    MOV AX, WORD PTR [a]

    ps. а если ворды располагаются в памяти друг за другом (как вообще-то обычно и бывает) - то можно просто обратиться как к DWORD к адресу первого ворда ;)
     
  7. Magnum

    Magnum New Member

    Публикаций:
    0
    Регистрация:
    29 дек 2007
    Сообщения:
    925
    DEEP
    Если ворды и располагаются друг за другом, то не факт, что в нужной последовательности.
    Плюс не факт, что работа идет только с 2мя вордами, а не с **тью


    ЗЫ: да, ваш вариант оптимальнее будет :)
     
  8. CyberManiac

    CyberManiac New Member

    Публикаций:
    0
    Регистрация:
    2 сен 2003
    Сообщения:
    2.473
    Адрес:
    Russia
    Magnum
    Объявить как структуру без выравнивания, и будут идти как заказано.