8 байт в стек (Fasm)?

Тема в разделе "WASM.ASSEMBLER", создана пользователем Arthur, 15 июн 2007.

  1. Arthur

    Arthur New Member

    Публикаций:
    0
    Регистрация:
    27 янв 2007
    Сообщения:
    494
    Доброе время суток.
    Неполучается занести в стек, метку в размере 8 байт.
    Пробовал инструкции push и pushq, одна фигня: Error: Illegal instruction.

    Пример:
    fdbl dq 12.1750
    ...
    pushq [fdbl] ; error
    push [fdbl] ; error

    pushq случаем не для x64 - процессоров?

    Можно ли зделать так:
    push dword [fdbl]
    push dword [fdbl+4]
    или наоборот?
    push dword [fdbl+4]
    push dword [fdbl]
     
  2. PaCHER

    PaCHER New Member

    Публикаций:
    0
    Регистрация:
    25 мар 2006
    Сообщения:
    852
    Можно
     
  3. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    Насколько я помню, в IA-32 такой команды нет)
    Ну пихай так. как тебе нужно. Стандарт - сначала младшая половина, потом старшая. то есть первый вариант. хотя смотря для чего тебе нужно
     
  4. shoo

    shoo New Member

    Публикаций:
    0
    Регистрация:
    17 июл 2003
    Сообщения:
    1.537
    Адрес:
    Ukraine
    наверное сначала пихать старшую часть, а потом младшую, чтобы в стеке младшая оказалась перед старшей в порядке возрастания адресов.
     
  5. Arthur

    Arthur New Member

    Публикаций:
    0
    Регистрация:
    27 янв 2007
    Сообщения:
    494
    значит редактор fasm'овский нагла обманул меня, подсветив инструкцию pushq цветом ключевых слов.

    я не могу разобраться как передать такую переменую к примеру ф-ции wprintf, вроде она так называется (из набора ntdll.dll).
     
  6. twgt

    twgt New Member

    Публикаций:
    0
    Регистрация:
    15 янв 2007
    Сообщения:
    1.494
    Стандартный редактор не подсвечивает слова.
     
  7. Djinn

    Djinn New Member

    Публикаций:
    0
    Регистрация:
    26 мар 2007
    Сообщения:
    22
    можно точнее? чёт вопроса не понял...
     
  8. kush

    kush New Member

    Публикаций:
    0
    Регистрация:
    24 май 2007
    Сообщения:
    46
    FASM:
    use64
    push qword [mem]
     
  9. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    Тьфу. Ну, конечно) Хотя это зависит от того, в каком порядке они ему нужны :P
     
  10. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    а как ты думаешь это заработает на x86 машине?
     
  11. Arthur

    Arthur New Member

    Публикаций:
    0
    Регистрация:
    27 янв 2007
    Сообщения:
    494
    use64 - непоканает на x86, скажет бурду пихаешь. И именно в этой архитектуре и реализованна инструкция pushq, адресация то 64-битная (8-байтная).

    twgt я имел обработанную Ральфом Иствудом, там он все прекрастно подсвечивает, но немного глючно (всмысле отделяет макродерективы и инструкции).
     
  12. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    Arthur
    бурду то не скажет, просто будет inc/dec + pushd.
     
  13. Arthur

    Arthur New Member

    Публикаций:
    0
    Регистрация:
    27 янв 2007
    Сообщения:
    494
    use64
    pushq [fdbl]
    use32

    скомпилировал, запустил и виндаус выдал бурду мол, к адресу обратилось не такому.
     
  14. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    хе, это уже зависит от fdbl, может повести, а может и нет.
     
  15. Arthur

    Arthur New Member

    Публикаций:
    0
    Регистрация:
    27 янв 2007
    Сообщения:
    494
    Ну значить пользоваться pushq для x86 я не буду :) А напишу универсальный макрос.
    Спасибо Всем за внимание!
     
  16. twgt

    twgt New Member

    Публикаций:
    0
    Регистрация:
    15 янв 2007
    Сообщения:
    1.494
    лишний раз доказывает что подсветка синтаксиса вводит в заблуждение :)
     
  17. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    twgt
    Да не, просто авторам подсветки не помешало бы парсить где встречается use32/use64 и соответствующим образом подсвечивать/неподсвечивать отдельные инструкции.