Основы автоматизации вычислительного процесса




Ранее были даны определения алгоритма и программы (см. лекция 1). Алгоритм может быть записан в разных формах: словесной, формульной, табличной, графической или на языке программирования. Не останавливаясь на особенностях форм записи алгоритма, отметим, что языки, представляющие алгоритм в виде последовательности читаемых программистом (не двоично-кодированных) команд, называются алгоритмическими языками. Алгоритмические языки подразделяются на машинно-ориентированные, процедурно-ориентированные, объектно-ориентированные и проблемно-ориентированные.

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

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

Все языки программирования, и языки машинно-ориентированные, и языки высокого уровня, для их восприятия компьютером требуют наличия программ перевода - трансляторов на машинный язык.

Трансляторы бывают двух видов: трансляторы-компиляторы и трансляторы-интерпретаторы.

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

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

Машинная команда состоит из двух частей: операционной и адресной.

КОП Адреса

Рисунок 1. Функциональные части машинной команды

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

Адресная часть команды (адреса) - это группа разрядов в команде, в которых записываются чаще всего идентификаторы данных или имена регистров Ml 111, хранящих информацию, или метки машинных команд. Часто эту часть называют адресами операндов, т.е. чисел, участвующих в операции.

По количеству записываемых адресов (обозначаются а1, а2, а3,...) команды делят на безадресные, одно-, двух- и трехадресные.

В трехадресной команде (рис. 2) а1 и а2 - адреса первого и второго чисел, участвующих в операции, а3 - адрес ячейки памяти или регистра, куда следует поместить результат выполнения операции.

КОП al а2 а3

Рисунок 2. Типовая структура трехадресной команды

Двухадресная команда имеет структуру, представленную на рисунке 3. В таких командах, как правило, al — адрес ячейки или регистра, где расположено первое число, и куда после завершения операции должен быть записан результат выполнения команды (обратите внимание: при этом "старое" значение первого числа изменяется). Второе участвующее в операции число хранится в а2.

КОП а1 а2

Рисунок 3. Типовая структура двухадресной команды

В одноадресной команде (рис.4) единственный адрес al может обозначать либо адрес ячейки памяти или регистра, где хранится участвующее в операции число, либо адрес ячейки памяти или регистра, куда следует поместить результат операции.

КОП а1

Рисунок 4. Типовая структура одноадресной команды

Безадресная команда содержит только код операции, а информация для нее должна быть заранее, до появления этой команды в программе, помещена другими командами в определенные регистры Ml ill (безадресные команды могут использоваться только совместно с командами другой адресности). В изучаемом нами Ассемблере применяются двух, одно и безадресные команды.

Итак, команды представляют краткую нотацию (запись) системы команд.



Поделиться:




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

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


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