- •Содержание
- •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. Инструкции управления процессором
- •Литература
5.4. Особенности периферийных устройств ibm-pc
Развитие процессоров не происходило без развития периферии ЭВМ. Это был как количественный рост, так и качественный. С программной точки зрения, за время развития процессоров от 8086 до 80686 произошли следующие значительные изменения.
Развитие системной шины привело к появлению возможностей и стандартов на устройства с программно изменяемыми адресами, номерами прерываний и т.д., что позволяет избежать конфликтов устройств при разделении ресурсов системы.
Шина PCI позволила устройствам работать в режиме Bus Master — в этом режиме устройство может самостоятельно управлять шиной, например для того чтобы, не прерывая процессор, самостоятельно обмениваться информацией с ОЗУ.
Видеосистемы стали использовать увеличивающееся адресное пространство процессора, что позволило программам обращаться к видеопамяти без использования каких-либо программных переключателей.
Развиваются возможности для построения многопроцессорных систем.
Появились новые возможности ранее существовавших устройств. Видеосистемы стали обладать мощными графическими сопроцессорами, жесткие диски поддерживают самодиагностику, шифрование данных и прочее, выключать и включать5 питание компьютеров можно программно и т.д.
У ПЗУ BIOS все большего числа устройств появляется возможность перепрограммирования (Flash-ROM) средствами устройства.
В настоящей работе мы, в основном, рассмотрим только те возможности, которые предоставляют процессоры Intel и IBM-PC в реальном режиме, под управлением MS-DOS (или совместимой с ней ОС) и будем делать минимальные предположения о конфигурации компьютера.
Если вас интересуют другие возможности, вы можете обратиться как к литературе [1-3] так и к Интернет, на серверы производителей процессоров.
Например, описание на процессоры фирмы Intel (а также другие микросхемы Intel) вы найдете на сервере http://www.intel.ru.
Опыт автора показывает, что подробные описания процессоров и компонентов других фирм найти в Интернете сложнее, т.к. они не столь охотно делятся информацией. Например, согласно комментарию на сервере фирмы VIA, описания по программированию своих чипсетов6 она предоставляет только официальным партнерам. В [1] говорится, что фирма IBM подбирала микропроцессор своих первых персональных компьютеров именно по признаку доступности документации.
Закрытость информации не мешает пользоваться стандартными (по сравнению с IBM-AT 10-15-летней давности) возможностями процессоров, чипсетов и периферии, но новые возможности остаются закрытыми, если только производитель не подчиняет их хотя бы одному из существующих стандартов. Примером такого современного стандарта является, например, стандарт VBE для видеосистем или ATA для жестких дисков и CD-ROM. Обратным примером могут служить различные реализации звуковых кодеков AC97.
Если явная информация о работе того или иного устройства так и осталась недоступна вам, при хорошем знании языка C можно воспользоваться открытыми текстами UNIX-подобных операционных систем, например, LINYX или FreeBSD. Эти системы поддерживают очень много устройств и постоянно развиваются.