Информатика и информационные технологии: конспект лекций
Добавить в закладки К обложке
- ЛЕКЦИЯ № 1. Введение в информатику - Страница 1
- 2. Системы счисления - Страница 2
- 3. Представление чисел в ЭВМ - Страница 3
- 4. Формализованное понятие алгоритма - Страница 4
- ЛЕКЦИЯ № 2. Язык Pascal - Страница 5
- 2. Стандартные процедуры и функции - Страница 6
- 3. Операторы языка Pascal - Страница 8
- ЛЕКЦИЯ № 3. Процедуры и функции - Страница 10
- 2. Процедуры в Pascal - Страница 11
- 3. Функции в Pascal - Страница 12
- 4. Опережающие описания и подключение подпрограмм. Директива - Страница 13
- ЛЕКЦИЯ № 4. Подпрограммы - Страница 14
- 2. Типы параметров подпрограмм - Страница 15
- ЛЕКЦИЯ № 5. Строковый тип данных - Страница 17
- 2. Процедуры и функции для переменных строкового типа - Страница 18
- 3. Записи - Страница 19
- 4. Множества - Страница 20
- ЛЕКЦИЯ № 6. Файлы - Страница 21
- 2. Модули. Виды модулей - Страница 24
- ЛЕКЦИЯ № 7. Динамическая память - Страница 26
- 2. Работа с динамической памятью. Нетипизированные указатели - Страница 27
- ЛЕКЦИЯ № 8. Абстрактные структуры данных - Страница 28
- 2. Стеки - Страница 29
- 3. Очереди - Страница 30
- ЛЕКЦИЯ № 9. Древовидные структуры данных - Страница 31
- 2. Операции над деревьями - Страница 32
- 3. Примеры реализации операций - Страница 33
- ЛЕКЦИЯ № 10. Графы - Страница 34
- 2. Представление графа списком инцидентности. Алгоритм обхода графа в глубину - Страница 35
- 3. Представление графа списком списков. Алгоритм обхода графа в ширину - Страница 36
- ЛЕКЦИЯ № 11. Объектный тип данных - Страница 37
- 2. Наследование - Страница 39
- 3. Создание экземпляров объектов - Страница 40
- 4. Компоненты и область действия - Страница 41
- ЛЕКЦИЯ № 12. Методы - Страница 42
- 2. Конструкторы и деструкторы - Страница 44
- 3. Деструкторы - Страница 45
- 4. Виртуальные методы - Страница 47
- 5. Поля данных объекта и формальные параметры метода - Страница 48
- ЛЕКЦИЯ № 13. Совместимость типов объектов - Страница 49
- 2. Расширяющиеся объекты - Страница 50
- 3. Совместимость типов объектов - Страница 52
- ЛЕКЦИЯ № 14. Ассемблер - Страница 53
- 2. Программная модель микропроцессора - Страница 54
- 3. Пользовательские регистры - Страница 55
- 4. Регистры общего назначения - Страница 56
- 5. Сегментные регистры - Страница 57
- 6. Регистры состояния и управления - Страница 58
- ЛЕКЦИЯ № 15. Регистры - Страница 59
- 2. Регистры управления - Страница 60
- 3. Регистры системных адресов - Страница 61
- 4. Регистры отладки - Страница 62
- ЛЕКЦИЯ № 16. Программы на Ассемблере - Страница 63
- 2. Синтаксис ассемблера - Страница 64
- 3. Директивы сегментации - Страница 68
- ЛЕКЦИЯ № 17. Структуры команд на Ассемблере - Страница 71
- 2. Способы задания операндов команды - Страница 73
- 3. Способы адресации - Страница 75
- ЛЕКЦИЯ № 18. Команды - Страница 77
- 2. Арифметические команды - Страница 81
- ЛЕКЦИЯ № 19. Команды передачи управления - Страница 90
- 2. Команды передачи управления - Страница 95
2. Арифметические команды
Микропроцессор может выполнять целочисленные операции и операции с плавающей точкой. Для этого в его архитектуре есть два отдельных блока:
1) устройство для выполнения целочисленных операций;
2) устройство для выполнения операций с плавающей точкой.
Каждое из этих устройств имеет свою систему команд. В принципе, целочисленное устройство может взять на себя многие функции устройства с плавающей точкой, но это потребует больших вычислительных затрат. Для большинства задач, использующих язык ассемблера, достаточно целочисленной арифметики.
Обзор группы арифметических команд и данныхЦелочисленное вычислительное устройство поддерживает чуть больше десятка арифметических команд. На рисунке 27 приведена классификация команд этой группы.
Рис. 27. Классификация арифметических команд
Группа арифметических целочисленных команд работает с двумя типами чисел:
1) целыми двоичными числами. Числа могут иметь знаковый разряд или не иметь такового, т. е. быть числами со знаком или без знака;
2) целыми десятичными числами.
Рассмотрим машинные форматы, в которых хранятся эти типы данных.
Целые двоичные числаЦелое двоичное число с фиксированной точкой – это число, закодированное в двоичной системе счисления.
Размерность целого двоичного числа может составлять 8, 16 или 32 бит. Знак двоичного числа определяется тем, как интерпретируется старший бит в представлении числа. Это 7,15 или 31-й биты для чисел соответствующей размерности. При этом интересно то, что среди арифметических команд есть всего две команды, которые действительно учитывают этот старший разряд как знаковый, – это команды целочисленного умножения и деления imul и idiv. В остальных случаях ответственность за действия со знаковыми числами и, соответственно, со знаковым разрядом ложится на программиста. Диапазон значений двоичного числа зависит от его размера и трактовки старшего бита либо как старшего значащего бита числа, либо как бита знака числа (табл. 9).
Таблица 9. Диапазон значений двоичных чиселДесятичные числаДесятичные числа – специальный вид представления числовой информации, в основу которого положен принцип кодирования каждой десятичной цифры числа группой из четырех бит. При этом каждый байт числа содержит одну или две десятичные цифры в так называемом двоично-десятичном коде (BCD – Binary-Coded Decimal). Микропроцессор хранит BCD-числа в двух форматах (рис. 28):
1) упакованном формате. В этом формате каждый байт содержит две десятичные цифры. Десятичная цифра представляет собой двоичное значение в диапазоне от 0 до 9 размером 4 бита. При этом код старшей цифры числа занимает старшие 4 бита. Следовательно, диапазон представления десятичного упакованного числа в 1 байте составляет от 00 до 99;
2) неупакованном формате. В этом формате каждый байт содержит одну десятичную цифру в четырех младших битах. Старшие 4 бита имеют нулевое значение. Это так называемая зона. Следовательно, диапазон представления десятичного неупакованного числа в 1 байте составляет от 0 до 9.
Рис. 28. Представление BCD-чисел
Как описать двоично-десятичные числа в программе? Для этого можно использовать только две директивы описания и инициализации данных – db и dt. Возможность применения только этих директив для описания BCD-чисел обусловлена тем, что к таким числам также применим принцип «младший байт по младшему адресу», что очень удобно для их обработки. И вообще, при использовании такого типа данных как BCD-числа, порядок описания этих чисел в программе и алгоритм их обработки – это дело вкуса и личных пристрастий программиста. Это станет ясно после того, как мы ниже рассмотрим основы работы с BCD-числами.
Арифметические операции над целыми двоичными числамиСложение двоичных чисел без знака
Микропроцессор выполняет сложение операндов по правилам сложения двоичных чисел. Проблем не возникает до тех пор, пока значение результата не превышает размерности поля операнда. Например, при сложении операндов размером в байт результат не должен превышать число 255. Если это происходит, то результат оказывается неверным. Рассмотрим, почему так происходит.