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

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- запись.

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

Их можно разделить на след группы:

-безусловный переход

-условн переход

-обращение к процедурам (CALL, RET)

-вызов программных прерываний(INT, RETI)

-организация циклов.

Команды перехода предназначены для передачи управл команде с указ адресом.

JMP M-безусловный переход по адресу М.

JC M-условный переход, когда флаг С установлен.

Call P1- вызов процедуры с именем Р1.

Ret- возврат из процедуры.

Команды организации цикла.

Loop M

Команда условие выхода из цикла LOOPE\LOOPZ

Команды обработки строк- эти ком обеспеч обраб данных последов расположенных в памяти одинакового размера(это массив). Вх данные расположены в текущем сегменте DS и их смещение определяют DS:SI и вых данные будут располаг в доп сегменте ES:DS.

Без адресные и адресные ком. MOVS b,a-адресная, MOVS (W,D)- ком обработки данных (без адресн). 1. [REP] MOVS B- пересылка эл-та строки источника в Эл-т стр приемника.2. CMPS-ком сравнения, опред поэлементно, CMPS [dst] [sx]-сравнение вычитанием эл-тастр приемника из эл-та стр источника. 3. SCAS[src]- сканирование стр путем сравн эл-та строки источника с аккумулятором.4. LODS[src]- загрузка эл-та стр в аккумулятор. 5. STOS[dst]- пересылка из аккумул в эл-т стр приемника.

Коман установки флагов. S-SET-установка. Флаг управления:

STD-установка, CLD-сброс. STD; (D) ←0

CLD; (D) ←1

Флаг переноса: STC-установка, CLC-сброс.

STC; (C) ←1

CLC; (C) ←0

CMC-инвертир флага переноса.

CMC; (C) ←not (C)

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