камрады, помогите, надо под линухом либу пересобрать из исходников а там асм файл есть Код (Text): /* ********************* set precision ******************** */ ENTRY (P_SETP) pushl %ebp movl %esp,%ebp pushl %ebx под х32 собирается отлично, но либа нужна х64 а там gcc выдает Error suffix or operands invalid for 'push' очевидно надо код править. что не по корану в строке pushl %ebp ???
я это уже понял. я не могу найти описание команд и не понимаю что на что править. очевидно что push либо уже нет команды либо она ожидает 64 битный аргумент. хз я работал только с 32 битным асмом
Если говорить про 'push', то стек может уменьшаться либо на два байта, либо на восемь. Т.е. либо 'push bp', либо 'push rbp'. Команды остались те же (за некоторым исключением, но обратная совместимость поддерживается), их можно посмотреть в Intel Manual, например. Кроме того, конвенция вызова ф-ий поменялась, это тоже надо учесть.