Команда JLE


Что такое JavaScript Что такое JavaScript

Если вы интересуетесь программированием вообще, и сайтостроением в частности, то вы наверняка слышали слово JavaScript. И, если вы до сих пор не узнали толком, что же это такое, то пришло время сделать это. Подробнее...

Команда JLE выполняет короткий переход, если первый операнд МЕНЬШЕ второго операнда или РАВЕН ему при выполнении операции сравнения с помощью команды CMP.

Синтаксис команды JLE:

JLE МЕТКА

О метках я рассказывал в статье о команде JMP. Повторяться не буду.

Инструкция JLE проверяет флаги SF, OF и ZF. Переход выполняется, если

  • SF не равен OF
  • или ZF = 1

Сама же инструкция JLE при работе никакие флаги не изменяет.

Инструкция JLE входит в список команд условного перехода, но, в отличие от многих из этих команд, может работать и с отрицательными числами.

Если вы помните, то команда JBE делает то же самое, то есть выполняет переход, если первый операнд меньше или равен второму. Однако команда JBE может работать только с положительными числами, в то время как JLE - как с положительными, так и с отрицательными.

Пример использования команды JLE приведён ниже:

	.model	tiny
	.code
	ORG 	100h
	
start:	

	MOV AL, -5      ; AL = -5
	MOV AH, 0       ; AH = 0
	CMP AL, AH      ; AL < AH, ZF = 0, CF = 0
	JBE lblJBE
	;Так как AL < AH, то УСЛОВИЕ ПЕРЕХОДА ВЫПОЛНЯЕТСЯ
	;Но команда JBE не работает с отрицательными числами,
	;поэтому следующие инструкции БУДУТ выполнены,
	;а перехода к метке lblJBE НЕ будет
	MOV AH, 20
	
lblJBE:		
	MOV AL, -5      ; AL = -5
	MOV AH, 0     	; AH = 6
	CMP AL, AH     	; AL < AH, ZF = 0, CF = 1
	JLE lblJLE
	;Так как AL < AH, то УСЛОВИЕ ПЕРЕХОДА ВЫПОЛНЯЕТСЯ
	;Поэтому следующие инструкции НЕ будут выполнены,
	;а будет переход сразу к метке lblJLE
	MOV AH, 20
	
lblJLE:		
	MOV AH, 15
	
	END	start

Для сравнения здесь также показана инструкция JBE с теми же параметрами. Однако, в случае с JBE не будет перехода к метке, хотя AL < AH, потому что инструкция JBE не работает с отрицательными числами.

А вот команда JLE выполнит переход к метке, потому что она сможет понять, что в AL находится отрицательное значение, которое, разумеется, меньше нуля (меньше числа в регистре AH).

Всё остальное подробно расписано комментариях, поэтому что-то ещё добавлять нет смысла. Если нужно более подробно, то см. видео выше.

В конце, как всегда, расскажу, почему эта команда ассемблера называется JLE. Буква J - это первая буква слова слова JUMP (прыжок, переход), буква L - это первая буква слова LESS (меньше, менее, ниже). А буква Е - это первая буква слова EQUAL (одинаковый, равный). Таким образом набор слов, от которых взяты первые буквы имени команды JLE, можно перевести как “переход, если меньше или равно”.



Первые шаги в программирование Первые шаги в программирование

Главный вопрос начинающего программиста – с чего начать? Вроде бы есть желание, но иногда «не знаешь, как начать думать, чтобы до такого додуматься». У человека, который никогда не имел дело с информационными технологиями, даже простые вопросы могут вызвать большие трудности и отнять много времени на решение. Подробнее...

Инфо-МАСТЕР ®
Все права защищены ©
e-mail: mail@info-master.su

Яндекс.Метрика