Национальный цифровой ресурс Руконт - межотраслевая электронная библиотека (ЭБС) на базе технологии Контекстум (всего произведений: 635051)
Контекстум
Руконтекст антиплагиат система

Программирование на языке ассемблера (200,00 руб.)

0   0
Первый авторЛисицин Д. В.
ИздательствоИзд-во НГТУ
Страниц100
ID774760
АннотацияУчебное пособие представляет собой первую часть курса программирования на языке ассемблера, в нем рассматриваются основы языка ассемблера, а также интерфейс с языком С++.
Кому рекомендованоУчебное пособие предназначено для студентов, обучающихся по направлениям «Прикладная математика и информатика» и «Математическое обеспечение и администрирование информационных систем».
ISBN978-5-7782-3679-0
УДК004.431.4(075.8)
ББК32.973.26-018я73
Лисицин, Д.В. Программирование на языке ассемблера : учеб. пособие / Д.В. Лисицин .— Новосибирск : Изд-во НГТУ, 2018 .— 100 с. — ISBN 978-5-7782-3679-0 .— URL: https://rucont.ru/efd/774760 (дата обращения: 05.05.2024)

Предпросмотр (выдержки из произведения)

Программирование_на_языке_ассемблера.pdf
УДК 004.431.4(075.8) Л 632 канд. техн. наук, доцент И.Л. Еланцева канд. техн. наук, доцент Ю.В. Тракимус Рецензенты: и прикладной информатики для студентов III курса ФПМИ Работа подготовлена на кафедре теоретической Л 632 Лисицин Д.В. Программирование на языке ассемблера: учебное пособие / Д.В. Лисицин. – Новосибирск: Изд-во НГТУ, 2018. – 100 с. ISBN 978-5-7782-3679-0 Учебное пособие представляет собой первую часть курса программирования на языке ассемблера, в нем рассматриваются основы языка ассемблера, а также интерфейс с языком С++. Учебное пособие предназначено для студентов, обучающихся по направлениям «Прикладная математика и информатика» и «Математическое обеспечение и администрирование информационных систем». УДК 004.431.4(075.8) ISBN 978-5-7782-3679-0 © Лисицин Д.В., 2018 © Новосибирский государственный технический университет, 2018
Стр.2
ОГЛАВЛЕНИЕ Введение ................................................................................................................... 3 1. Регистры микропроцессора .......................................................................... 5 1.1. Регистры общего назначения .................................................................... 5 1.2. Сегментные регистры ................................................................................ 6 1.3. Регистр командного указателя .................................................................. 6 1.4. Регистр флагов............................................................................................ 7 2. Структура программы на языке ассемблера ............................................. 7 2.1. Команды ...................................................................................................... 8 2.2. Директивы ................................................................................................... 9 2.2.1. Директива COMMENT .................................................................... 9 2.2.2. Директивы SEGMENT и ASSUME ................................................ 9 2.2.3. Упрощенные директивы сегментации ......................................... 10 2.2.4. Директива END .............................................................................. 12 2.2.5. Директива PROC ............................................................................ 12 2.2.6. Директивы определения данных .................................................. 13 2.2.7. Директива ALIGN .......................................................................... 17 2.3. Особенности разработки 16-разрядных программ под MS-DOS ......... 18 3. Команды пересылки данных ...................................................................... 20 3.1. Команда MOV .......................................................................................... 20 3.2. Команда XCHG ........................................................................................ 21 3.3. Команды работы со стеком ..................................................................... 21 3.4. Команда обмена байт ............................................................................... 24 4. Арифметические команды .......................................................................... 24 4.1. Команды сложения................................................................................... 24 4.2. Команда XADD ........................................................................................ 27 4.3. Команда приращения значения приемника на единицу ....................... 27 4.4. Команды вычитания ................................................................................. 28 97
Стр.97
4.5. Команда уменьшения содержимого приемника на единицу ................ 29 4.6. Команда обращения знака ....................................................................... 29 4.7. Команды умножения ................................................................................ 30 4.8. Команды деления ..................................................................................... 31 4.9. Команды преобразования типа ............................................................... 32 5. Режимы адресации ........................................................................................ 35 5.1. Регистровая и непосредственная адресация .......................................... 35 5.2. Эффективный адрес ................................................................................. 35 5.3. Прямая адресация ..................................................................................... 36 5.4. Косвенная регистровая адресация .......................................................... 37 5.5. Адресация по базе .................................................................................... 39 5.6. Прямая адресация с индексированием ................................................... 41 5.7. Адресация по базе с индексированием .................................................. 42 6. Команды передачи управления и сравнения ........................................... 44 6.1. Команды CALL и RET ............................................................................. 44 6.2. Команда безусловного перехода JMP .................................................... 46 6.3. Команды условной передачи управления .............................................. 46 6.4. Команда СМР ........................................................................................... 48 6.5. Установка байта по условию ................................................................... 50 6.6. Пересылка по условию ............................................................................ 51 6.7. Команды управления циклами ................................................................ 52 7. Взаимодействие языков С++ и ассемблера .............................................. 54 7.1. Использование подпрограмм на языке ассемблера в программах на языке С++ ..................................................................................... 54 7.1.1. Основы взаимодействия языков С++ и ассемблера .................... 55 7.1.2. Передача управления в подпрограмму и обратно ....................... 56 7.1.3. Использование глобальных переменных для передачи данных ............................................................................................ 58 7.1.4. Использование аргументов для передачи данных ...................... 59 7.1.5. Возвращение значения через имя подпрограммы....................... 65 7.1.6. Использование аргументов для возвращения значений ............. 67 7.2. Вызов подпрограмм на языке С++ из программ на языке ассемблера ......................................................................................................... 67 7.3. Использование локальных данных ......................................................... 69 7.4. Использование библиотечных функций языка Си в программах/подпрограммах на языке ассемблера ............................................. 72 7.5. Использование вставок на языке ассемблера в программах на языке С++ ................................................................................................. 74 98
Стр.98
8. Команды манипулирования битами ......................................................... 76 8.1. Логические команды AND, OR, XOR и NOT ........................................ 76 8.2. Команда проверки TEST ......................................................................... 79 8.3. Команды сканирования бит ..................................................................... 79 8.4. Команды проверки и модификации бит ................................................. 80 8.5. Команды сдвига и циклического сдвига ................................................ 81 8.5.1. Команды сдвига ............................................................................. 82 8.5.2. Команды циклического сдвига ..................................................... 85 8.5.3. Команды сдвига двойной точности .............................................. 87 9. Двоично-десятичные числа ......................................................................... 88 9.1. Форматы хранения двоично-десятичных чисел .................................... 88 9.2. Коррекция результата сложения ............................................................. 90 9.3. Коррекция результата вычитания ........................................................... 92 9.4. Коррекция результата умножения .......................................................... 93 9.5. Коррекция результата деления................................................................ 93 10. Контрольные вопросы ............................................................................... 94 Библиографический список .................................................................................. 96 99
Стр.99

Облако ключевых слов *


* - вычисляется автоматически
Антиплагиат система на базе ИИ