Доброе время суток. Неполучается занести в стек, метку в размере 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]
Насколько я помню, в IA-32 такой команды нет) Ну пихай так. как тебе нужно. Стандарт - сначала младшая половина, потом старшая. то есть первый вариант. хотя смотря для чего тебе нужно
наверное сначала пихать старшую часть, а потом младшую, чтобы в стеке младшая оказалась перед старшей в порядке возрастания адресов.
значит редактор fasm'овский нагла обманул меня, подсветив инструкцию pushq цветом ключевых слов. я не могу разобраться как передать такую переменую к примеру ф-ции wprintf, вроде она так называется (из набора ntdll.dll).
use64 - непоканает на x86, скажет бурду пихаешь. И именно в этой архитектуре и реализованна инструкция pushq, адресация то 64-битная (8-байтная). twgt я имел обработанную Ральфом Иствудом, там он все прекрастно подсвечивает, но немного глючно (всмысле отделяет макродерективы и инструкции).
use64 pushq [fdbl] use32 скомпилировал, запустил и виндаус выдал бурду мол, к адресу обратилось не такому.
Ну значить пользоваться pushq для x86 я не буду А напишу универсальный макрос. Спасибо Всем за внимание!
twgt Да не, просто авторам подсветки не помешало бы парсить где встречается use32/use64 и соответствующим образом подсвечивать/неподсвечивать отдельные инструкции.