Инструкция 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