Вопрос очень серьёзный. Сможет ли ЛЮБАЯ программа НЕ сравнивать вообще? - Компьютерные вопросы

Вопрос Вопрос очень серьёзный. Сможет ли ЛЮБАЯ программа НЕ сравнивать вообще?

Регистрация
6 Авг 2013
Сообщения
87
Репутация
0
Спасибо
0
Монет
0
Можно ли обойтись в ЛЮБОЙ программе без сравнения? Ну и исключить ПОЛНОСТЬЮ эту команду из процессора в случае утвердительного ответа.
 
Регистрация
20 Авг 2013
Сообщения
100
Репутация
-3
Спасибо
0
Монет
0
Команду процессора CMP можно исключить, но её можно заменить другими командами (вычитанием). Совсем исключить сравнение конечно нельзя. Без сравнения не может быть цикла и рекурсии.
 
Регистрация
20 Авг 2013
Сообщения
82
Репутация
0
Спасибо
0
Монет
0
В программе можно. Например, с помощью вычитания. Получился ноль - равны. Не ноль - не равны. Но это, я бы сказал, обфускация кода. В отношении процессора - это логическое устройство. Вычисления в нем реализуются с помощью операций алгебры логики. И запрещать в нем некоторые базовые логические операции - создавать себе сложности. А все - вообще не сможет работать.
 
Регистрация
9 Окт 2013
Сообщения
82
Репутация
1
Спасибо
0
Монет
0
в процессоре обычно нет как таковой обособленной уникальной операции сравнения в x86: есть cmp - это обрезанная операция вычитания. она делает все то же, кроме сохранения результата есть test - это обрезанная операция побитового and - то же самое. исключить в таком случае можно, но на производительности это скажется отрицательно - понадобятся лишние операции чтения данных из памяти либо лишние свободные регистры.
 
Регистрация
26 Июн 2013
Сообщения
93
Репутация
0
Спасибо
0
Монет
0
Если числа равны, то при вычислении их разности процессор установит флаг Z (ZF). И в ассемблерном коде программы поставим условный переход - по факту установки этого флага. Получаем проверку равенства. Если нужна проверка меньше/больше, то после вычитания производим условный переход по флагу C (CF).
 
Сверху Снизу