Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1_FASM_Команды_МП.doc
Скачиваний:
17
Добавлен:
03.06.2015
Размер:
353.79 Кб
Скачать

Приложение №2. Система машинных команд мп 8086 в приложении приводится базовый набор команд процессора. Команды пересылки данных

MOV – запись числа в регистр или ячейку памяти.

MOV R1,R2;R1=R2

MOV R,A ;R=A

MOV [R],A ;Запись в ячейку памяти значения

MOV R,[R] ;Сохранения из памяти значения

PUSH R– запись числа в стек.

POP R – извлечение числа из стека.

R – регистр: AX,BX,CX,DX,AH,AL,BH,BL,CH,CL,DH,DL,SI,DI,SP. A – код.

При работе со стеком можно использовать только 16 разрядные данные в регистрах.

MOVSB – пересылка байтов в оперативной памяти, для работы команды настраиваются регистры процессора:

DS:SI – адрес источника байтов.

ES:DI – адрес приемника байтов.

CX=n – количество пересылаемых байтов.

Для пересылки всех байтов команда снабжается префиксом REP.

CLD – сброс флага направления при пересылке байтов – пересылка от начала строки до ее завершения.

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

JMP label – безусловный переход.

LOOP label – циклическое выполнение команд. Первая команда помечается меткой label.

Количество повторений цикла заносится в регистр CX:

Пример. Организация цикла на 70 итераций:

mov CX,70

go:

;Команды

loop go

СMPSB – сравнение байтов строки.

Установка регистров:

DS:SI – адрес первой строки.

ES:DI – адрес второй строки.

CX=n – количество пересылаемых байтов.

Команда вызывается с повторителями REPE — повторять пока «равно», REPNE — повторять пока неравно.

CLD – сброс флага направления при выполнении команды.

SCASB – сканирование строки байтов.

Установка регистров:

AL – тестируемый байт.

ES:DI – строка, где ведется поиск.

CX=n – количество тестируемых байтов.

Повторители см. выше.

CMP – сравнение двух аргументов и установка флагов процессора.

CMP R,A

CMP R1,R2

JE – перейти, если равно.

JNE – перейти, если не равно.

JA – перейти, если выше.

JB – перейти если ниже.

JL – перейти если меньше.

JG – перейти если больше.

JLE – перейти меньше или равно.

JGE – перейти если больше или равно.

JC – переход, если бит флагов CF=1.

JNC – переход, если бит флагов CF=0.

Команды перехода и флаги процессора :

JZ (ZF=1)

JNZ (ZF=1)

JO (OF=1)

JN(OF=0)

JS (SF=1)

JNS(SF=0)

Пример. Проверка на число кода регистра.

cmp AX,90

je ok; Да, равно !

Команды для выполнения действий над байтами

INC R – увеличение аргумента на единицу.

DEC R– уменьшение аргумента на единицу.

AND – побитовое умножение «И».

AND R1,R2

AND R,A

XOR – логическое исключающее «ИЛИ».

OR – побитовое сложение «ИЛИ».

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

INT N - вызов вектора прерывания по его номеру N.

XCHG R1,R2 – обмен значений регистров.

STD – установка флага направления DF=1.

21

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]