Как сделать CF = !ZF ?

Тема в разделе "WASM.ASSEMBLER", создана пользователем Protorus, 2 ноя 2010.

  1. Protorus

    Protorus New Member

    Публикаций:
    0
    Регистрация:
    30 дек 2009
    Сообщения:
    51
    Требуется сравнить регистр с константой. При равенстве сбросить флаг СF, иначе установить флаг CF.
    И это без ветвлений !!!

    Если в коде объяснять, то так:

    clc
    cmp AX, 0x1234
    je @F
    stc
    @@:

    Вроде как нужно взять флаг ZF после сравнения (cmp AX, 0x1234), инвертировать его и перенести в CF ?
    Это можно сделать?
     
  2. CrystalIC

    CrystalIC New Member

    Публикаций:
    0
    Регистрация:
    26 июл 2008
    Сообщения:
    500
    Код (Text):
    1.     cmp ax,0x1234
    2.     setne al
    3.     bt ax,0
     
  3. max7C4

    max7C4 New Member

    Публикаций:
    0
    Регистрация:
    17 мар 2008
    Сообщения:
    1.203
    Код (Text):
    1. cmp ax, 0x1234
    2. setnz al;setnz dl
    3. shr al, 1;shr dl, 1;bt ax,0
    Код (Text):
    1. xor dx, dx
    2. sub ax, 0x1234
    3. cmp dx, ax
    да и с первых вариантом опередили, оладушек;)
    Код (Text):
    1. clc
    2. cmp AX, 0x1234
    3. je   @F
    4. stc
    5. @@:
    Вот это у вас немного не правильно. cmp изменяет флаг cf так что в clc нет никакого смысла. Вот если так
    Код (Text):
    1. cmp AX, 0x1234
    2. clc
    3. je   @F
    4. stc
    5. @@:
    другое дело.
     
  4. green

    green New Member

    Публикаций:
    0
    Регистрация:
    15 июл 2003
    Сообщения:
    1.217
    Адрес:
    Ukraine
    Код (Text):
    1. xor reg, const
    2. neg reg
     
  5. Protorus

    Protorus New Member

    Публикаций:
    0
    Регистрация:
    30 дек 2009
    Сообщения:
    51
    Неожиданно много вариантов и все рабочие. Спасибо всем. Вариантом от green воспользуюсь.
     
  6. Miyamoto

    Miyamoto New Member

    Публикаций:
    0
    Регистрация:
    23 окт 2010
    Сообщения:
    46
    Protorus
    Ну дык CISC же. Хоть одна радость от интелло-подобных процессоров.
     
  7. MSoft

    MSoft New Member

    Публикаций:
    0
    Регистрация:
    16 дек 2006
    Сообщения:
    2.854
    Че-то последнее время фобия пошла на ветвления :) простите мой оффтоп
     
  8. edemko

    edemko New Member

    Публикаций:
    0
    Регистрация:
    25 ноя 2009
    Сообщения:
    454
    В саду обрезка - потом будет большой урожай, MSoft :)
    простите мой оффтоп
     
  9. Kryashen

    Kryashen Андрей

    Публикаций:
    0
    Регистрация:
    26 ноя 2010
    Сообщения:
    1
    Адрес:
    Казань
    Спасибо green. Мне тоже помогло.