Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.12.21;
Скачать: CL | DM;

Вниз

способ получения в EAX, значение флага cf?   Найти похожие ветки 

 
Ruzzz ©   (2008-11-15 16:50) [0]

привет! решил на асме функцию написать, вот:
type
 TSyms = Set of Char;

function CharInSet(Ch: Char; Syms: TSyms): Boolean;
asm
               // and     eax, 0FFh
               bt      [edx], eax
               jb      @yes
               xor     eax, eax
               ret
@yes:
               mov     eax, 1
end;


так вот, я вроде когда-то видел более красивый способ получения в EAX, значение флага cf? Подскажите а то асм запыл уже. По-моему все начиная с xor eax, eax, можна заменить на одну команду


 
Leonid Troyanovsky ©   (2008-11-15 16:54) [1]


> Ruzzz ©   (15.11.08 16:50)  

> привет! решил на асме функцию написать

А в чем смысл?

--
Regards, LVT.


 
AndreyV ©   (2008-11-15 17:35) [2]

> [0] Ruzzz ©   (15.11.08 16:50)

 xor eax,eax
 slc или как там сдвиг влево через флаг переноса

а
 ret
не хочеш заменить на
 jmp @no
?


 
Ruzzz ©   (2008-11-15 17:42) [3]

по моему есть команды которые пишут состояния флагов в EAX? Я про это!
Т.е. можно написать:
function CharInSet(Ch: Char; Syms: TSyms): Boolean;
asm
              bt      [edx], eax
              НУЖНАЯ КОМАНДА (пишеть флаг CF в EAX)
end;


 
Ruzzz ©   (2008-11-15 17:46) [4]

смысл такой:
const
 syms: set of char = ["0".."9", "A".."Z", "a".."z", "À".."ÿ"];
var
 s: string;
...
if CharInSet(s[1], syms) then ...


 
AndreyV ©   (2008-11-15 17:49) [5]

> [3] Ruzzz ©   (15.11.08 17:42)

Так тебе CF или все?
Да, нужная команда сдвига
 rcl
а переходы и вообще не надо.


 
Ruzzz ©   (2008-11-15 17:52) [6]

Разобрался
function CharInSet(Ch: Char; Syms: TSyms): Boolean;
asm
               and     eax, 0FFh
               bt      [edx], eax
               SETC    al
end;


 
AndreyV ©   (2008-11-15 17:53) [7]

> [4] Ruzzz ©   (15.11.08 17:46)

И нафиг тут ассемблер.



Страницы: 1 вся ветка

Текущий архив: 2008.12.21;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.022 c
2-1226648255
asddsa
2008-11-14 10:37
2008.12.21
Потоки в классах


15-1224514064
GrayFace
2008-10-20 18:47
2008.12.21
Как проследить, какие программы гоняют пакеты?


2-1226476773
leonidus
2008-11-12 10:59
2008.12.21
Непонятки с TStringGrid


15-1224734244
Slider007
2008-10-23 07:57
2008.12.21
С днем рождения ! 23 октября 2008 четверг


15-1224236239
DevilDevil
2008-10-17 13:37
2008.12.21
Чем D6 лучше, чем D5, а D7 - лучше D6 ?