- •Система команд микропроцессоров к1810вмв6/к1810вм88
- •1. Команды пересылки данных 4. Команды передачи управления
- •5. Команды обработки строк 6. Команды управления микропроцессором
- •5.1. Строковые примитивы 6.1. Управление флагами
- •У с л о в н ы е о б о з н а ч е н и я
- •Выбор команд условных переходов в сочетании с командами сравнения
- •Дополнительные команды мп 80286
- •Содержание
5. Команды обработки строк 6. Команды управления микропроцессором
5.1. Строковые примитивы 6.1. Управление флагами
MOVS msd,mss Переслать элемент: 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 msd,mss Сравнить элементы: (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 msd Сравнить элементы: (F)=(ac)-ES:[(DI)] STI Установить IF (IF=1)
FA SCASB Сравнить байты: (F)=(AL)-ES:[(DI)]
FA SCASW Сравнить слова: (F)=(AX)-ES:[(DI)] 6.2. СИНХРОНИЗАЦИЯ С ВНЕШНИМИ СОБЫТИЯМИ
LODS mss Загрузить элемент: (ac)=DS:[(SI)] WAIT Ожидание внешнего события
LODSB Загрузить байт: (AL)=DS:[(SI)] ESC cop,opr Подключение сопpоцессоpа
LODSW Загрузить слово: (AX)=DS:[(SI)] LOCK Блокиpовка шины
STOS msd Запомнить элемент: ES:[(DI)]=(ac) NOP Холостая операция
STOSB Запомнить байт: ES:[(DI)]=(AL) HLT Останов с ожиданием прерывания
STOSW Запомнить слово: ES:[(DI)]=(AX)
ФОРМАТ РЕГИСТРА ФЛАГОВ F
D15D12 |
D11 |
D10 |
D9 |
D8 |
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
|
OF |
DF |
IF |
TF |
SF |
ZF |
|
AF |
|
PF |
|
CF |
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 - одно- или двухбайтное смещение в коде команды
msd - m8,m16 FA - арифметические флаги OF,SF,ZF,AF,PF,CF
mss - 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- прерывание по переполнению
words - r16,m16,sr 5—255 - прерывания пользователя
wordd - r16,m16,sr(кроме CS)
src - r8,m8,r16,m16,sr,data ? - неопределенное состояние флагов
dst - r8,m8,r16,m16,sr(кроме CS) - неизменность флагов
/ - означает слово "кроме" и показывает исключительность последующих флагов по отношению к предыдущим
В командах групп 1,2,3 обращения типа "память-память" запрещены