Скачиваний:
74
Добавлен:
08.03.2015
Размер:
116.22 Кб
Скачать

5. Команды обработки строк 6. Команды управления микропроцессором

5.1. Строковые примитивы 6.1. Управление флагами

MOVS msd,mss Переслать элемент: ES:[(DI)]=DS:[(SI)] CLC Сбросить CF (CF=0)

MOVSB Переслать байт: ES:[(DI)]=DS:[(SI)] CMC Инвертировать CF

MOVSW Переслать слово: ES:[(DI)]=DS:[(SI)] STC Установить CF (CF=1)

FA CMPS msd,mss Сравнить элементы: (F)=DS:[(SI)]-ES:[(DI)] CLD Сбросить DF (DF=0)

FA CMPSB Сравнить байты: (F)=DS:[(SI)]-ES:[(DI)] STD Установить DF (DF=1)

FA CMPSW Сравнить слова: (F)=DS:[(SI)]-ES:[(DI)] CLI Сбросить IF (IF=0)

FA SCAS msd Сравнить элементы: (F)=(ac)-ES:[(DI)] STI Установить IF (IF=1)

FA SCASB Сравнить байты: (F)=(AL)-ES:[(DI)]

FA SCASW Сравнить слова: (F)=(AX)-ES:[(DI)] 6.2. СИНХРОНИЗАЦИЯ С ВНЕШНИМИ СОБЫТИЯМИ

LODS mss Загрузить элемент: (ac)=DS:[(SI)] WAIT Ожидание внешнего события

LODSB Загрузить байт: (AL)=DS:[(SI)] ESC cop,opr Подключение сопpоцессоpа

LODSW Загрузить слово: (AX)=DS:[(SI)] LOCK Блокиpовка шины

STOS msd Запомнить элемент: ES:[(DI)]=(ac) NOP Холостая операция

STOSB Запомнить байт: ES:[(DI)]=(AL) HLT Останов с ожиданием прерывания

STOSW Запомнить слово: ES:[(DI)]=(AX)

ФОРМАТ РЕГИСТРА ФЛАГОВ F

D15D12

D11

D10

D9

D8

D7

D6

D5

D4

D3

D2

D1

D0

OF

DF

IF

TF

SF

ZF

AF

PF

CF

5.2. ПРЕФИКСЫ ПОВТОРЕНИЯ

REP Повторять,пока (CX)<>0

REPE /REPZ Повторять,пока (CX)<>0 и ZF=1(равно/нуль)

REPNE/REPNZ Повторять,пока (CX)<>0 и ZF=0(не равно/не нуль)

У с л о в н ы е о б о з н а ч е н и я

ac - аккумуляторы AL,AX port - номер порта ввода/вывода - 0—255

r8 - регистры AH,AL,BH,BL,CH,CL,DH,DL cnt - счетчик циклов - 1,CL

r16 - регистры AX,BX,CX,DX,SP,BP,SI,DI labl - имя метки

sr - сегментные регистры CS,DS,ES,SS name - имя подпрограммы или метки

m8 - байт в памяти, адресуемый любым способом disp8 - однобайтное смещение в коде команды

m16 - слово в памяти, адресуемое любым способом disp16 - двухбайтное смещение в коде команды

m32 - двойное слово в памяти, адресуемое любым способом disp - одно- или двухбайтное смещение в коде команды

msd - m8,m16 FA - арифметические флаги OF,SF,ZF,AF,PF,CF

mss - m8,m16 FC - управляющие флаги DF,IF,TF

mem - m8,m16,m32 type - тип прерывания - 0—255:

data - непосредственное значение 0- прерывание по ошибке деления

rm8 - r8,m8 1- прерывание пошагового режима (при TF=1)

rm16 - r16,m16 2- немаскируемое прерывание NMI

rm - r8,m8,r16,m16 3- прерывание по контрольной точке

rmd - r8,m8,r16,m16,data 4- прерывание по переполнению

words - r16,m16,sr 5—255 - прерывания пользователя

wordd - r16,m16,sr(кроме CS)

src - r8,m8,r16,m16,sr,data ? - неопределенное состояние флагов

dst - r8,m8,r16,m16,sr(кроме CS)  - неизменность флагов

/ - означает слово "кроме" и показывает исключительность последующих флагов по отношению к предыдущим

В командах групп 1,2,3 обращения типа "память-память" запрещены