Расчёт тактов каждой команды




КУРСОВАЯ РАБОТА

по дисциплине «Микропроцессорные средства»

 

Вариант № 18

 

Студент:Аксенов М.Д.

Группа: 14ВТИ-3ДБ-020

Преподаватель: Бурашников С.Р.

 

 

Ступино 2016

Вариант № 18

Линейная команда Команда условного перехода Тип внутрисегментного безусловного перехода
БП1к БП2к
OR JNP    

Задание:

Составить программу, реализующую алгоритм. В программе должны быть использованы все возможные режимыадресации операндов в линейных командах (ЛК), атакжеспециальный формат ЛК,использующий аккумулятор. В одной из ЛК предусмотреть обработку байта данных, остальные ЛК должны обрабатывать слова. В вариантах, использующих в качестве ЛК команду MOV или XCHG, необходимо дополнить их в блоке ЛК1 командами CMP или TEST. Команды безусловных внутрисегментных переходов (БП1д и БП2д) должны реализовывать оба допустимых типа перехода (прямой и косвенный). Обозначения УП и БПк соответствуют условному и внутрисегментному безусловному переходам.

Режимы адресации линейных команд:

1) непосредственный

2) прямой

3) прямой регистровый

4) косвенный регистровый

5) регистровый

6) базово-индексный

7) относительный базово-индексный

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

1) прямой короткий

2) прямой близкий

3) косвенный.

 

 

Схема алгоритма, подлежащего кодированию в домашнем задании

 

 

 

Листинг программы в FASM:

Отладка программы проводилась в TurboDebugger:

Текст программы в символическом виде и машинном представлении

Команда CS16 IP16 Символическая запись команды Машинное представление
2-е 16-е
ЛК1     OR AX,0101h   0D
           
           
УП   000B JNP LC2   7B
           
ЛК3   000D OR AX,BX    
          D8
ЛК4   000F OR SI,[BX]   0B
           
БП1д     JMP far S2:LC5   EA
           
           
           
           
ЛК7     OR AX,BX    
          D8
ЛК8     OR AX,[BX+SI+2]   0B
           
           
БП2к   001B JMPnear LC1   EB
          EB
ЛК2   001D OR BX,[0004h]   0B
          1E
           
           
БП1к     JMP BX   FF
          E3
ЛК5     OR [BX+2],AX    
           
           
ЛК6     OR AX,[BX+SI]   0B
           
БП2д     JMP dword [DI]   FF
          2D

 

 

Отладочные примеры

Результаты выполнения теста с условным переходом:

  Исходное состояние ЛК1 УП ЛК2 БП1к ЛК4 БП1д ЛК5 ЛК6 БП2д ЛК7 ЛК8 БП2к
AX                       010F 010F
BX       000F 000F 000F 000F 000F 000F 000F 000F 000F  
CX                          
DX                          
SI           C3F8 C3F8 C3F8 C3F8 C3F8 C3F8 C3F8 C3F8
DI                          
CS                          
DS                          
IP     000B 001D   000F             001B
Время выполнения команды                          
Время выполнения программы                          

Результаты выполнения теста без условного перехода:

  Исходное состояние ЛК1 УП ЛК3 ЛК4 БП1д ЛК5 ЛК6 БП2д ЛК7 ЛК8 БП2к
AX 010F 010F 010F 010F 010F 010F 010F 010F 010F 010F 010F 010F
BX 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F 000F
CX                        
DX                        
SI C3F8 C3F8 C3F8 C3F8 C3F8 C3F8 C3F8 C3F8 C3F8 C3F8 C3F8 C3F8
DI                        
CS                        
DS                        
IP     000B 000D 000F             001B
Время выполнения команды                        
Время выполнения программы                        

 

Расчёт тактов каждой команды

Команда Адресация Число тактов
OR AX,0101h RI Непосредственная  
JNP LC2 PF = 0 => есть переход PF = 1 => нет перехода 16 4
ORAX,BX RR Прямая регистровая  
ORSI,[BX] RS Косвенная регистровая 9 5
JMPS2:LC5 Межсегментный прямой переход  
ORAX,BX RR Прямая регистровая  
OR AX,[BX+SI+2] RS Относительная базово-индексная 9 11
JMP nearLC1 Внутрисегментный прямой близкий переход  
OR BX,[0004h] RS Прямая  
JMP farBX Внутрисегментный косвенный переход  
OR [BX+2],AX SR Относительная регистровая 16 9
ORAX,[BX+SI] RS Базово-индексная  
JMP dword [DI] Межсегментный косвенный переход  

 

Используемые материалы:

Коды регистров Таблица 3.1. Режимы адресации Таблица 3.2

reg регистр w=1 w=0
  AX AL
  CX CL
  DX DL
  BX BL
  SP AH
  BP CH
  SI DH
  DI BH

 

md        
r/m w=1 w=0
  (BX)+(SI) (DS) (BX)+(SI)+disp8 (DS) (BX)+(SI)+disp16 (DS) AX AL
  (BX)+(DI) (DS) (BX)+(DI)+disp8 (DS) (BX)+(DI)+disp16 (DS) CX CL
  (BP)+(SI) (SS) (BP)+(SI)+disp8 (SS) (BP)+(SI)+disp16 (SS) DX DL
  (BP)+(DI) (SS) (BP)+(DI)+disp8 (SS) (BP)+(DI)+disp16 (SS) BX BL
  (SI) (DS) (SI)+disp8 (DS) (SI)+disp16 (DS) SP AH
  (DI) (DS) (DI)+disp8 (DS) (DI)+disp16 (DS) BP CH
  disp16 (DS) (BP)+disp8 (SS) (BP)+disp16 (SS) SI DH
  (BX) (DS) (BX)+disp8 (DS) (BX)+disp16 (DS) DI BH

 

Машинные коды команд Таблица 3.3

Команда Байты кода команды Схема операции
байт 1 байт 2 байты 3…6
ADD 000000dw md reg r/m (disp8/16) r(r/m) = r + r/m
  100000sw md 000 r/m (disp8/16)d8/16 r/m = r/m + d
  0000010w data L (data H) ac = ac + d
SUB 001010dw md reg r/m (disp8/16) r(r/m)=r(r/m)-(r/m)r
  100000sw md 101 r/m (disp8/16)d8/16 r/m = r/m – d
  0010110w data L (data H) ac = ac – d
AND 001000dw md reg r/m (disp8/16) r(r/m) = r & r/m
  100000sw md 100 r/m (disp8/16)d8/16 r/m = r/m & d
  0010010w data L (data H) ac = ac & d
OR 000010dw md reg r/m (disp8/16) r(r/m) = r V r/m
  100000sw md 001 r/m (disp8/16)d8/16 r/m = r/m V d
  0000110w data L (data H) ac = ac V d
XOR 001100dw md reg r/m (disp8/16) r(r/m) = r + r/m
  100000sw md 110 r/m (disp8/16)d8/16 r/m = r/m + d
  0011010w data L (data H) ac = ac + d
MOV 100010dw md reg r/m (disp8/16) r = r/m, r/m = r
  1100011w md 000 r/m (disp8/16)d8/16 r/m = d
  1011wreg data L (data H) reg = d
  1010000w disp L disp H ac=m;прямой адрес
  1010001w disp L disp H m=ac;прямой адрес
CMP 0011101w md reg r/m (disp8/16) r – r/m
  0011100w md reg r/m (disp8/16) r/m – r
  100000sw md 111 r/m (disp8/16)d8/16 r/m – d
  0011110w data L (data H) ac – d
INC 1111111w md 000 r/m (disp8/16) r/m = r/m+1
  01000reg     reg = reg+1
DEC 1111111w md 001 r/m (disp8/16) r/m = r/m-1
  01001reg     reg = reg-1

 

 

Базовые времена выполнения некоторых команд Таблица 4.1

R - адресация к регистру; A - к аккумулятору; S - к памяти; I - непосредственная адресация

Команды Адресация Число тактов Число обращений к памяти
ADD,SUB, AND,OR RR RS SR RI, AI SI 9+EA 16+EA 16+EA  
MOV SA,AS RR RS SR RI SI 8+EA 9+EA 10+EA  
MUL мн-ль 8 бит –R мн-ль 16 бит –R мн-ль 8 бит –S мн-ль 16 бит -S 70…77 118…133 (76…83)+EA (124…139)+EA  
CMP RR RS, SR RI, AI SI 9+EA 10+EA  
INC,DEC 16 бит – R 8 бит – R S 15+EA  
Условные переходы, кроме JCXZ нет перехода есть переход    
LOOP нет перехода есть переход    
JMP короткий внутрисегментный прямой косвенный регистровый межсегментный прямой косвеный   18+EA   24+EA    

 

Время вычисления эффективного адреса. Таблица 4.2

  Режим адресации Число тактов синхронизации для вычисления EA
Прямой  
Косвенный  
Относительный  
Базово-индексный (BP)+(DI) или (BX)+(SI) (BP)+(SI) или (BX)+(DI)  
Относительный базово-индексный (BP)+(DI)+disp или (BX)+(SI)+disp (BP)+(SI)+dispили (BX)+(DI)+disp  

 

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2018-02-25 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: