Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции / Лекция 07.doc
Скачиваний:
12
Добавлен:
16.04.2013
Размер:
97.79 Кб
Скачать

Команды условного перехода

Таблица 7.2. Окончание команд условного перехода

Окончание

Значение

Окончание

Значение

a

выше (для беззнаковых значений)

p

паритет

b

ниже (для беззнаковых значений)

pe

паритет четный

c

перенос

po

паритет нечетный

e

равно

s

знак

g

больше (для значений со знаком)

z

нуль

l

меньше (для значений со знаком)

n

отрицание

o

переполнение

Команды управления процессором

Группа команд управления процессором представлена в табл. 7.3. Эта группа делится на три части.

Таблица 7.3. Команды управления процессором

Мнемокод / Операнды

Описание

Команды флагов

clc

сброс флага переноса

cld

сброс флага направления

cli

сброс флага прерывания

cmc

переключение флага переноса

stc

установка флага переноса

std

установка флага направления

sti

установка флага прерывания

Команды внешней синхронизации

esc

переключение на сопроцессор

hlt

остановка процессора

lock

блокировка шины доступа к памяти

wait

установка процессора в состояние ожидания

Прочие команды

nop

нет операции

Пример 7.6. Использование команды test.

test di,08h ;проверить 3-й бит

jz m1 ;если =0, то перейти на метку m1

stc ;иначе установить флаг переноса

Команды для работ со строками

Группа команд для работ со строками представлена в табл. 7.4. Эта группа делится на три части.

Таблица 7.4. Команды обработки строк

Мнемокод / Операнды

Описание

Команды пересылки строк

lods источник

загрузка строки байтов или строки слов

lodsb

загрузка строки байтов

lodsw

загрузка строки слов

movs назначение, источник

пересылка строки байтов или строки слов

movsb

пересылка строки байтов

movsw

пересылка строки слов

stos назначение

запись строки байтов или строки слов

stosb

запись строки байтов

stows

запись строки слов

Команды проверки строк

cmps назначение, источник

сравнение строк по байтам или словам

cmpsb

сравнение строк по байтам

cmpsw

сравнение строк по словам

scas назначение

поиск байта или слова в строке

scasb

поиск байта в строке

scasw

поиск слова в строке

Команды префикса повторения

rep

повтор

repe/repz

повтор, пока равно 0

repne/repnz

повтор, пока не равно 0

Все строковые команды используют для выполнения своих функций определенные регистры. В отличие от других команд, для которых вы сами выбираете используемые регистры, строковые команды требовательнее и всегда работают с одними и теми же комбинациями регистров – ds:si и es:di – с индексными регистрами строки-источника и строки-назначения, которые определяют смещения в данных и сегментах.

При операциях с байтами происходит вычитание или добавление 1 к регистру si и/или di; при операциях со словами добавляется или вычитается 2. Флаг направления df определяет, должна ли строковая команда приводить к уменьшению или увеличению si и di. Если df=1, тогда индексы изменяются в сторону меньших адресов. Если df=0, тогда индексы изменяются в сторону более высоких адресов. Для очистки флага df применяется команда cld (см. табл. 7.3.). Использование std (см. табл. 7.3.) приводит к установке флага df и автоматическому уменьшению si и di в сторону меньших адресов.

Пример 7.7. Использование команды movsb без префикса повторения.

cld ;автоувеличение si и di

mov cx, 100 ;использование сх в качестве счетчика

Repeat: movsb ;переслать 1 байт [es:di]  [ds:si]

dec cx ;счетчик цикла

jnz Repeat ;повторять цикл, пока cx<>0

Пример 7.8. Использование команды movsb с префиксом повторения rep.

cld ;автоувеличение si и di

mov cx, 100 ;использование сх в качестве счетчика

rep movsb ;переслать 100 байт [es:di]  [ds:si]

Соседние файлы в папке Лекции