Помощничек
Главная | Обратная связь


Археология
Архитектура
Астрономия
Аудит
Биология
Ботаника
Бухгалтерский учёт
Войное дело
Генетика
География
Геология
Дизайн
Искусство
История
Кино
Кулинария
Культура
Литература
Математика
Медицина
Металлургия
Мифология
Музыка
Психология
Религия
Спорт
Строительство
Техника
Транспорт
Туризм
Усадьба
Физика
Фотография
Химия
Экология
Электричество
Электроника
Энергетика

Порядок выполнения работы. Выполнение команд в ЭВМ типа IBM PC



Выполнение команд в ЭВМ типа IBM PC

Цель работы: изучение порядка функционирования ЭВМ типа IBM PC при выполнении линейных операций типа сложения и вычитания.

Введение

Микропроцессор Intel-8086 (К1810ВМ80) имеет двухадресную систему команд [8,10]. Ее особенностью является отсутствие команд, использующих оба операнда из оперативной памяти. Ис­ключение составляют лишь команды пересылки и сравнения цепочек байт или слов, которые в данной работе рассматриваться не будут. Таким образом, в командах допустимы следующие сочетания операндов: RR, RS, RI, SI. Здесь R обозначает операнд, находящийся в одном из регистров регистровой памяти микропроцессора, S – операнд, находящийся в оперативной памяти, адрес которого формируется по одному из допустимых способов адресации, I – непосредственный операнд, закодированный в адресном поле самой команды. Формат команды определяется способом адресации операнда, находящего в оперативной памяти, длиной используемого непосредственного операнда, а также наличием и длиной смещения, используемого при относительных режимах адресации.

Микропроцессор имеет все классические режимы адресации, но с определенными особенностями.

Непосредственная адресация предполагает, что операнд занимает одно из полей команды и, следовательно, выбирается из оперативной памяти одновременно с ней. В зависимости от форматов обрабатываемых процессором данных непосредственный операнд может иметь длину 8 или 16 бит, что в дальнейшем будем обозначать data8 и data16 соответственно.

Механизмы адресации операндов, находящихся в регистровой памяти и в оперативной памяти, существенно различаются. К регистровой памяти допускается лишь прямая регистровая адресация. При этом в команде указывается номер регистра, содержащего операнд. 16-раз­рядный операнд может находиться в регистрах AX, BX, CX, DX, DI, SI, SP, BP, а 8-разрядный – в регистрах AL, AH, BL, BH, CL, CH, DL, DH, представляющих собой младшие (xL)и старшие (xH) байты регистров AX, BX, CX, DX.

Адресация оперативной памяти имеет свои особенности, связанные с её разбиением на сегменты и использованием сегментной группы регистров для указания начального адреса сегмента. 16-раз­ряд­ный адрес, получаемый в блоке формирования адреса операнда на основе указанного режима адресации, называется эффективным адресом (ЭА). Иногда эффективный адрес обозначается как ЕА (effective address). 20-разрядный адрес, который получается сложением эффективного адреса и увеличенного в 16 раз значения соответствующего сегментного регистра, называется физическим адресом (ФА).

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

Прямая адресация предполагает, что эффективный адрес является частью команды. Так как ЭА состоит из 16 разрядов, то и соответствующее поле команды должно иметь такую же длину.

При регистровой косвенной адресации эффективный адрес операнда находится в базовом регистре BX или одном из индексных регистров DI либо SI:

 
 

Обозначение имени регистра в квадратных скобках указывает на содержимое соответствующего регистра. Фигурные скобки – символ выбора одной из нескольких возможных альтернатив.

При регистровой относительной адресации эффективный адрес равен сумме содержимого базового или индексного регистра и смещения:

 
 

Обозначения disp8 и disp16 здесь и далее указывают на 8- или 16-раз­рядное смещение соот­ветственно.

Эффективный адрес при базово-индексной адресации равен сумме содержимого базового и индексного регистров, определяемых командой:

 

 
 

Наиболее сложен механизм относительной базово-индексной адресации. Эффективный адрес в этом случае равен сумме 8- или 16-разрядного смещения и базово-индексного адреса:

 

 
 

Форматы двухоперандных команд представлены на рис.1. Пунктиром показаны поля, которые в зависимости от режима адресации могут отсутствовать в команде.


 


Поле коп содержит код выполняемой операции. Признак w указывает на длину операндов. При w=1 операция проводится над словами, а при w = 0 – над байтами.

Второй байт команды, называемый пост­байтом, определяет операнды, участвующие в операции. Поле reg указываетрегистр регистровой памяти согласно табл. 1.

Таблица 1

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

 


 

Поля md и r/m задают режим адресации второго операнда согласно табл.2.

Таблица 2

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

 

Обращение к оперативной памяти происходит по физическому адресу (ФА) ячейки, который формируется по следующей схеме:

ФА = (сегментный регистр)*16 + ЭА

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

В командах, использующих непосредственный операнд, признак s вместе с признаком w оп­ре­деляет разрядность непосредственного операнда, записываемого в команде, и разрядность выполняемой операции согласно табл.3.


 

Таблица 3

w s Операция Непосредственный операнд
8-разрядная 8-разрядный
не используется
16-разрядная 16-разрядный
8-разрядный, расширяемый знаком до 16-ти разрядов при выполнении операции

 

Символическая запись команды, в которой один операнд извлекается из оперативной памяти, а второй является непосредственным операндом в случае, когда этот операнд имеет в команде длину 1 байт, не позволяется однозначно определить, будет ли данная команда выполняться над операндами длиной 1 байт или длиной 2 байта с расширением непосредственного операнда до этой длины знаком. Для устранения этой неопределённости при символической записи команды используют специальные указатели. Указатель byte ptr определяет длины операндов в 1 байт, а указатель word ptr – в 2 байта. Например, в команде byte ptr ADD [BX+3], 82h будет выполняться сложение байт, а в команде word ptr ADD [BX+3], 82h будет выполняться сложение слов (2 байта), при этом младший байт слова будет прочитан из ОП по эффективному адресу [BX+3], а старший байт – по эффективному адресу [BX+4]. Непосредственный операнд будет расширен знаком до 2 байт и поступит на обработку в виде FF82h.

 


Порядок выполнения работы

После запуска программы открывается окно с теоретическим материалом, после просмотра которого следует перейти к вкладке «Практика» и выбрать режим работы (с оценкой или без оценки).

Если работа выполняется без оценки, то обучаемый должен нажать кнопку «Старт». При этом ему будет выдано первое задание.

 
 

При записи информации в какой-либо регистр регистровой памяти в окне, показывающем состояние РП, необходимо выделить данный регистр. При этом в поле для ввода ответа появится идентификатор этого регистра, после чего в данное окно следует вводить информацию (рис. ).

 

Рис. Окно тренировочного режима

 

Проверка правильности выполненного примера проводится при нажатии кнопки «Принять ответ». При этом программа обучающего урока выдаёт сообщение о том, правильно или неправильно выполнено это задание. По кнопке «Проверить результат» выдаются правильные результаты данного задания (рис. ).

 
 

Рис. Окно с результатами проверки выполненного задания

Нажав кнопку «Следующая команда» можно получить очередное задание.

Для выполнения урока в контрольном режиме необходимо поставить флажок «Выполнить задание с оценкой» и нажать кнопку «Старт». В этом режиме становится недоступным просмотр теории. После получения очередного задания следует нажать кнопку «Принять ответ». Программные средства электронного урока проверяют правильность введённого ответа и сообщают об этом обучаемому. Если ответ введён правильно, выдаётся сообщение «Верно» и к текущей оценке добавляется 1 балл. При неправильном ответе выдаётся сообщение «Ошибка».

Кнопка «Проверить результат» в контрольном режиме недоступна. Правильный ответ выдаётся автоматически. Если студент не в состоянии самостоятельно отыскать ошибку, он должен, не переходя к следующему заданию, пригласить для анализа результатов преподавателя.

Для перехода к следующему заданию следует нажать кнопку «Следующая команда». После выполнения 5 заданий и нажатия кнопки «Следующая команда» становится активной кнопка «Выход», по которой можно завершить контрольное выполнение урока. При этом кнопка «Принять ответ» неактивна. Новое выполнение программы в тренировочном или контрольном режимах можно осуществить её перезапуском.

 




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

©2015-2020 studopedya.ru Все права принадлежат авторам размещенных материалов.