Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции части 1 и 2 начало части3.doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
231.94 Кб
Скачать

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

3.1 Введение

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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