Скачиваний:
401
Добавлен:
22.01.2014
Размер:
3.74 Mб
Скачать

8.2.3 Устройство шинного интерфейса.

Устройство шинного интерфейса, иначе его называют устройством сопряжения с каналом (УСК), обеспечивает выполнение функций, связанных с формированием 20-разрядного физического адреса памяти, выборкой команд и обменом данными МП с ВУ.

В состав УСК входят:

- 20-разрядный сумматор адреса;

- четыре 16-ти разрядных сегментных регистра (DS,CS,SS,ES);

- 16-ти разрядный регистр адреса команд (РС);

- шесть 8-битных регистров очереди команд.

8.2.4 Операционное устройство(оу).

ОУ предназначено для выполнения операций по обработке данных. В состав ОУ входят:

- 16-ти разрядное АЛУ;

- восемь 16-ти разрядных регистров общего назначения (РОН):

AX, BX, DX, CX, DI, SI, BP, SP;

- регистр флагов состояния (RF).

Регистр флагов хранит девять флажков, шесть из которых отражают особенности выполнения арифметических и логических операций, остальные три флажка управляют действиями МП.

Формат регистра флагов показан на рис.8.3.

Рис.8.3

К первой группе флагов относятся: флаг переноса CF, флаг четности результата PF, флаг переноса тетрадный AF, флаг переполнения OF, флаг нуля ZF, флаг знака SF.

Вторую группу составляют флаги: флаг пошагового режима выполнения команд TF, флаг разрешения прерываний IF, флаг направления индексации DF.

8.3 Основные команды языка Ассемблер для мп i8086.

Система команд МП включает в себя шесть групп команд:

- команды пересылки данных;

- арифметические команды;

- логические команды;

- команды передачи управления;

- команды управления МП;

- команды анализа и преобразования строк.

Полное описание команд можно найти в / /. Здесь же рассмотрим основные характеристики и примеры использования наиболее применяемых команд первых пяти групп. В описании команд использованы имена и обозначения, смысл которых поясняется таблицей 8.1.

Таблица 8.1.

Сокращение

Смысловое значение

Обозначение

Смысловое значение

opr

Операнд

заменяется на

src

операнд- источник

обменивается с

dst

операнд-получатель

содержимое Х

reg

Регистр

Логическое “И”

addr[size]

Адрес

логическое «ИЛИ»

EA

эффективный адрес

Логическое исклю-чающее “ИЛИ”

data

Непосредственный операнд

инверсия Х

8.3.1 Команды пересылки данных.

Различают четыре типа пересылок: общего назначения, с участием аккумулятора, адреса и флагов.

Пересылки общего назначения задаются с помощью четырех базовых команд: MOV- переслать, PUSH- занести в стек, POP- извлечь из стека, XCHG- обменять.

Описание команд пересылки данных общего назначения и примеры их использования приведены в таблице 8.2.

Таблица 8.2.

Название

Мнемоника и формат

Описание

передать

MOV dst,src

занести в стек

PUSH opr

извлечь из стека

POP opr

обменять

XCHG opr1,opr2

Пересылки с участием аккумулятора состоят из трех команд: IN- ввод, OUT-вывод, передача однобайтового или 2-х байтового элемента строки.

В отличие от рассмотренных выше пересылок общего назначения эти команды обязательно используют аккумулятор в качестве источника или места назначения операнда. Описание команд и примеры их использования приведены в таблице 8.3.

Таблица 8.3.

Название

Мнемоника и формат

Описание

ввод данных

IN reg,opr

вывод данных

OUT opr,reg

В таблице 8.3 приняты обозначения:

(opr) - адрес порта ввода/вывода в reg;

((opr))- данные из порта с адресом в reg.

Команды пересылки однобайтового или двухбайтового элемента строки:

LODS byte/word ptr seg:[SI]

LODSB/LODSW

STOSB/STOSW

Данная команда загружает из памяти один байт в регистр AL или одно слово в регистр AX, которые адресуются регистровой парой DS:SI. После выполнения этой операции содержимое регистра SI увеличивается на один или два, в зависимости от длины операнда, вследствие чего устанавливается адрес следующего элемента. Команда обычно используется при работе с массивами данных.

Из команд пересылки адреса рассмотрим команду

LDS - загрузить указатель в сегментный регистр DS.

Команда имеет формат: LDS reg, addr32

Она инициализирует адрес сегмента данных и адрес регистра смещения содержимым переменной указателя, расположенной по адресу addr32, для обеспечения доступа к данным по адресу в этом указателе. Сегментный адрес помещается в регистр DS, а относительный адрес - в любой из общих или индексных регистров.

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

LDS SI,MASPTR

При выполнении этой команды адрес первого элемента массива MAS, на который указывает MASPTR будет храниться в регистрах DS:SI.

Пример:

LDS SI,MASPTR

LODSW

Команды пересылки флагов включают четыре однобайтовые команды: LAHF- загрузить АН флагами; SAHF- запомнить АН в регистре RF; PUSHF- занести F в стек; POPF- извлечь из стека в F.

По команде LAHF осуществляется пересылка младшего байта регистра флагов RF в АН, а по команде SAHF- обратная пересылка.

Команды PUSHF и POPF аналогичны рассмотренным ранее.