Иллюстрированный самоучитель по Assembler


386+ SETcc Установка байта по условию


Команды, обозначаемые (в книгах, не в программах!) SETcc, осуществляют запись в указанный байтовый операнд 1 или 0 в зависимости от одного из 16 условий, определяемых флагами состояния. Если условие ее выполняется, команда записывает в операнд 1; если условие не выполняется - 0.В качестве операнда можно использовать байтовый регистр или 8-битовую ячейку памяти.

В составе команд процессора предусмотрены следующие команды условной установки байта:

Команда Установить 1, если Условие установки 1

seta выше CF=0 и ZF=0

setae выше или равно CF=0

setb ниже CF= I

setbe ниже или равно CF=1 или ZF=1

setc перенос CF=1

sete равно ZF=1

setg больше ZF=0 или SF=OF

setge больше или равно SF=OF

setl меньше SF не равно OF

setle меньше или равно ZF=1 или SF не равно ОР

setna не выше CF=1 или ZF=1

setnae не выше и не равно CF=1

setnb не ниже CF=0

setnbe не ниже и не равно CF=0 и ZF=0

setnc нет переноса CF=0

setne не равно ZF=0

setng не больше ZF=1 или SF не равно OF

setnge не больше и не равно SF не равно OF

setnl не меньше SF=OF

setnle не меньше и не равно ZF=0 и SF=OF

setno нет переполнения OF=0

setnp нет четности PF=0

setns знаковый бит равен О SF=0

setnz не нуль ZF=0

seto переполнение OF=1

setp есть четность PF=1

setpe сумма битов четная PF=1

setpo сумма битов нечетная PF=0

sets знаковый бит равен SF=1

setz нуль ZF= I

Команды, осуществляющие установку по условию "выше - ниже", предназначены для анализа чисел без знака; команды, осуществляющие установку по условию "больше - меньшее", предназначены для анализа чисел со знаком.

Пример 1


cmp AX,35h

seta CH ;Если AX>35h, CH=1

;Если AX<=35h, CH=0

Пример 2


; В полях данных

flag db ?

;В программном сегменте

test AX,8000h

sete flag ;Если в АХ установлен бит 7,

;flag=l. Иначе flag=0

386Р+ SGDT Сохранение в памяти содержимого регистра таблицы глобальных дескрипторов


Команда копирует содержимое регистра таблицы глобальных дескрипторов GDTR (линейный базовый адрес таблицы и ее границу) в поле из 6 байт, указанное в качестве операнда.




Начало  Назад  Вперед