- •«Санкт-Петербургский государственный электротехнический университет «лэти» им.В.И.Ульянова (Ленина)» (сПбГэту)
- •Архитектура компьютера
- •Оглавление
- •Основные понятия архитектуры и организации компьютеров.
- •1.1. Состав компьютера
- •1.2. Виды (классы) компьютеров
- •1.3. Принцип программного управления и машина фон Неймана
- •1.4. Понятия архитектуры, организации и реализации компьютера
- •1.5. Многоуровневая организация компьютера
- •1.6. Понятие семантического разрыва между уровнями
- •1.7. Организация аппаратных средств вм
- •Представление и обработка данных в вм
- •Целые числа
- •Представление и обработка вещественных чисел.
- •Логические операции над битовыми наборами
- •Представление и обработка символов.
- •Представление видеоинформации и аудиоинформации.
- •Видеоинформация.
- •Аудиоинформация
- •Организация процессора и основной памяти вм
- •3.1. Типовая структура процессора и основной памяти
- •3.2. Основной цикл работы процессора
- •3.3. Организация процессора и памяти в архитекуре Intel x86.
- •3.3.1. Программно доступные регистры процессора
- •3.3.2. Организация стека в архитектуре Intel х86
- •3.3.3. Организация выполняемых программ в ms dos
- •3.3.4. Режимы адресации памяти в архитектуре Intel х86
- •1. Регистровая адресация
- •2. Непосредственная адресация
- •3. Прямая адресация
- •4. Косвенная адресация
- •7. Индексная адресация с масштабированием
- •8. Адресация по базе с индексированием и масштабированием
- •3.3.5. Краткая характеристика системы команд процессоров Intel х86
- •3.3.6 .Арифметическая обработка чисел с использованием математического сопроцессора
- •Организация прерываний в процессорах Intel x86
- •Эволюция микроархитектуры Intel x86
- •Управление выполнением команд в компьютерах.
- •Аппаратный способ формирования управляющих сигналов
- •Микропрограммный способ формирования управляющих сигналов
- •Компьютеры с сокращенным набором команд
- •Организация памяти в компьютере
- •6.1. Назначение и основные характеристики памяти
- •6.2. Основные среды хранения информации
- •6.3. Методы доступа к данным.
- •6.4. Память с произвольным доступом (ппд)
- •6.5. Блочная организация основной памяти.
- •6.6. Постоянные запоминающие устройства (пзу - rom)
- •6.7. Ассоциативные запоминающие устройства (азу)
- •6.8. Иерархическая система памяти
- •Организация кэш-памяти.
- •Прямое отображение блоков оп на кэш-память
- •Наборно-ассоциативное отображение блоков оп на Кэш-память
- •6.10. Организация виртуальной памяти
- •Организация виртуальной памяти в Intel 80386 и более старших моделях.
- •Защита памяти в процессоре Intel 80386
- •Организация работы с внешней памятью
- •7.1. Типы, виды, свойства дисковых накопителей информации.
- •7.2. Магнитные дисковые накопители.
- •7.3. Основные физические и логические параметры жмд
- •7.4. Контроллеры жестких дисков
- •Логическое хранение и кодирование информации
- •Интерфейсы жестких дисков
- •Работа накопителя
- •Внешняя память на cd и dvd дисках.
- •Принципы организации raid массивов
- •Основные принципы построения raid массивов
- •Одиночные уровни raid
- •Составные уровни raid массивов
- •Сравнительные результаты
- •Системные и локальные шины
- •9.1. Общие положения и требования к шинам
- •9.2. Основные виды, характеристики и параметры шин
- •9.3. Стандарты шин
- •Организация системы ввода-вывода в вм
- •10.1. Назначение и основные требования к системе ввода-вывода вм
- •10.2. Архитектура систем ввода-вывода
- •10.3. Способы выполнения операции передачи данных
- •Синхронная передача данных
- •Ввод-вывод по программному прерыванию
- •Ввод-вывод по аппаратному прерыванию (прямой доступ к памяти)
- •10.4. Структуры контроллеров ву для различных режимов передачи данных
- •Программные средства управления вводом-выводом (пс увв)
- •Состав пс увв
- •11.2. Основные компоненты процедуры управления ввода-вывода общего вида
- •11.3 Состав и реализация устанавливаемого драйвера символьного типа
- •Список литературы
- •Приложения
- •Регистры ммх
- •Типы данных
- •Команды ммх
- •П2. Краткое введение в программирование на языке Ассемблера
- •1. Директивы задания данных
- •2. Директивы сегментации программы
- •3. Директивы группирования.
- •4. Порядок размещения сегментов.
П2. Краткое введение в программирование на языке Ассемблера
Ассемблер – машинно-ориентированный язык, предназначенный для написания программ, наиболее эффективных по времени и потреблению ресурсов, или обеспечивающих расширенные функциональные возможности по использованию ресурсов, недоступные из языков высокого уровня. Обычно он используется для написания относительно коротких программ или фрагментов кода, включаемых в программы на языках высокого уровня.
Особенностями ассемблера по сравнению с языком машинных команд являются:
-
символическое наименование операций и операндов;
-
отсутствие привязки к конкретным адресам памяти;
-
возможность специализации программ с помощью макросредств.
Процесс подготовки, трансляции и выполнения ассемблерной программы можно пояснить с помощью схемы, приведенной на рис. П2.1.
Рис. П2.1
Дальнейшее изложение ориентировано на использование ассемблеров Intel 80X86 – MASM и TASM.
П2.1 Формат оператора ассемблера
В ассемблере различают два вида форматов:
-
формат исполняемого оператора имеет вид
[метка:] операция операнд(ы)] [ ; комментарий]
-
формат директивы имеет вид
[имя] директива [аргумент(ы)] [ ; комментарий]
Указанные поля форматов имеют следующий смысл:
- метка/имя символически задает адрес данной команды в исполняемом файле /адрес директивы в исходном тексте;
- операция символически задает дейстие, выполняемое над операндами при выполнении программы;
- директива символически задает действие, выполняемое над аргументами при трансляции программы и генерации объектного файла.
- операнды – имена, числа, символы, участвующие в операции (может быть 0/1/2 операнда);
- аргументы – имена, числа, символы, используемые в директиве (число аргументов не ограничено);
- комментарий – пояснение к тексту программы, при трансляции не рассматривается.
Директива (иногда называется псевдокоманда) ассемблера выполняется на этапе трансляции исходного текста программы в объектный файл, исполняемых машинных команд не порождает.
Исполняемый оператор в процессе трансляции исходного текста порождает машинные команды, которые выполняются на этапе выполнения программы.
П2.2. Директивы ассемблера
1. Директивы задания данных
1.1. Директивы определения имен
а) идентификатор EQU выражение
Позволяет символически именовать константы в программе.
Например
N EQU 100h
TABLE EQU DS:[BP][SI]
MINS_DAY EQU 60*24
b) идентификатор = выражение
Позволяет символически именовать переопределяемые в программе константы. Используется только для числовых выражений.
1.2. Директивы выделения памяти
Имеет формат:
идентификатор D* список значений
Здесь D* - одна из приведенных ниже директив:
DB – выделить байты;
DW – выделить слова;
DD – выделить двойные слова;
DF – выделить блоки по шесть байт;
DQ – выделить учетверенные слова;
DT – выделить блоки по десять байт.
Данная директива позволяет зарезервировать в памяти блоки заданного размера и присвоить им, если требуется, определенные значения, заданные в списке. Например:
text_string db ‘Hello world’ ; выделяет 11 байт и заполняет их кодами символов
b_max db 255 ; выделяет 1 байт и записывает в него число 255
b_min db -128 ; выделяет 1 байт и записывает в него число –128
rez_w dw ? ; выделяет 1 слово и не заполняет его (обычно ; используется в программе для записи результата)
rez_tab dw 20dup(?) ; выделяет 20 слов, но не заполняет их данными
b_tab db 4dup(?),8,5,4dup(1); выделяет 10 байт: 4 не заполняются, затем
; записываются числа 8, 5 и четыре раза по 1
fl_num dd 5.03E-2 ; выделяется двойное слово и в него записывается
; число с плавающей запятой 5.0Е-2.
