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

Discussion in 'WASM.ASSEMBLER' started by Protorus, Nov 2, 2010.

  1. Protorus

    Protorus New Member

    Blog Posts:
    0
    Joined:
    Dec 30, 2009
    Messages:
    51
    Требуется сравнить регистр с константой. При равенстве сбросить флаг СF, иначе установить флаг CF.
    И это без ветвлений !!!

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

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

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

    CrystalIC New Member

    Blog Posts:
    0
    Joined:
    Jul 26, 2008
    Messages:
    500
    Code (Text):
    1.     cmp ax,0x1234
    2.     setne al
    3.     bt ax,0
     
  3. max7C4

    max7C4 New Member

    Blog Posts:
    0
    Joined:
    Mar 17, 2008
    Messages:
    1,203
    Code (Text):
    1. cmp ax, 0x1234
    2. setnz al;setnz dl
    3. shr al, 1;shr dl, 1;bt ax,0
    Code (Text):
    1. xor dx, dx
    2. sub ax, 0x1234
    3. cmp dx, ax
    да и с первых вариантом опередили, оладушек;)
    Code (Text):
    1. clc
    2. cmp AX, 0x1234
    3. je   @F
    4. stc
    5. @@:
    Вот это у вас немного не правильно. cmp изменяет флаг cf так что в clc нет никакого смысла. Вот если так
    Code (Text):
    1. cmp AX, 0x1234
    2. clc
    3. je   @F
    4. stc
    5. @@:
    другое дело.
     
  4. green

    green New Member

    Blog Posts:
    0
    Joined:
    Jul 15, 2003
    Messages:
    1,217
    Location:
    Ukraine
    Code (Text):
    1. xor reg, const
    2. neg reg
     
  5. Protorus

    Protorus New Member

    Blog Posts:
    0
    Joined:
    Dec 30, 2009
    Messages:
    51
    Неожиданно много вариантов и все рабочие. Спасибо всем. Вариантом от green воспользуюсь.
     
  6. Miyamoto

    Miyamoto New Member

    Blog Posts:
    0
    Joined:
    Oct 23, 2010
    Messages:
    46
    Protorus
    Ну дык CISC же. Хоть одна радость от интелло-подобных процессоров.
     
  7. MSoft

    MSoft New Member

    Blog Posts:
    0
    Joined:
    Dec 16, 2006
    Messages:
    2,854
    Че-то последнее время фобия пошла на ветвления :) простите мой оффтоп
     
  8. edemko

    edemko New Member

    Blog Posts:
    0
    Joined:
    Nov 25, 2009
    Messages:
    454
    В саду обрезка - потом будет большой урожай, MSoft :)
    простите мой оффтоп
     
  9. Kryashen

    Kryashen Андрей

    Blog Posts:
    0
    Joined:
    Nov 26, 2010
    Messages:
    1
    Location:
    Казань
    Спасибо green. Мне тоже помогло.