Главная страница
Библиотека (скачать книги)
Скачать софт
Введение в программирование
Стандарты для C++
Уроки по C#
Уроки по Python
HTML
Веб-дизайн
Ассемблер в среде Windows
ActiveX
Javascript
Общее о Линукс
Линукс - подробно
Линукс - новое
Delphi
Паскаль для начинающих
Турбопаскаль
Новости
Партнеры
Наши предложения
Архив новостей





Более сложный вариант инструкции if-eise позволяет выборочно выполнить одно из двух действий в зависимости от условия. Далее показан синтаксис инструкции на языке С + + :
if (условие)
{
<операторы 1>
}
else
{
<операторы 2>
}

Вариант этой инструкции на Delphi будет выглядеть немного по-другому: if (условие) then
begin
<операторы 1>
end
else
begin
<операторы 2>
end

В языке ассемблера нет таких конструкций, однако они довольно легко реализуются с помощью определенных последовательностей команд.
Рассмотрим, например, алгоритм проверки двух операндов на равенство и, в зависимости от результата, переход на ту или иную ветвь программы. На языке Pascal и соответственно на Delphi такой алгоритм имеет вид:
if (operandi = operand2) then
begin
end
else
begin
end

На Visual С + + .NET выражение будет выглядеть несколько иначе: if (operandi = operand2)
{
}
else
{
}

Язык ассемблера позволяет представить конструкцию if-eise довольно просто:
cmp operandi, operand2
je EQUAL
<команды 1>
jmp DIFF
EQUAL:
<команды 2>
DIFF:

Возможен и другой вариант:
cmp operandi, operand2
jne DIFF
<команды 2>
EXIT:
DIFF:
<команды 1>
jmp EXIT

Теперь мы знаем достаточно об инструкции if и можем применить наши знания на практике.
Рассмотрим пример, в котором необходимо написать условие сравнения двух переменных целочисленного типа х и Y. В зависимости от результата сравнения х принимает значение Y в случае, если х больше у, и остается неизменным, если х меньше или равен у.

Фрагмент кода на Delphi мог бы выглядеть так:
if X > Y then
X : = У;
В С + + этот же фрагмент кода будет выглядеть следующим образом:
if (X > Y)
X = У;

Ассемблерная версия будет такой:
mov ЕАХ, DWORD PTR Y
cmp EAX, DWORD PTR X
jge EXIT
mov DWORD PTR X, EAX
EXIT:


 
 
 

Библиотека программиста. 2009.
Администратор: admin@programmer-lib.ru