Инструкция JNB


Как выучить английский Как выучить английский

В наше время любой человек должен знать английский язык. А тем более программист. Потому что довольно большая часть документации существует только на английском. А профессионал не может ждать, пока кто-то переведёт ему документацию. Он должен уметь быстро получать нужную инфорамцию и использовать её, независимо от того, на каком она языке - на английском или на русском... Ссылки на курсы по английскому...

Инструкция JNB в Ассемблере выполняет короткий переход, если первый операнд НЕ меньше второго (то есть больше или равен второму) при выполнении команды CMP. Синтаксис:

JNB МЕТКА

После выполнения этой команды флаги не изменяются.

Алгоритм работы команды:

Если CF = 0 или ZF=1, то выполнить переход к 
МЕТКЕ.

Команда работает с числами БЕЗ знака (то есть только с неотрицательными числами).

Пример:

	.model	tiny
	.code
	ORG 	100h
	
start:	

	MOV AL, 5      ; AL = 5
	MOV AH, 5      ; AH = 5
	CMP AL, AH     ; AL = AH, ZF = 1
	JNB lbl_1
	;Так как AL = AH, то УСЛОВИЕ ПЕРЕХОДА ВЫПОЛНЯЕТСЯ,
	;а следующие инструкции НЕ выполняются, 
	;так как программа переходит к метке lbl_1
	MOV AL, 100    ; AL = 5
	
lbl_1:	
	MOV AH, 15 
	
	CMP AH, AL     ; AH > AL, CF = 0
	JNB lbl_2
	;Так как AH > AL, то УСЛОВИЕ ПЕРЕХОДА ВЫПОЛНЯЕТСЯ,
	;а следующие инструкции НЕ выполняются, 
	;так как программа переходит к метке lbl_2
	MOV AL, 100    ; AL = 5
	
lbl_2:	
	MOV AH, 0   
		
	RET
	
	END	start

Напоследок, как всегда, о происхождении аббревиатуры JNB.

JNB - это Jump if Not Below (переход, если НЕ меньше).

ПРИМЕЧАНИЕ
Чтобы не путать БОЛЬШЕ и МЕНЬШЕ (GREAT и LESS), которые используются при сравнении операндов со знаком, при сравнении операндов БЕЗ знака используются понятия ABOVE и BELOW (ВЫШЕ и НИЖЕ).



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

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