Целостность данных
Чтобы сохранить данные ОЗУ при работе с КЭШ, используется один из двух способов:
1. При каждой записи в КЭШ, производится и запись в ОЗУ.
2. В КЭШе отводится спец. бит для каждого блока. Бит = 1, если блок изменен. Запись здесь только при замене строки новым блоком
11. Система команд универсального микропроцессора.
Типы данных: 1)bit 2)bate 3)word 4)double word. Целочислен операнды м\т интерпретироваться как знаков и безнаков числа. Реж адресации:
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,DI DS(сегментный адрес подставл из DS).BP SS. Признаком косвенной адресации явл [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). Целочисленные команды (ком пересылки данных, преобраз данных, работы со строками, передачи управления, прогр прерывания, спец команды – системного управления, IN, OUT- ком-ды вв/выв для работы с портами),
2). Команды сопроцессора
3). Целочисленное расширение ММХ.
4). Расширение ММХ с плав точкой (ХХМ)
1)ком пересылки данных: могут использовать любые способы адресации, ком пересылки не влияют на флаги. Их нельзя исп для организации ветвления. MOV ор1, ор2 – использ все воз мреж адресации 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- запись.
3)ком преобраз данных ADD, SUB, MUL, MULU, DIV, DIVL, AND, OR, XOR
Команды передачи управления.
Их можно разделить на след группы:
-безусловный переход
-условн переход
-обращение к процедурам (CALL, RET)
-вызов программных прерываний(INT, RETI)
-организация циклов.
Команды перехода предназначены для передачи управл команде с указ адресом.
JMP M-безусловный переход по адресу М.
JC M-условный переход, когда флаг С установлен.
Call P1- вызов процедуры с именем Р1.
Ret- возврат из процедуры.
Команды организации цикла.
Loop M. Команда условие выхода из цикла LOOPE\LOOPZ
В С167: CMP, CMPB, CMPD1, CMPD2, CMPI1, CMPI2
Команды сдвига: sh l, sh r, Ro l, Ro h, Ashr (арифм сдвиг вправо)
Команды обработки строк- эти ком обеспеч обраб данных последов расположенных в памяти одинакового размера(это массив). Вх данные расположены в текущем сегменте 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)
Одним из способов повышения производительности является распараллеливание операций. ММХ – вариант организации 1 из технологий распараллеливания – применение одной и той же команды к нескольким операндам. Использ 64 младш бита: 8 упак байт, 4 слова, 2 32разр слова, 1 64 разр слово.
Дата добавления: 2015-09-27 | Просмотры: 436 | Нарушение авторских прав
|