- •Рабочая программа учебной дисциплины «Архитектура компьютеров»
- •Лист согласования
- •1. Пояснительная записка
- •1.1 Место дисциплины в структуре ооп.
- •1.2 Цели и задачи дисциплины
- •1.3 Перечень профессиональных компетенций
- •2. Тематический план
- •3. Содержание дисциплины
- •3.1 Содержание тем дисциплины
- •Тема 1.Введение
- •Тема 2. Класс simd
- •Тема 3. Класс mimd
- •Тема 4. Методы параллельных вычислений
- •Тема 5. Алгоритмы и методы организации функционирования вычислительных систем
- •Тема 6. Производительность вычислительных систем
- •Тема 7. Сети эвм и телекоммуникации
- •4. Вопросы для итогового контроля (зачет)
- •5. Критерии оценки знаний
- •6.Список рекомендуемой литературы.
- •6.1 Основная литература:
- •Учебно-методический блок
- •1. Теоретическая часть
- •Лекция №2 Формы представления чисел в эвм.
- •Алгебраическое представление двоичных чисел
- •Вычитание
- •Лекция №3 Основные термины и определения предметной области
- •Классическая схема эвм.
- •Системная шина
- •Лекция №4 Классификация эвм
- •Лекция №5 Центральный процессор
- •Регистр
- •О сегментах.
- •Лекция №7 Загрузка и выполнение программ на компьютере
- •Лекция №8 Параллельные вычислительные процессы и системы Виды параллелизма
- •Реализация параллельных систем
- •Параллельные вычислительные процессы и системы Нейровычислительные системы.
- •Сложности использования параллельных систем
- •Параллельные вычислительные процессы и системы Программирование параллельных систем
- •Лекция №10 Классификация вс по соотношению потока команд и потока данных
- •Сравнение параллельной и конвейерной организации вс
- •Лекция №11.
- •Лекция №12. Вычислительные сети
- •1 Лабораторные работы № 1, 2 «Работа клавиатуры»
- •2 Лабораторная работа № 3 «Работа видеосистемы»
- •3 Лабораторная работа № 4 «Работа внешних накопителей
- •4 Лабораторная работа № 5 «Работа дисковых накопителей
- •5 Лабораторная работа № 6 «Работа с портами
- •Приложение а справочная информация по вызовам bios
- •Приложение б справочная информация по вызовам функций ms-dos
- •Приложение в
- •Литература
Приложение б справочная информация по вызовам функций ms-dos
MS-DOS (прерывание 21h)
ah = 1h – ввод символа с клавиатуры с эхом (ожидает нажатия клавиши).
После выполнения:
al = ASCII-код;
ah = 2h – вывод символа на экран.
dl = ASCII-код;
ah = 3h – ввод символа из последовательного порта.
После выполнения:
al = ASCII-код;
ah = 4h – вывод символа в последовательный порт.
dl = ASCII-код;
ah = 6h – вывод символа на экран.
dl – ASCII-код символа;
ah = 9h – вывод строки на экран.
ds:dx – адрес выводимой строки, строка должна заканчиваться символом ’$’;
ah = fh – открытие файла. Используется FCB.
ds:dx – адрес FSB;
ah = 10h – закрытие файла. Используется FCB.
ds:dx – адрес FSB;
ah = 13h – удаление файла. Используется FCB.
ds:dx – адрес FSB;
ah = 14h – чтение записей файла с последовательным доступом. До этого необходимо установить адрес области DTA.
ds:dx – адрес FSB;
ah = 15h – запись файла с последовательным доступом. До этого необходимо установить адрес области DTA.
ds:dx – адрес FSB;
ah = 16h – создание файла. Используется FCB.
ds:dx – адрес FSB;
ah = 1ah – задание адреса области DTA.
ds:dx – адрес DTA;
ah = 2ch – считывание текущего времени.
После выполнения:
ch – час,
cl – минуты,
dh – секунды,
dl – сотые секунды;
ah = 3ch – создание файла. Используется ASCIIZ-строка.
ds:dx – адрес ASCIIZ-строка,
cl – атрибут файла.
После выполнения:
ax – логический номер файла;
ah = 3eh – закрытие файла. Используется ASCIIZ-строка.
bx – логический номер файла;
ah = 3fh – чтение данных из файла. Используется ASCIIZ-строка.
bx – логический номер файла,
ds:dx – адрес DTA,
cx – число байт для считывания;
ah = 40h – вывод данных в файл. Используется ASCIIZ-строка.
bx – логический номер файла,
ds:dx – адрес DTA,
cx – число байт для считывания;
ah = 4ch – завершение программы.
Приложение в
ОСНОВНЫЕ ДИРЕКТИВЫ АССЕМБЛЕРА [5]
Обозначение |
Выполняемое действие |
DB |
Директива резервирования памяти, выделяющая 1 байт. Ставится обычно после имени переменной |
DW |
Директива резервирования памяти, выделяющая 2 байта (1 слово). Ставится обычно после имени переменной |
DD |
Директива резервирования памяти, выделяющая 4 байта (двойное слово). Ставится обычно после имени переменной |
DUP |
Директива, дублирующая число, которое после нее стоит, в выделенные ячейки памяти. Используется совместно с директивами резервирования памяти |
SEGMENT; ENDS |
Директивы начала и конца сегмента. Ставятся после имени данного сегмента |
PROC; ENDP |
Директивы начала и конца процедуры. Ставятся после имени данной процедуры |
END |
Директивы конца программы. Выполняет две функции: Ассемблер на ней заканчивает трансляцию программы; она служит для указания Ассемблеру, где начинается исполняемый блок программы. Обычно после директивы ставится либо название метки, либо имя процедуры, с которой начинается работа программы |
ASSUME |
Директива, связывающая имена сегментов программы с мнемониками сегментных регистров процессора. Пример: ASSUME CS:CSEG, DS:DSEG, SS:SSEG Имена сегментов CSEG, DSEG, SSEG связываются, в соответствии с функциями, которые они выполняют, с сегментными регистрами: CS (сегмент программного кода), DS (сегмент данных), SS (сегмент стека) |
ПРИЛОЖЕНИЕ Г
ОСНОВНЫЕ КОМАНДЫ АССЕМБЛЕРА [5]
Таблица Г.1 – Основные команды Ассемблера
Обозначение |
Выполняемое действие |
1 |
2 |
MOV <операнд1>,<опе-ранд2> |
Команда пересылки данных. Содержимое операнда2 записывается в операнд1 |
IN al,<адрес порта> |
Команда пересылки содержимого порта в регистр процессора. Операндами приемника могут быть только: al (разрядность порта – 1 байт) или регистр ax (разрядность порта – 2 байта). Если адрес порта меньше 256, то в команде его можно указывать числом, если адрес больше, используется регистр dx (перед этим в него заносится адрес порта) |
OUT <адрес порта>, al |
Команда пересылки содержимого регистра процессора в порт. Замечания, записанные для команды in, выполняются и для данной команды |
PUSH <операнд> |
Команда работы со стеком. Помещает содержимое операнда в стек |
POP <операнд> |
Команда работы со стеком. Извлекает из стека число и помещает его в операнд |
ADD <операнд1>,<опе-ранд2> |
Команда сложения. Складывает операнд1 и операнд2, результат сложения помещает в операнд1 |
SUB <операнд1>,<опе-ранд2> |
Команда вычитания. Вычитает из операнд1 операнд2, результат помещает в операнд1 |
MUL <операнд> |
Команда умножения. Второй сомножитель задается неявно – либо al, либо ax. Если операнд занимает 1 байт, то используется регистр al и результат вычисления помещается в регистр ax (al – младшая часть результата, ah – старшая часть результата) |
DIV <делитель> |
Команда деления. Делимое задается неявно – либо в регистре ax, либо в регистрах ax и dx (ax – младшая часть, dx – старшая часть). Если делитель занимает 1 байт, то используется регистр ax и результат деления помещается так: частное в регистр al, остаток в ah. Если делитель занимает 2 байта, то используются ax и dx, а результат деления помещается так: частное в регистр ax, остаток в dx |
INC операнд> |
Команда увеличения. Увеличивает содержимое операнда на 1 |
Продолжение таблицы Г.1
1 |
2 |
DEC операнд> |
Команда уменьшения. Уменьшает содержимое операнда на 1 |
AND <операнд1>,<опе-ранд2> |
Команда логического умножения. Выполняет побитовую логическую операцию «И» |
OR <операнд1>,<опе-ранд2> |
Команда логического сложения. Выполняет побитовую логическую операцию «ИЛИ» |
XOR <операнд1>,<опе-ранд2> |
Команда логического исключающего сложения. Выполняет побитовую логическую операцию исключающего «ИЛИ» |
NOT <операнд> |
Команда логического отрицания. Выполняет побитовую логическую операцию «НЕ», т.е. инвертирует значения каждого бита |
SHL <операнд>, <число сдвигов> |
Команда линейного сдвига влево. Выполняет побитовый сдвиг содержимого операнда на число, указанное вторым операндом. На место сдвинутых бит ставятся нули, выталкиваемые биты отбрасываются |
SHR <операнд>, <число сдвигов> |
Команда линейного сдвига вправо. Выполняет побитовый сдвиг содержимого операнда на число бит, указанное вторым операндом. На место сдвинутых бит ставятся нули, выталкиваемые биты отбрасываются |
ROL <операнд>, <число сдвигов> |
Команда циклического сдвига влево. Выполняет побитовый сдвиг содержимого операнда на число бит, указанное вторым операндом. Выталкиваемые биты ставятся в начало |
ROR <операнд>, <число сдвигов> |
Команда циклического сдвига вправо. Выполняет побитовый сдвиг содержимого операнда на число бит, указанное вторым операндом. Выталкиваемые биты ставятся в начало |
JMP <метка перехода> |
Команда безусловного перехода. Выполнение программы продолжается с метки, указанной после команды |
CALL <имя процедуры> |
Команда вызова процедуры. Управление передается на первую команду процедуры с данным именем |
RET |
Команда возврата из процедуры. Возвращает управление на следующую команду после команды вызвавшей данную процедуру |
CMP <операнд1>,<опе-ранд2> |
Команда сравнения. Сравнивает два операнда. Работает как обычное вычитание, но без записи результата. После выполнения выставляются соответствующие флаги |
Продолжение таблицы Г.1
1 |
2 |
J{N} <метка перехода> |
Команды условного перехода. В зависимости от результата сравнения передают управление на указанную метку. Вместо N указываются буква нужного условия перехода: je – = , jne – <>; j l – <; j
Числа со знаком jg – >; jge – ; j b – <; j
Числа без знака ja – >; jae – . |
LOOP <метка> |
Команда организации цикла. В команде указывается метка начала цикла. Команда работает с регистром cx, в котором хранится число циклов. Выполняет следующие действия: вычитает из содержимого регистра cx единицу, сравнивает его с нулем и если cx <> 0, то передает управление на метку начала цикла, если cx = 0, то выходит из цикла, передав управление следующей за ней команде |
CLI |
Команда сброса флага разрешения прерываний. Устанавливает в 0 бит, ответственный за разрешение прерываний в регистре флагов центрального процессора. Запрещает маскируемые прерывания |
INT <номер прерывания> |
Команда программного прерывания. Вызывает подпрограммы обработки соответствующих прерываний и передает им управление |
STI |
Команда установки флага разрешения прерываний. Устанавливает в единицу бит, ответственный за разрешение прерываний в регистре флагов центрального процессора. Разрешает прерывания |