3 года назад

Операторы IF ассемблер ( cmp )

Есть такой код: ________cmp y,5je m1cmp x,5jg m1cmp z,0________В нем "зашифровано" это:F= (4xx-3)/5y, если x>5 или y=5, дополнительное условие - z<>0F=(y-3)/z+2, или если z<>0 и x<=5F= y*y-3, в других случаяхТеперь вопрос:Почему написано "je m1" и все, если je это мнемокод равенства, а мне нужно проверить:  если x>5 илиy=5, дополнительное условие - z<>0, тут аж 3 условия. Более в коде нет условных операторов, по крайней мере cmp нету. В чем прикол?
Полный код:cmp y,5je m1cmp x,5jg m1cmp z,0je m2mov ax,yimul ysub ax,3jmp stopm1: mov ax,4imul ximul xsub ax,3mov bx,5xchg ax,bximul yxchg ax,bxidiv bxjmp stopm2: mov ax,ysub ax,3idiv zadd ax,2stop:mov f,ax
Можно еще раз и подробнее о самых cmp, а именно про условия в даном коде.Я так понял что каждый cmp открывается, после чего закрывается jmp stop. Но я так и не понял почему так мало условий записано...
И да, что такое m1 и m2, что за варианты?
Я похоже что понял: cmp y,5je m1cmp x,5jg m1cmp z,0je m2 Все эти условия относятся только к "если x>5 или y=5, дополнительное условие - z<>0" ? Тобишь это незавершенный код?

Lyucean (Гость) Assembler
3

Assembler: Операторы IF ассемблер ( cmp )

1 год назад Вопрос знающим ассемблер

ivokeчто это такое?оператор ассемблера или макрокоманда?если макрокоманда, то где находится макроопределение?

10litrov (Гость) 2 ответа
3
1 год назад Арифметические команды ассемблера

F= 7x+xx-1F= 5y/zF= 5x+3y+3Как это решить? А именно: я все время путаюсь с теми уравнениями где 2 переменных и более, там используется этот xchg, а я не понимаю как он работает. Было бы хорошо если бы вы показали как выглядит это в ассемблере...

KAVodov (Гость) 1 ответ
3
1 год назад Пожалуйста, помогите написать программу на ассемблере для микроконтроллера!!!

Составьте программу на языке ассемблера, которая реализует алгоритм решения задачи:Найти сумму чисел между двумя заданными числами. Исходные числа в ячейках с номерами 41, 42- резидентная память данных (РПД). Результат разместить в ячейках с номерами 56, 57 РПД. Буду очень благодарна за помощь!!!

valerakostolom (Гость) 1 ответ
3
Ответы (2)
dolfinkuzz (Гость) 3 года назад
3

Ну тогда логично, криво прочитал про ИЛИ. ИЛИ, ИЛИ. Первая проверка y\u003d5, je m1, вторая x\u003d5, jg m1, третья z\u003d0, сразу переход на третий вариант - это m2 метка, то есть отсечение 1 и 2 по Z идут. В случае никакого jm* - идёт второй вариант, т.к. x\u003c\u003d5 УЖЕ соблюдено в таком виде и jmp stop в конец, ну и далее из каждой метки в конец - m1 - первый вариант, m2 - третий вариант.

Пожаловаться
YOUlia (Гость) 3 года назад
3

А фиг его знает, полный код то ты не привёл, даже куда оно ведёт. Операторов сложных в x86 куча, не только прямое сравнение. inc/dec те же тоже на флаги влияют. Приводи полный код.

Пожаловаться
Операторы IF ассемблер ( cmp ) (Assembler) - вопросы и ответы на все случаи жизни - справочник Assembler i-vopros.ru