- •Содержание
- •1. Введение
- •2. Представление информации в эвм
- •2.1. Системы счисления
- •2.1.1. Основные понятия
- •2.1.2. Системы счисления, используемые в вычислительной технике
- •2.1.3. Перевод чисел из одной системы счисления в другую
- •2.2. Типы данных
- •2.2.1. Типы данных, используемых в эвм
- •2.2.2. Константы
- •2.2.3. Логические величины
- •2.2.4. Символьные величины
- •2.2.5. Целые числа
- •2.2.6. Вещественные числа
- •2.3. Форматы команд
- •3. Основы построения эвм
- •3.1. Немного истории
- •3.2. Особенности архитектуры современной вычислительной машины
- •3.2.1. Основные понятия
- •3.2.2. Структурная организация машины
- •3.3. Вариант структуры микроЭвм
- •3.3.1. Общая структура машины
- •3.3.2. Процессор
- •3.3.3. Оперативная память
- •3.3.4. Системная память
- •3.3.5. Система адресации
- •3.3.6. Виртуальная память
- •3.3.7. Таймер
- •3.3.8. Внешние устройства
- •3.3.9. Принципы обмена информацией с внешними устройствами
- •Некоторые вопросы программного обеспечения
- •4.1. О программном обеспечении
- •4.2. Процесс компиляции
- •4.3. Компиляция с языка Ассемблера
- •5. Особенности архитектуры эвм типа ibm-рс
- •5.1. Введение
- •5.2. Исторический обзор процессоров клона 80х86
- •5.3. Классификация процессоров Intel 80х86
- •5.4. Особенности периферийных устройств ibm-pc
- •5.5. Характеристики компьютера
- •5.6. Сегментная адресация
- •5.7. Особенности распределения адресного пространства в компьютерах ibm-pc
- •5.7.1. Стандартная оперативная память (Conventional memory)
- •5.7.2. Область верхней памяти (Upper Memory Area ‑ uma)
- •5.7.3. Область высшей памяти (High Memory Area ‑ hma)
- •5.7.4. Расширенная память (eXtended Memory Specification — xms)
- •5.7.5. Дополнительная память (Expanded Memory Specification — ems)
- •5.8. Обмен информацией с периферийными устройствами
- •5.8.1. Порты ввода/вывода
- •5.8.2. Использование адресного пространства памяти
- •5.8.3. Прямой доступ к памяти
- •5.9. Прерывания
- •5.10. Начальный запуск эвм
- •5.11. Регистры процессора
- •5.11.1. Регистры общего назначения
- •5.11.2. Указатель инструкций
- •5.11.3. Регистр флагов и управляющие регистры
- •5.11.4. Регистры сегментов и селекторов
- •5.11.5. Системные адресные регистры
- •5.11.6. Регистры отладки
- •5.11.7. Регистры тестирования и модельно-специфические регистры
- •6. Debug — средство непосредственной коррекции и отладки загрузочного кода программ
- •6.1. Введение
- •6.1.1. Команды без аргумента
- •Input I порт
- •6.1.2. Команды обращения к ячейкам
- •15D0:010c bfffff mov di,ffff
- •15D0:010f 57 push di
- •6.1.3. Команды запуска программы
- •6.1.4. Команды просмотра и модификации регистров
- •7. Методы адресации
- •7.1. Введение
- •7.2. Регистровый метод адресации
- •159B:0101 1e push ds
- •159B:0101 1e push ds
- •159B:0101 1e push ds
- •7.3. Непосредственный метод адресации
- •7.4. Прямая адресация
- •7.5. Косвенная регистровая адресация
- •159B:0100 not word ptr [bx]
- •159B:0102 e000 loopnz 0104
- •7.6. Адресация по базе
- •7.7. Косвенная регистровая адресация с индексированием
- •159B:0102 0e push cs
- •7.8. Адресация по базе с индексированием
- •7.9. Относительная адресация
- •7.10. Косвенная регистровая адресация с масштабированием
- •7.11. Адресация по базе с индексированием и масштабированием
- •8. Синтаксис ассемблера
- •8.1. Директивы определения данных
- •8.1.1. Определение переменных
- •Cимвольные строки
- •Числовые данные
- •Примеры:
- •8.2. Выражения
- •8.3. Непосредственные операнды
- •8.4. Структуры
- •8.5. Сегменты
- •8.6. Модели памяти и упрощенные директивы определения сегментов
- •8.7. Упрощенные директивы описания сегментов
- •8.8. Создание программы на ассемблере
- •8.9. Получение выполняемого файла
- •9. Система команд
- •9.1. Классификация команд по операндам
- •9.2. Классификация команд по действию
- •9.2.1. Команды пересылки данных
- •9.2.2. Арифметические команды
- •8.2.3. Команды манипуляции битами
- •9.2.4. Управление центральным процессором
- •9.2.4. Команды передачи управления
- •Iret, iretd
- •9.3. Краткий список команд с используемыми операндами
- •9.3.1. Условные обозначения:
- •9.3.2. Инструкции пересылки данных
- •9.3.3. Арифметические, логические и инструкции сдвига
- •9.3.4. Инструкции обработки строк
- •9.3.5. Инструкции передачи управления
- •9.3.6. Инструкции управления процессором
- •Литература
2. Представление информации в эвм
2.1. Системы счисления
2.1.1. Основные понятия
Под системой счисления понимается способ записи и счета чисел с помощью цифровых знаков. Различают позиционные и непозиционные системы счисления. В позиционных системах счисления значение цифры непостоянно и зависит от места (позиции) в изображении числа.
Например, в числе 333 цифра 3 изображает и 3 сотни, и 3 десятка, и 3 единицы в зависимости от позиции в числе. В непозиционных системах счисления каждая цифра имеет одинаковое значение в любой позиции числа. Примером непозиционной является дошедшая до нас римская система счисления. В ней для изображения числа используются буквы латинского алфавита I - 1, V - 5, X - 10, L - 50, C - 100, M - 500, D - 1000.
Значение числа получается путем сложения или вычитания значений цифр. Если цифра с меньшим значением стоит слева от цифры с большим значением, то она вычитается из большего, а если справа, то прибавляется. Такие системы счисления называются аддитивными.
XXVII=10+10+5+1+1=27,
XL=50-10=40,
XIV=10+(5-1)=14,
CLXIV=100+50+10+(5-1)=164.
Непозиционные системы счисления неудобны не только для изображения чисел, но более всего для их счета.
В позиционных системах счисления некоторое число X изображается в виде:
+- X m Xm-1 ...X1 X0 .X-1 X-2 ...X –n ,
где Xi при m, m-1,...,1, 0, -1,...,-n — символы, используемые для записи числа, называются цифровыми знаками, базисными цифрами или просто ЦИФРАМИ. Цифры до десятичной точки '.' задают целую часть числа, после — дробную. Xm<>0 называется старшей цифрой числа. Множество значений всех различных цифр системы счисления образует БАЗУ системы счисления. Значение числа Х, изображенного в виде (2.1), вычисляется по формуле:
X=Xm Pm +X Pm-1 +...+X P1 +X P0 + X P-1 + X P-2...X P-n , (2.1)
где Хi - базовые значения цифр Xi, Pi - веса, определяющие значение единицы i-ой позиции числа. Наибольший интерес представляют системы счисления, в которых веса образуют геометрическую прогрессию с некоторым знаменателем Р, т.е.
X=Xm Pm +X m-1Pm-1 +...+X 1P1+X0 P 0 +X-1 P-1 +...X-n P-n. (2.2)
Знаменатель прогрессии p=-i называется ОСНОВАНИЕМ системы счисления, а формула (2.2) - разложением числа Х по степеням основания.
Количество различных цифр, необходимых для записи любого числа в системе счисления с основанием Р, равно Р, и их базовые значения находятся в диапазоне
0 <= Xi <Р. (2.3)
Неравенство (2.3) обязательно не для всех систем счисления. Системы счисления, в которых базовые значения всех цифр удовлетворяют (2.3), называются системами счисления с НЕОТРИЦАТЕЛЬНОЙ БАЗОЙ.
Пример: Р=10, цифры: 0,1,2,3,4,5,6,7,8,9 2 0 -1 -2 –3.
X=325,303=3102 +2101+5100 +310-1 +010-2 +310-3.
2.1.2. Системы счисления, используемые в вычислительной технике
Для выполнения арифметических действий в позиционных системах счисления используются одинаковые правила и таблицы сложения, вычитания, умножения. Можно обойтись без таблиц, если хорошо знать эти правила для десятичной системы счисления и в процессе вычисления всегда помнить, что есть число 10 в данной системе счисления.
В дальнейшем числа в системе счисления с основанием Р будем помечать (p), в десятичной — без индекса.
В очевидных случаях индекс будем опускать. Базовые значения цифр будем записывать в десятичной системе счисления.
Современные вычислительные машины на аппаратном уровне работают в двоичной системе счисления, т.е. они оперируют с двумя числами: 0 и 1. Но числа, записанные в виде 10011101001000110, трудно воспринимаются человеком. Мы привыкли работать в десятичной системе.
Для решения этой проблемы возможно либо представлять базовые цифры десятичной системы в двоичной форме (так называемая двоично-десятичная система), либо разработать алгоритмы перевода десятичных чисел в двоичные.
В вычислительной технике широко используются:
двоичная система (основание= 2), базисные цифры:
0 и 1;
восьмеричная (основание= 8), базисные цифры:
0 1 2 3 4 5 6 7;
десятичная (основание= 10), базисные цифры:
0 1 2 3 4 5 6 7 8 9;
шестнадцатеричная (основание= 16), базисные цифры:
0 1 2 3 4 5 6 7 8 9 A B C D E F.
Особое положение занимает смешанная двоично-десятичная система, в которой каждая десятичная цифра заменяется четырьмя двоичными разрядами:
24(10) = 0010 0100(2-10).
7485(10) = 0111 0100 1000 0101(2-10).
1001001001010000111(2-10)= 0100 1001 0010 1000 0111(2-10)= 49287(10).