Одним из главных принципов уникальной «системы Физтеха», заложенной в основу образования в МФТИ, является тщательный отбор одаренных и склонных к творческой работе представителей молодежи. Абитуриентами Физтеха становятся самые талантливые и высокообразованные выпускники школ всей России и десятков стран мира.

Студенческая жизнь в МФТИ насыщенна и разнообразна. Студенты активно совмещают учебную деятельность с занятиями спортом, участием в культурно-массовых мероприятиях, а также их организации. Администрация института всячески поддерживает инициативу и заботится о благополучии студентов. Так, ведется непрерывная работа по расширению студенческого городка и улучшению быта студентов.

Адрес e-mail:

Основы информатики

ПРОГРАММА

По курсу: ОСНОВЫ ИНФОРМАТИКИ (АРХИТЕКТУРА ЭВМ И ЯЗЫК АССЕМБЛЕРА) по направлению: 511600 факультеты: ФРТК, ФОПФ, ФАКИ, ФМБФ, ФФКЭ, ФПМЭ, ФПФЭ кафедра: ВЫЧИСЛИТЕЛЬНОЙ МАТЕМАТИКИ Курс: 1 Семестр: 2 Лекции: 32 часа Семинарские занятия: 32 часа Практические занятия: 32 часа ВСЕГО ЧАСОВ: 96

Программу составили:

чл.- корр. РАН, проф. В.П. Иванников ст. преподаватель Д.С. Северов к. т. н., ст. преподаватель В.К. Хохлов

Программа обсуждена на заседании кафедры вычислительной математики 7 декабря 2001 года

Заведующий кафедрой                             А.С. Холодов


 

АРХИТЕКТУРА ЭВМ

Структура ЭВМ

Краткое описание устройств ЭВМ и схем их взаимодействия. Схема работы ЦП.

Оперативная память ЭВМ

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

Логические схемы

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

Представление чисел в ЭВМ

Двоичная система счисления. Представления целых чисел в форме с фиксированной точкой (представление беззнаковых чисел, представле­ние знаковых чисел в прямом и дополнительном кодах). Особенности сложения и вычитания целых чисел (на примере персонального компьютера - ПК, флаги). Представление вещественных чисел в форме с плавающей точкой (на примере ПК).

Машинные программы

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

Модели ЭВМ с различными системами команд

Трехадресная ЭВМ. Этапы составления машинных программ. Структура и такт работы центрального процессора (на примере трехадресной ЭВМ). Двухадресная ЭВМ. Одноадресная ЭВМ. ЭВМ с переменным форматом команд (с разноадресными командами). ЭВМ с регистровой памятью. Стековая ЭВМ. Принципы фон-Неймана. Гарвардские принципы.

Модификация адресов

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

Архитектурные принципы повышения производительности ЭВМ

Некоторые способы организации процессора и памяти. Микропрограммный способ реализации ЦП (идея, достоинства и недостатки, пример описания такта работы ЦП на упрощенном «микроязыке»). Расслоение памяти. Кэш-память (назначение и структура кэш, алгоритмы размещения и поиска данных в кэш, алгоритмы записи в кэш). Конвейерный способ выполнения команд (идея конвейера команд и выгода от него, причины сбоев в конвейере, понятие о RISC - архитектуре).

 

ЯЗЫК АССЕМБЛЕРА

Введение

Исторические сведения. Микропроцессор (МП) Intel 8086 как база для изучения. Понятие и достоинства языка Ассемблера (ЯА). Выбор языка для изучения.

Некоторые особенности МП Ше18086

Оперативная память. Регистры. «Перевернутое» представление целых чисел. Вещественные числа и арифметический сопроцессор. Представление символов и строк, системы кодировки. Примеры форматов машинных команд и их назначение.

Начальные сведения

Запись лексем (идентификаторов, чисел и символьных данных). Типы предложений (комментарии, команды, директивы), их синтаксис и назначение. Понятие ссылки назад и ссылки вперед.

Директивы описания переменных и констант.

Директивы DB, DW, DD и EQU. Константные и адресные выражения. Операторы: TYPE, арифметические.

Учебные расширения языка: ввод-вывод и останов

Операции ввода с клавиатуры (INCH, ININT, FLUSH), вывода на экран (OUTCH, OUTSTR, OUTINT, OUTWORD, NEWLINE) и остановка (FINISH). Пример программы с вводом-выводом.

Команды пересылки. Арифметические команды

Команды MOV, XCHG и LEA. Оператор PTR. Команды сложения (ADD, ADC, INC), вычитания (SUB, SBB, DEC, NEG), умножения (MUL, IMUL), деления (DIV, IDIV). Расширение чисел без знака и со знаком, команды CBW и CWD. Программирование вычислений по формулам. Операции над «длинными» числами.

Команды сравнения и перехода

Особенности машинных команд перехода в ПК. Команда безусловного перехода JMP, оператор SHORT. Команды сравнения (CMP), условного перехода (все), управления циклом (LOOP). Программирование разветвлений и циклов.

Массивы и структуры

Описание массивов в ЯА. Особенности модификации адресов в ПК, запись модифицируемых адресов в ЯА. Структуры: описание типов в переменных, задание начальных значений полей, доступ к полям. Примеры обработки массивов и структур. Старшинство операторов ЯА.

Битовые операции. Упакованные данные

Логические команды в (NOT, AND, TEST, OR, XOR). Программирование логических выражений. Команды сдвига (SHR, SHL) Реализация быстрого умножения и деления на степени 2. Упакованные данные, операция над частями машинных слов. Упакованные логические массивы и множества. Машинное представление, реализация операций над ними.

Программные сегменты

Особенности сегментирования (базирования) адресов в ПК. Префиксы сегментных регистров. Соглашения о выборе сегментных регистрах по умолчанию. Описание программных сегментов, директива SEGMENT. Операторы SEG и OFFSET. Директива ASSUME и ее назначение. Начальная загрузка сегментных регистров. Директива INCLUDE. Типичная структура программы на ЯА. Стек и регистры SS и SP. Описание сегмента стека, начальная загрузка регистров SS и SP. Стековые команды (PUSH, POP). Примеры использования стека. Регистр BP и доступ к элементам стека.

Процедуры (подпрограммы)

Дальние переходы. Назначение процедур. Директива PROC, близкие и дальние процедуры. Вызовы процедур и возвраты из них, команды CALL и RET. Передача параметров (по значению и по адресу) через регистры и через стек. Особенности реализации рекурсивных процедур.

Списки

Машинное представление списков. Реализация основных операций над ними. Организация кучи (области для размещения списков), реализация процедур инициализации кучи (INIT), выделения (NEW) и освобождения (DISPOSE) места в куче.

Макросредства

Предварительное преобразование текста программы; понятие макроязыка этапа макрогенерации и макрогенератора. Условное ассемблирование: назначение, IF-блоки, IF-директивы (IF, IFIDN, IFDIF, IFB, IFNB). Запись логических выражений (операторы отношений, логические операторы). Блоки повторения: назначение, REPT-, IRP- и IRPC- блоки. Макрооператоры <>, & и !. Макросы: назначение, макроопределения, макрокоманды, макроподстановки, макрорасширения. Сравнение макросов и процедур. Директивы LOCAL и EXITM.

Многомодульные программы

Понятие модульного программирования, независимая трансляция модулей. Структура модуля. Внешние и общие имена, директивы EXTRM и PUBLIC; сегментирование внешних имен, доступ к ним. Объединение сегментов из разных модулей, параметры директивы SEGMENT. «Разноязычные» модули, соглашения о связях. Ассемблерные вставки.

  Ввод-вывод. Прерывания

Машинные команды ввода-вывода (IN, OUT), порты. Использование механизма прерываний для контроля за событиями в ЭВМ, вектор прерывания INT. Примеры сервисных процедур ОС для ввода-вывода и построение на их основе операций ввода-вывода и останова, используемых в курсе.

 

ТЕХНОЛОГИЯ И СРЕДСТВА СОЗДАНИЯ ПРОГРАММ

Последовательность подготовки и запуска ассемблерных программ.

Обработка текста программы

Задачи, решаемые современным редактором текстов программ.

Макрогенерация текста программы

Варианты взаимодействия макрогенератора с ассемблером. Принципы обработки макросов, блоков повторения и директив условной трансляции.

Трансляция

Основные задачи транслятора. Проблема ссылок вперед и два прохода транслятора. Таблицы транслятора. Основные действия транслятора на каждом из проходов. Структура объектного модуля.

Компоновка

Основные действия компоновщика: объединение модулей, редактирование межмодульных связей, построение загрузочного модуля. Структура загрузочного модуля.

Загрузка

Основные действия загрузчика: загрузка программы, настройка ее на место, запуск выполнения.

Выполнение и отладка

Управление программой на этапе выполнения. Отладчик: основные возможности.

 

СПИСОК ЛИТЕРАТУРЫ

Любимский Э.З., Мартынюк В.В., Трифонов II . Программирование М.: Наука, 1980. Корнеев В.В., Киселев А.В. Современные микропроцессоры. -М:Нолидж, 1998. Пильщиков В.Н. Программирование на языке ассемблера IBM PC. - М: Диалог-МИФИ, 2000. Митницкии В.Я. Архитектура IBM PC и язык ассемблера (Учебное пособие).- М.: МФТИ, 2000. Донован ДЖ, Системное программирование. - М.: Мир, 1975. Пустоваров В. И. Ассемблер в программировании информа­ционных и управляющих систем. - М.: Энтроп, 1997. Юров В.И. Assembler: Учебник - СПб: ПИТЕР, 2000. Пильщиков В.Н. Упражнения по языку ассемблера MASM (Учебное пособие). - М.: Изд-во факультета ВМиК МГУ, 1997. Задания практикума на ЭВМ (1 курс). Методическая разработка. - М.: МГУ, 1992.


Если вы заметили в тексте ошибку, выделите её и нажмите Ctrl+Enter.

© 2001-2016 Московский физико-технический институт
(государственный университет)

Техподдержка сайта

МФТИ в социальных сетях

soc-vk soc-fb soc-tw soc-li soc-li
Яндекс.Метрика