На этом шаге мы рассмотрим переходы для беззнаковых данных.
Перейдем к рассмотрению переходов для беззнаковыых данных.
CMP AL, 60H JA UPPER RET UPPER: MOV AL, 5EH .
Первая команда в этой последовательности сбрасывает в нуль флаги CF и ZF. После выполнения
команды JA UPPER управление передается команде, помеченной меткой UPPER. Это говорит о том,
что содержимое регистра AL больше 60H.
SUB BX, 100H JAE ERROR RET ERROR: ADD DL,25H .
Первая команда сбрасывает в нуль флаг СF. После выполнения второй команды управление передается команде
с адресом ERROR. Это означает, что содержимое регистра BX больше числа 100H или равно ему.
CMP AL, TEST_BIT JB ABC ADD DL,AL RET ABC: MOV CX,1 .
Команда CMP AL,TEST_BIT устанавливает флаг СF в 1. После выполнения второй команды
управление передается по адресу ABC. Это означает, что содержание регистра AL меньше
содержимого ячейки памяти TEST_BIT. Если бы регистр AL и ячейка TEST_BIT содержали
одно и то же значение 00, то после выполнения первой команды флаг СF будет сброшен в 0 и выполнится
команда ADD DL,AL.
CMP NEW_DATA,01H JBE FOUND ADD AX,BX RET FOUND: MOV AX,0 .
Так как оба операнда первой команды равны друг другу, то после ее выполнения будет установлен в единицу флаг ZF. После выполнения второй команды управление будет передано на метку FOUND. Это означает, что содержимое ячейки памяти NEW_DATA меньше или равно значению второго операнда.
Если в ячейке памяти NEW_DATA будет находиться, например, число 24H, то будет выполняться команда ADD AX,BX.
На следующем шаге мы рассмотрим переходы для знаковых данных .