Столкнулся вот с какой бедой: В одном из исходников мне встретилась эта команда. Но MASM начал ругаться, мол камень твой не в том режиме (что за блин, исходник-то для Win32)... Порывшись в своих доках этой команды я не нашел. Гугл вообще посылает на страницы, связанные с Фортом. Вот и хотел спросить у Знающих - что за команда такая и чем ее можно заменить?
условный mov. cmove, если ZF=1, тогда пересылаем заменить можно типа так: Код (Text): je @f mov op1, op2 @@:
Совсем забыл... Я так понимаю, что возможны команды, типа CMOVNE, CMOVB и т.д. А есть у тебя справочник, более полный, чем мои?
Код (Text): # Команда: CMOVcc приемник, источник # Назначение:Условная пересылка данных # Процессор:P6 Это набор команд, которые копируют содержимое источника в приемник, если удовлетворяется то или иное условие (см. табл. 5). Источником может быть регистр общего назначения или переменная, а приемником — только регистр. Условие, которое должно удовлетворяться, — просто равенство нулю или единице тех или иных флагов из регистра FLAGS, но, если использовать команды CMOVcc сразу после команды СМР (сравнение) с теми же операндами, условия приобретают особый смысл, например: cmp ах,bх ; сравнить ах и bх cmovl ax,bx ; если ах < bх, скопировать bх в ах =)) наверно у тебя что нибудь типа .386 в начале исходника написано?...
Чего й то тут не то... Ну если просто, то поставь в начале .686 Вот с этим согласен: А вот с этим нет: ИМХО текстом и кодом написаны разные вещи. cmove заменяется как Код (Text): jne @f mov op1,op2 @@:
IceStudent Да. Ты прав. Сейчас поправлю. Вообщем, всем откликнувшимся спасибо. Скачал IntelAmdQuickRefV2_2.chm (с трудом нашел, надо заметить, на каком-то китайском сайте) - теперь подобных вопросов, достойных переноса в раздел BEGINNERS, думаю не возникнет...
_BC_ Точно, спутал с чем-то: "The CMOVcc instructions were introduced in the P6 family processors; however, these instructions may not be supported by all IA-32 processors."