русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Загрузка и выполнение программ на компьютере


Дата добавления: 2015-01-16; просмотров: 696; Нарушение авторских прав


Ранее были даны определения алгоритма и программы (см. лекция 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 (безадресные команды могут использоваться только совместно с командами другой адресности). В изучаемом нами Ассемблере применяются двух, одно и безадресные команды.

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



<== предыдущая лекция | следующая лекция ==>
Регистр флагов | Синтаксис команд Ассемблера.


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

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