Семинары по курсу «Архитектура ЭВМ и язык ассемблера» учебно-методическое пособие. Часть 1. - Е.А. Кузьменкова_ В.С. Махнычев_ В.А. Падарян (1110587)
Текст из файла
МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТимени М.В. ЛомоносоваФакультет вычислительной математики и кибернетикиЕ.А. Кузьменкова, В.С. Махнычев, В.А. ПадарянСеминары по курсу"Архитектура ЭВМ и языкассемблера"(учебно-методическое пособие)Часть 1МАКС ПРЕССМосква – 2014УДК 004.2+004.43(075.8)ББК 32.973-02я73К89Печатается по решению Редакционно-издательского Советафакультета вычислительной математики и кибернетикиМГУ имени М.В. ЛомоносоваРецензенты:C.Ю. Соловьев, профессорА.Н.
Терехин, доцентЕ.А. Кузьменкова, В.С. Махнычев, В.А. Падарян.К89 Семинары по курсу «Архитектура ЭВМ и язык ассемблера»: учебно-методическое пособие. Часть 1. — Издание 2-е, дополненное. М.Издательский отдел факультета ВМиК МГУ им. М.В. Ломоносова (лицензияИД № 05899 от 24.09.2001); МАКС Пресс, 2014.
– 80 с.ISBN 978-5-89407-529-7ISBN 978-5-317-04885-3Учебное пособие содержит задачи и упражнения по первой части семинарских занятийкурса «Архитектура ЭВМ и язык ассемблера», прочитанного студентам 1 потока 1 курсафакультета Вычислительной математики и кибернетики МГУ в 2010-2014 гг. Пособиепредназначено для студентов, изучающих основной курс программирования, а такжедля преподавателей и аспирантов.Ключевые слова: архитектура ЭВМ, язык ассемблера, x86, nasm, реализация языка Си.УДК 004.2+004.43(075.8)ББК 32.973-02я73This textbook contains problems and exercises for the first part of the seminar activities of the"Computer architecture and assembly language"course for 1st year 1st stream students of thefaculty of Computational Mathematics and Cybernetics of Moscow State University that hadbeen delivered in 2010-2014.
The textbook is aimed at students learning the baseprogramming course and at lecturers and postgraduate students.Key words: computer architecture, assembly language, x86, nasm, C languageimplementation.ISBN 978-5-89407-529-7© Факультет вычислительной математики икибернетики МГУ имени М.В. Ломоносова, 2014ISBN 978-5-317-04885-3© Кузьменкова Е.А., Махнычев В.С., Падарян В.А., 2014СодержаниеВведение .............................................................................................................................
61. Организация ассемблерной программы .................................................................. 7Ассемблерная инструкция ............................................................................................. 9Директивы определения данных ............................................................................... 10Константы ......................................................................................................................
12Классы памяти .............................................................................................................. 13Пример 1-1 Минимальная программа ....................................................................... 13Регистры общего назначения ...................................................................................... 14Пересылка данных .......................................................................................................
15Обращение к памяти .................................................................................................... 16Сложение и вычитание ................................................................................................ 16Пример 1-2 Определение значения регистра ...........................................................
17Пример 1-3 Переворот байтов в двойном слове ...................................................... 17Средства ввода/вывода ............................................................................................... 19Пример 1-4 Hello, World! ............................................................................................. 21Задачи ............................................................................................................................
222. Арифметика и целочисленные типы данных ......................................................... 25Машинные данные и типы данных языка Си ............................................................ 25Пример 2-1 Интерпретация арифметических инструкций ....................................... 26Пример 2-2 Объявление переменной ........................................................................ 27Пример 2-3 Приведение типа ..................................................................................... 28Пример 2-4 Приведение беззнакового типа ............................................................. 29Пример 2-5 Умножение ............................................................................................... 30Пример 2-6 Деление ....................................................................................................
31Пример 2-7 Арифметика «длинных» чисел ............................................................... 32Задачи ............................................................................................................................ 333. Указатели и адресная арифметика ......................................................................... 36Взятие адреса и разыменование ................................................................................ 36Отображение оператора разыменования в язык ассемблера ................................ 36Пример 3-1 Двукратное разыменование ...................................................................
373Пример 3-2 Разыменование и побочные эффекты ................................................... 37Пример 3-3 Восстановление кода .............................................................................. 39Указатели и массивы .................................................................................................... 40Пример 3-4 Адресная арифметика и массивы .......................................................... 41Пример 3-5 Массив указателей ..................................................................................
42Задачи ............................................................................................................................ 424. Операции над битовыми векторами ...................................................................... 45Поразрядные (побитовые) операции .........................................................................
45Пример 4-1 Логические операции над битовыми векторами ................................. 45Сдвиги и вращения ....................................................................................................... 46Пример 4-2 Двигаем и вращаем ................................................................................. 47Пример 4-3 Реализация умножения регистра на константу через сложения исдвиги ............................................................................................................................ 47Пример 4-4 Восстановление выражения ...................................................................
48Пример 4-5 Обращение операций ............................................................................. 49Пример 4-6 Безусловный модуль ............................................................................... 50Манипуляции с отдельными битами ......................................................................... 51Пример 4-7 Установка и сброс отдельных битов ...................................................... 51Задачи ............................................................................................................................
515. Управляющие конструкции ...................................................................................... 54Безусловная и условная передача управления ......................................................... 54Операции над булевыми переменными ................................................................... 55Пример 5-1 Восстановление типа и операции сравнения ....................................... 55Реализация ветвления и цикла ...................................................................................
56Пример 5-2 Ветви прорастают .................................................................................... 57Пример 5-3 Геометрическая прогрессия ................................................................... 58Короткая логика ............................................................................................................ 60Пример 5-4 Восстановление управляющих конструкций ........................................
Характеристики
Тип файла PDF
PDF-формат наиболее широко используется для просмотра любого типа файлов на любом устройстве. В него можно сохранить документ, таблицы, презентацию, текст, чертежи, вычисления, графики и всё остальное, что можно показать на экране любого устройства. Именно его лучше всего использовать для печати.
Например, если Вам нужно распечатать чертёж из автокада, Вы сохраните чертёж на флешку, но будет ли автокад в пункте печати? А если будет, то нужная версия с нужными библиотеками? Именно для этого и нужен формат PDF - в нём точно будет показано верно вне зависимости от того, в какой программе создали PDF-файл и есть ли нужная программа для его просмотра.