Форум: "Начинающим";
Текущий архив: 2008.12.21;
Скачать: [xml.tar.bz2];
Внизспособ получения в 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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.085 c