Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Формат команды




Введение

Основы машинного языка

Ограничения, установленные для различных классов защищенности ЭВМ

Представим в виде таблицы:

Класс защищенности Ответственные задачи Особо ответственные задачи
A - -
B ? -
C + ?
D + +

 

+ – разрешено

- – полностью запрещено

? – частично разрешено, (разрешено использование ЭВМ для ввода/вывода и первоначальной обработке данных, но не для длительного хранения и обработки).

 


 

 

ЭВМ, по сути – автомат для выполнения программ написанных на так называемом "машинном языке". Изучение "машинного языка" – и есть основная составляющая изучения работы ЭВМ, принципов работы (принципов выполнения программ) Электронной Вычислительной Машиной. Этим мы и займёмся - в третьем разделе.

 

Знание основ машинного языка, принципов работы ЭВМ - необходимо для:

- правильного понимания характеристик ЭВМ, взаимосвязи между архитектурными решениями, применяемыми при построении ЭВМ, и характеристиками вычислительной системы;

- понимания сути и путей устранения многих проблемных ситуаций, возникающих при эксплуатации вычислительной техники;

- изучения в дальнейшем (если, вдруг, потребуется) языка Ассемблера;

- программирования на языках высокого уровня только "относительно" является "высокоуровневым. На самом деле – и полное понимание языка, и грамотное программирование на Языке высокого уровня - не возможно без знания архитектуры ЭВМ и принципов исполнения машинных программ.

 

Нам предстоит изучить алгоритмы, по которым выполняются многие важнейшие команды ЭВМ. Достаточно сложно изучать эти вопросы на примере конкретного процессора, или - семейства процессоров. Пришлось бы излишне отвлекаться на многие детали реализации, специфичные - именно для этого процессора. Нам же сейчас, прежде всего, важны общие принципы, заложенные в конструкции любых ЭВМ. Поэтому изучение будет происходить на примере простейшего процессора архитектуры фон Неймана, примерно такого – как тот, что был рассмотрен в первой части курса.

Будут рассмотрены алгоритмы выполнения многих команд, а именно – тех основных команд, что имеют прямое отношение к организации вычислительного процесса. При описании алгоритмов выполнения команд будет использоваться простейший язык ЯОМО (язык описания микроопераций). С несложными условными обозначениями, применяемыми в этом языке – познакомитесь по ходу изучения материала.

Кроме алгоритмов работы процессора на ЯОМО, в некоторых случаях, для иллюстрации того, как используются команды, как программируется ЭВМ - будут приведены фрагменты программ на языке очень близком к машинному языку, а именно - на языке Assembler (Ассемблер). Примеры программ на Ассемблер будут приводиться исключительно для иллюстрации принципов работы и принципов программирования ЭВМ. Изучение, тем более детальное изучение собственно языка Ассемблера – не входит в программу курса. Тем не менее, полагаю: полученные в ходе изучения нашего курса знания - помогут вам также и в том случае, если в дальнейшем - вам потребуется изучить и язык Ассемблера.

 

 

Машинная команда – блок данных, на момент выполнения программы размещённый в ОЗУ, и описывающий: какую операцию необходимо выполнить, где взять исходные величины и куда поместить результат.

 

Рассмотрим формат команды (из каких информационных разделов состоит команда и как взаимно - эти информационные разделы в команде расположены).

На рисунке – условно, графически отображена часть ОЗУ, в которой располагается машинная команда:

 

Графически ОЗУ представлено как массив ячеек, стрелкой – показано направление, в котором возрастают адреса ячеек ОЗУ. Фигурными скобками слева от массива ячеек – выделены отдельные части, или говорят "информационные поля команды" или Проше "поля команды": КОП, A1, A2,.. An

 

КОП (код операции) – это набор бит, указывающий какую операцию надо выполнить;

A1, A2,.An – атрибуты. Наборы данных, каждый из которых указывает – где (в каких ячейках памяти) взять элемент обрабатываемых командой данных, либо – куда поместить результаты. На каждый из элементов данных, что должна обрабатывать команда – свой атрибут. В простейшем случае атрибут содержит одно число – адрес ячейки ОЗУ, в которой хранится элемент данных. Возможны и другие варианты того как атрибут может указывать размещение данных (говорят - "другие методы адресации"). Вопрос о том какие ещё "методы адресации" могут быть использованы в тех или иных командах – будет рассмотрен чуть позднее;

 

n – число атрибутов в команде. Число атрибутов - может отличаться для разных команд. Имеются команды и без атрибутов.

LКОП – длина кода операции (число ячеек памяти занимаемое КОП-ом)

LA1, LA2, … – длины атрибутов (число ячеек памяти занимаемое соответствующим атрибутом);

LK – длина команды (число ячеек памяти занимаемое данной командой);

AK – адрес команды (адрес ячейки с наименьшим адресом из числа тех, что занимают команда)

 

.

Необходимо понимать - как соотносятся между собой "машинный язык" и "язык ассемблера" и - не путать эти понятия.

Любая программа на машинном языке - набор двоичных кодов, легко разбираемых устройством управления процессора, но, увы – очень трудных для чтения человеком. "Машинная команда" - последовательность двоичных чисел. Сначала – двоичное число (двоичный код) КОП, затем – двоичные числа атрибутов.

В языке Ассемблера двоичные коды: коды команд, адреса данных - заменены на словесные, "мнемонические обозначения" - более удобные для восприятия человеком. Программист может написать программу на языке ассемблера, и такая программа – будет очень близка к машинной программе. Отличаться будет – только формой записи.

На машинном языке –На Assembler’е запись команд выглядит так:

КОП A1 A2 A3

Пример: ADD mem3 mem2 mem1

ADD – мнемоническое имя для операции сложения

mem1, mem2 – мнемонические имена ячеек памяти, где находятся исходные данные.

mem3 – мнемоническое имя ячейки памяти, куда будет помещен результат.

В разговорном языке программистов на ассемблере, мнемонические имена иногда называют, не совсем по смыслу точно, но зато проще и короче: то просто "именами", а то и "адресами".

 

Программа транслятора на машинный язык – выполнит очень простую операцию: заменит в программе "мнемонические имена" на двоичные числовые коды. Мнемоническое имя ADD – будет заменено на двоичный код команды сложения. Мнемонические имена ячеек памяти – на двоичные коды адресов. В результате – из программы на Ассемблере будет получена "машинная программа", пригодная для выполнения на ЭВМ.

 

 




Поделиться с друзьями:


Дата добавления: 2013-12-12; Просмотров: 294; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.011 сек.