Инструкция JG


Ассемблер для Windows Ассемблер для Windows

Рассмотрены необходимые сведения для программирования Windows-приложений на ассемблерах MASM и TASM: разработка оконных и консольных приложений; создание динамических библиотек; многозадачное программирование; программирование в локальной сети, в том числе и с использованием сокетов; создание драйверов, работающих в режиме ядра; простые методы исследования программ и др. Подробнее...

Инструкция JG выполняет короткий переход, если первый операнд БОЛЬШЕ второго операнда при выполнении операции сравнения с помощью команды CMP.

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

JG МЕТКА

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

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

  • ZF = 0
  • SF = OF

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

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

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

	.model	tiny
	.code
	ORG 	100h
	
start:	

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

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

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



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

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