Вот в примере Капитана Гугла показаны две команды
Первая команда сравнения необходима для установки некоторого бита (флага) в некотором регистре (регистре флагов) в состояние 0 или 1. А дальше команда JNE проверяет состояние этого бита и в зависимости от его значения либо совершает переход по метке, либо нет!
Как совершается переход? Дело в том, что в машинном коде после команды JNE стоит либо физический абсолютный или относительный адрес или регистр, но в любом случае есть двоичное значение, которое является адресом куда переходить в случае выполнения условия или это значение получается путём увеличения программного счётчика PC на количество адресных слов, занятых этой командой. Это значение просто записывается в программный счётчик и далее уже процессор согласно значению. записанного в этом программном счётчике начинает считывать коды следующей команды для последующего её выполнения.
Если смог дочитать объяснения до конца, то более сокращённо вот здесь
http://www.pcmag.ru/encyclopedia/term.php?ID=3995
неплохо сказано
Другие языки программирования и технологии
Как запрограммировано "условие выбора" (if) на низком уровне?
На процессорах x86/x64 - командами безусловного перехода JE, JNE, JG и т. д.
Например
CMP RAX, RBX ;сравнить содержимое регистров RAX и RBX
JNE Label ;Если результат - неравенство, перейти на метку Label
...
Label: ...
Например
CMP RAX, RBX ;сравнить содержимое регистров RAX и RBX
JNE Label ;Если результат - неравенство, перейти на метку Label
...
Label: ...
>Опять же стоит "Если"
А что ты хочешь, что бы там стояло ? =) Раз вопрос про условие — в ответе, конечно же, "если" на нужном ЯП.
----
>"если" здесь стоит в программе, которая в случае неравенства переходит на метку Label.
Ну так а где ему ещё стоять, как не в программе ?
>В таком случае каждое условие выбора создает свое.
Что своё ?
>Получается рекурсия.. .
О_о
Эм, может, я только предполагаю, но тебе стоит, в начале, прочитать, что такое рекурсия ? =)
А что ты хочешь, что бы там стояло ? =) Раз вопрос про условие — в ответе, конечно же, "если" на нужном ЯП.
----
>"если" здесь стоит в программе, которая в случае неравенства переходит на метку Label.
Ну так а где ему ещё стоять, как не в программе ?
>В таком случае каждое условие выбора создает свое.
Что своё ?
>Получается рекурсия.. .
О_о
Эм, может, я только предполагаю, но тебе стоит, в начале, прочитать, что такое рекурсия ? =)
асемблерной вставкой, только зачем? врядли это даст такую уж прибавку
http : // www. insidepro. com/ kk/ 144r .shtml
http : // www. insidepro. com/ kk/ 144r .shtml
Мне кажется вы не до конца поняли Капитана Гугл. Условный оператор заложен в самой архитектуре процессора, т. е. реализован в железе. Словом "если" он просто проиллюстрировал его работу)
Похожие вопросы
- Господа програмисты, пишите ли вы после оператора выбора if альтернативу else и пустой оператор{}?
- как стать хакером (хотябы чтоб на низком уровне) что для этого нужно? подробней...
- c++, if Без условия ?
- Прогроммёры! C# Бошка не варит. Если есть условие if (A или Б) и истинными окажутся оба - условие будет true?
- VBA. Чем заменить множествееное использование конструкции "If...Then"?
- Как запрограммировать программу с таким условием?
- Как объединить два оператора " if "?
- Не могу правильно написать else if на Паскале
- Помогите найти ошибку. Программа не работает. Пишет ELSE без IF. Не могу понять в чем дело.
- [PASCAL] IF - ELSE IF - ELSE. Программирование.