Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
68
Добавлен:
20.06.2014
Размер:
4.66 Mб
Скачать

11. Система команд мп.

Типы данных: 1)bit 2)bate 3)word 4)doublword. Целочислен операнды м\т интерпретироваться как знаков и безнаков числа. Реж адресации:

1)регистровая адресация. В случае регистровой адресации операндом явл-ся содержимое одного из регистров. MOV BX, AX; (BX)←(AX), при регистровой адресации надо следить за длиной регистрового операнда. Это самый быстрый способ адресации.

2)Непосредственная адресация. –Оператор константа и содержится в коде команды. MOV AX,0FFh; (AX) ←Efh, надо следить за непосредственной длиной операндов. Операндом кроме чисел могут быть: адрес, код символов, символьная константа. Исполняемый адрес переменной х пересыл-ся в регистр BX, offset- операция перемещения переменной х. MOV BX, offset x; (BX) ←offset x

3)Прямая (абсолютная) адресация. Опернд-содержимое памяти, адрес памяти указ в команде. MOV BX,x; (BX) ←(x). По умолчанию сегментный адрес берется из регистра DC, если нужно указать переменную: MOV AX, CS:y. Где CS-имя сегментного регистра кода. MOV BX,CS: 2135h, чтобы отличить абсол адрес от непоср необходимо указать операнд.

4)Косвенная адресация. При косвенной адр операнд располаг в памяти. В этом случае в каманде указ имя регистра, содержание кот явл-ся исполнит адресом операнда. BX, BP- базовые регистры, SI,DI-индексные регистры. Если сегм регистр не указывается, то BX,SI,DIDS(сегментный адрес подставл из DS).BPSS. Признаком косвенной адресации явл [SI].

Пример: MOV AL,[BX]; (AL) ←((BX)), Seg=(DS) содержимое рег BX явл исполнительным адресом ячейки памяти, содержимое кот пересылается в AL. Если необх обратиться к нек сегменту, отличного от сегмента по умолчанию, то его нужно явно указать в команде: MOV AL, CS: [BX]; (AL) ←((CS):(BX))

Seg EA

4.1)Базо-индексная адресация. В этом случае исп-ся адрес операнда вычисляемого как сумма базового и индексного регистров. [BX] [SI], [BX] [DI] , [BP] [SI], [BP] [DI]

Пример:

MOV AX, ES: [BX]:[SI]- в AX заносится слово по адресу: Seg=(ES), offset=(BX)+(SI).

4.2)Базовая или индексная со смещением адресация. Использ адрес вычисл как сумма содерж регистр указатель и константу.

Пример:

VEC DB 0,2,4,6,8,10

.

.

mov BX,3

mov AH, Vec [BX], где Vec-использ адрес переменной константы. К использ адресу +3, и содержимое пересылается вAH

; В AH байт из памяти по адресу:

; Seg=(DS), offset=Vec+3

MOV SI,offset vec

MOV AH, 3[SI]

MOV AH, [SI+3]

MOV AH, [SI]+3

4.3)Базо-индексная cо смещением адресация. В этом случае исп адрес операнда опред-ся как сумма 3-х величин, содержимого базового рег, индексного рег и константы. MOV AL,Vec [BX] [SI]

; байт в AL из памяти по адресу

; Seg=(DS), offset=Vec+(BX)+(SI)

Используются разные методы адресации и разные команды. Можно реализ один и тот же алгоритм, при этом с точки зрения оптимальности кода надо учит 2 фактора:

1. длину команды(указ в байтах)

2. время вып команд(указ в машинных тактах).

Длина команды опре размер кода программы, а время вып операции суммарное время вып программы.

Классификация команд.

1)ком пересылки данных: могут использовать любые способы адресации, ком пересылки не влияют на флаги. Их нельзя исп для организации ветвления. XCHG AX,DX-обмен содерж между регистром. LEA-загрузка исп адреса переменной в рег. LEA BX,X; (BX) ←X. PUSH F-запись в стек., POP F-извлечение из стека рег FAR. Отсутств ком записи констант в сегментный рег.

2)ком работы с портами вв\выв. IN-чтение из порта вв\выв в микропроц, OUT- запись в порт вв\выв. In AX,DX- чтение AX из порта DX, Out DX,AX- запись.

Соседние файлы в папке МП