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

Приложение № 1. Некоторые функции системного прерывания 21h Организация ввода с клавиатуры

Функция 01h – ввод символа с эхом.

Вызов: AH=01h

Возврат: AL=байт входных данных.

07h – Ввод символа без эха и без обработки ^+C.

08h – Ввод символа без эха с обработкой ^+C.

Организация вывода

Для вывода на экран одного символа служит функция 02h.

Обращение:

AH=02h

DL=байт данных.

Для вывода последовательности символов служить функция 09h.

Вызов:

AH=09h

DS:DX=адрес выводимой строки.

Последний байт выводимой строки должен хранить код символа ‘$’.

Для формирования строк нужно включать управляющие коды 0Ah(10) и 0Dh(13).

Пример:

mes db ‘Пример многострогчного’,0ah,0dh

db ‘текста на экране’,’$’

Функция 40h.

Служит для вывода заданного количества байтов на требуемое устройство. Для идентификации устройств используются дескрипторы.

При выводе информации на экран служит дескриптор 1.

Вызов:

AH=40h

BX=дескриптор.

CX=количество выводимых байтов.

DS:DX=адрес выводимой строки.

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

Пример:

mes db ‘Пример многострочного’,0ah,0dh

db ‘текста на экране’

actlen=$-mes

Приложение №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:

Пример.

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;

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