
- •Основы алгоритмизации и программирования
- •29 Декабря 2011, протокол № 4
- •Введение
- •Этапы развития эвм
- •Поколения эвм
- •Машинно-ориентированные языки программирования
- •Архитектура эвм
- •Микропроцессоры intel
- •Набор регистров
- •Регистры общего назначения
- •Сегментные регистры
- •Регистры состояния и управления
- •Организация памяти
- •Сегментная организация памяти
- •Типы данных
- •Символы
- •Целые числа
- •Указатель на память
- •Цепочки
- •Вещественые числа
- •Двоично-десятичные числа (bcd)
- •Формат команд
- •Обработка прерываний
- •Int тип_прерывания
- •Синтаксис ассемблера
- •Алфавит ассемблера
- •Директивы сегментации
- •Упрощённые директивы сегментации
- •Директивы резервирования и инициализации данных
- •Операнды
- •Способы задания операндов Прямая адресация
- •Косвенная адресация
- •Косвенная базовая адресация
- •Косвенная базовая адресация со смещением
- •Косвенная индексная адресация со смещением
- •Косвенная базовая индексная адресация
- •Косвенная базовая индексная адресация со смещением
- •Операторы
- •Функциональная классификация машинных команд
- •Команды пересылки данных Команды общего назначения
- •Работа с адресами и указателями
- •Преобразование данных
- •Xlat [адрес_таблицы_перекодировки]
- •Ввод из порта и вывод в порт
- •Работа со стеком
- •Арифметические команды Форматы арифметических данных
- •Арифметические операции над целыми двоичными числами
- •Логические команды
- •Команды передачи управления
- •Команда безусловного перехода
- •Условные переходы
- •Организация циклов
- •Основы алгоритмизации и программирования
Поколения эвм
1-е поколение (1945-1954 гг.) - время становления машин с фон-неймановской архитектурой. В этот период формируется типовой набор структурных элементов, входящих и состав ЭВМ. Это - центральный процессор (ЦП), оперативная память (или оперативное запоминающее устройство - ОЗУ) и устройства ввода-вывода (УВВ). ЦП, в свою очередь, состоял из арифметико-логического устройства (АЛУ) и устройства управления (УУ).
Машины этого поколения работали на ламповой элементной базе, из-за чего потребляли огромное количество энергии и были очень ненадежны. С их помощью решались, в основном, научные задачи. Программы для них уже начали составляться не на машинном языке, а на языке ассемблера. Основные средства наложения информации – перфокарты, перфоленты, магнитные ленты.
2-е поколение (1955-1964 гг.) - смену поколений определило появление новой элементной базы: вместо электронной лампы в ЭВМ стали применяться миниатюрные транзисторы и магнитные сердечники (для ОЗУ). Появились языки высокого уровня: ALGOL, FORTRAN, COBOL. Для эффективного управления ресурсами машины были разработаны операционные системы (ОС). Основные средства наложения информации – перфокарты, перфоленты, магнитные ленты, магнитные диски.
3-е поколение (1965-1970 гг.) - появились интегральные микросхемы. Повысилась производительность, снизились размеры и стоимость. Появились мини ЭВМ. Они активно использовались для управления различными технологическими процессами. С увеличением производительности появилась возможность использовать многопрограммность. Расширились функции ОС. Активно разрабатывались теоретические основы программирования. Появилась тенденция к созданию семейств ЭВМ, то есть совместимости снизу-вверх на программно-аппаратном уровне.(IBM-System 360, ЕС-ЭВМ).
4-е поколение (1970-1984 гг.) - появляются большие и сверхбольшие интегральные микросхемы (БИС и СБИС). Работа с программным обеспечением стала более дружественной, из-за чего стремительно выросло количество пользователей. Основные средства наложения информации – оптические, жесткие, гибкие диски.
5-е поколение (1984–до нашего времени) – переход к компьютерам пятого поколения предполагал переход к новым архитектурам, ориентированным на создание искусственного интеллекта. Создание развитого человеко-машинного интерфейса (распознавание речи, образов). Развитие логического программирования для создания баз знаний и систем искусственного интеллекта; Создание новых технологий в производстве вычислительной техники.
Машинно-ориентированные языки программирования
Язык программирования — формальная знаковая система, предназначенная для записи компьютерных программ.
В настоящее время разработаны сотни языков программирования. Обычно их разделяют на машинно-независимые и машинно-ориентированные языки.
Машинно-независимый язык — язык программирования, структура и средства которого не связаны с конкретной ЭВМ и позволяют выполнять составленные на нем программы на любой ЭВМ, снабженной трансляторами с этого языка.
Высокоуровневые языки разработаны для быстроты и удобства использования программистамии (например С++, Java, Pascal, Delphi и др.). Использование разнообразных трансляторов и интерпретаторов обеспечивает связь программ, написанных при помощи языков высокого уровня, с различными операционными системами и оборудованием. Но эта особенность не позволяет создавать простые и точные инструкции к используемому оборудованию. Программы, написанные на языках высокого уровня, проще для понимания программистом, но менее эффективны, чем их аналоги, создаваемые при помощи низкоуровневых языков.
Машинно-ориентированный язык – язык программирования, учитывающий структуру и характеристики ЭВМ определенного типа или конкретной ЭВМ.
Машинно-ориентированные языки обладают специфическими преимуществами и недостатками, в частности:
высокое качество создаваемых программ (компактность и скорость выполнения);
возможность использования конкретных аппаратных ресурсов;
предсказуемость объектного кода и заказов памяти;
для составления эффективных программ необходимо знать систему команд и особенности функционирования данной ЭВМ;
трудоемкость процесса составления программ (особенно на машинных языках и ЯСК), плохо защищенного от появления ошибок;
низкая скорость программирования;
невозможность непосредственного использования программ, составленных на этих языках, на ЭВМ других типов.
Единственный язык, напрямую выполняемый ЭВМ — это машинный язык (также называемый машинным кодом и языком машинных команд). Изначально все программы писались в машинном коде, но сейчас этого практически уже не делается. Вместо этого программисты пишут исходный код на том или ином языке программирования, затем, используя компилятор, транслируют его в один или несколько этапов в машинный код, готовый к исполнению на процессоре. Но это справедливо только для языков высокого уровня. Если требуется полный контроль над системой на уровне машинных команд и отдельных ячеек памяти, программы пишут на языке низкого уровня.
Машинный язык (абсолютный язык, computer machine language) — язык программирования, предназначенный для представления программ в форме, обеспечивающей возможность их выполнения техническими средствами
Язык ассемблера, мнемонические инструкции которого преобразуются один к одному в соответствующие инструкции машинного языка целевого процессора ЭВМ. (По этой причине трансляторы с языков ассемблера — ассемблера — получаются алгоритмически простейшими трансляторами.)
Машинно-ориентированные языки – это языки, наборы операторов которых существенно зависят от особенностей ЭВМ (внутреннего языка, структуры памяти и т.д.).