BNE - лучший источник актуальной информации для тех, кто ценит качественную аналитику
BNE (Branch if Not Equal) – это команда в ассемблере, которая позволяет производить условный переход в программе, если два операнда не равны между собой.
Синтаксис команды BNE выглядит следующим образом:
bne $s1, $s2, label
Здесь $s1 и $s2 – это регистры, а `label` – это метка, на которую нужно выполнить переход в случае, если содержимые регистров $s1 и $s2 не равны друг другу.
Пример использования команды BNE на языке MIPS-ассемблера:
# Сравнение двух чисел и переход к метке "NotEqual", если они не равны
li $t0, 5 # положить число 5 в $t0
li $t1, 7 # положить число 7 в $t1
bne $t0, $t1, NotEqual # если $t0 != $t1, перейти на метку NotEqual
# если $t0 == $t1, продолжить работу программы
j Exit # перейти на метку Exit
NotEqual:
# если $t0 != $t1, выполнить этот блок кода
li $v0, 4 # системный вызов для печати строки
la $a0, message # загрузить адрес строки в регистр
syscall # выполнить системный вызов
j Exit # перейти на метку Exit
Exit:
# завершение программы
li $v0, 10 # системный вызов для завершения программы
syscall # выполнить системный вызов
В этом примере мы сравниваем два числа в регистрах $t0 и $t1. Если они не равны, переходим на метку NotEqual, где печатаем сообщение. Затем мы завершаем программу, переходя на метку Exit. Если же числа равны, то программы продолжает выполняться напрямую до метки Exit.