Другие языки программирования и технологии

Как запрограммировано "условие выбора" (if) на низком уровне?

Вот в примере Капитана Гугла показаны две команды
Первая команда сравнения необходима для установки некоторого бита (флага) в некотором регистре (регистре флагов) в состояние 0 или 1. А дальше команда JNE проверяет состояние этого бита и в зависимости от его значения либо совершает переход по метке, либо нет!
Как совершается переход? Дело в том, что в машинном коде после команды JNE стоит либо физический абсолютный или относительный адрес или регистр, но в любом случае есть двоичное значение, которое является адресом куда переходить в случае выполнения условия или это значение получается путём увеличения программного счётчика PC на количество адресных слов, занятых этой командой. Это значение просто записывается в программный счётчик и далее уже процессор согласно значению. записанного в этом программном счётчике начинает считывать коды следующей команды для последующего её выполнения.
Если смог дочитать объяснения до конца, то более сокращённо вот здесь
http://www.pcmag.ru/encyclopedia/term.php?ID=3995
неплохо сказано
Руслан Журавлев
Руслан Журавлев
76 473
Лучший ответ
На процессорах x86/x64 - командами безусловного перехода JE, JNE, JG и т. д.
Например
CMP RAX, RBX ;сравнить содержимое регистров RAX и RBX
JNE Label ;Если результат - неравенство, перейти на метку Label
...
Label: ...
>Опять же стоит "Если"
А что ты хочешь, что бы там стояло ? =) Раз вопрос про условие — в ответе, конечно же, "если" на нужном ЯП.
----
>"если" здесь стоит в программе, которая в случае неравенства переходит на метку Label.
Ну так а где ему ещё стоять, как не в программе ?

>В таком случае каждое условие выбора создает свое.
Что своё ?

>Получается рекурсия.. .
О_о
Эм, может, я только предполагаю, но тебе стоит, в начале, прочитать, что такое рекурсия ? =)
AL
Alex Lexovic
37 556
асемблерной вставкой, только зачем? врядли это даст такую уж прибавку
http : // www. insidepro. com/ kk/ 144r .shtml
Daniar Sarbasov
Daniar Sarbasov
35 594
Мне кажется вы не до конца поняли Капитана Гугл. Условный оператор заложен в самой архитектуре процессора, т. е. реализован в железе. Словом "если" он просто проиллюстрировал его работу)