Практическая работа №9
Тема: Параллельные и последовательные порты и их
особенности работы
Цель: Изучение особенностей работы параллельных и последовательных портов
Знать: Характеристики внешних интерфейсов ПК;
Уметь: Работать с внешними интерфейсами ПК.
Теоретическая часть
Принтеры, модемы и другое периферийное оборудование подключаются к компьютеру через стандартизированные интерфейсы, называемые портами. В зависимости от способа передачи информации между сопряженными устройствами различают параллельные и последовательные интерфейсы.
Последовательный порт стандарта RS-232-C. Является стандартом для соединения ЭВМ с различными последовательными внешними устройствами. В операционных системах каждому порту RS-232 присваивается логическое имя COM1-COM4.
Параллельный порт используется для одновременной передачи 8 битов информации. В компьютерах этот порт используется главным образом для подключения принтера, графопостроителей и других устройств. Параллельные порты обозначаются LPT1-LPT4.
Интерфейс USB (Universal Serial Bus) – универсальная последовательная шина призвана заменить устаревшие последовательный (COM-порт) и параллельный (LTP-порт) порты. Шина USB допускает подключение новых устройств без выключения компьютера. Шина сама определяет, что именно подключили к компьютеру, какой драйвер и ресурсы понадобятся устройству, после чего выделяет их без вмешательства пользователя. Шина USB позволяет подключить до 127 устройств.
IEEE 1394 (Institute of Electrical and Electronic Engineers 1394 – стандарт Института инженеров по электротехнике и электронику 1394) - последовательный интерфейс, предназначенный для подключения внутренних компонентов и внешних устройств. IEEE 1394 известен также под именем FireWire «огненный провод». Цифровой последовательный интерфейс FireWire характеризуется высокой надежностью и качеством передачи данных, его протокол поддерживает гарантированную передачу критичной по времени информации, обеспечивая прохождение видео- и аудиосигналов в реальном масштабе времени без заметных искажений. При помощи шины FireWire можно подключить до 63 устройств и практически в любой конфигурации, чем она выгодно отличается от трудноконфигурируемых шин SCSI. Этот интерфейс используется для подключения жестких дисков, дисководов CD-ROM и DVD-ROM, а также высокоскоростных внешних устройств, таких как видеокамеры, видеомагнитофоны и т.д.
Практическая часть
Задание 1.
Определить внешние интерфейсы целевого компьютера.
Задание 2.
Подключить к целевому компьютеру принтер.
Задание 3
Подключить к целевому компьютеру монитор
Задание 4
Подключить к целевому компьютеру сканер.
Контрольные вопросы
1. Какие типы внешних интерфейсов вы знаете?
2. Дайте сравнительную характеристику интерфейсов USB и IEEE 1384 (FireWire).
3. Дайте сравнительную характеристику параллельного и последовательного порта.
4. Что такое порты устройств?
5. Охарактеризуйте основные виды портов
Рекомендуемая литература
1. Максимов Н.В., Партыка Т.Л., Повпов И.И. Архитектура ЭВМ и вычислительных систем. М.: ФОРУМ: ИНФРА-М, 20014
Практическая работа N10
Тема: Программирование арифметических и логических команд
Цель: Получение практических навыков использования операций сложения, вычитания и умножения; освоение использования окон Module и Inspect программы TURBO DEBUGGER.
Теоретическая часть
Архитектура компьютера
Архитектура компьютера (АК) - абстрактное представление компьютера, которое отражает его схемотехническую, логическую и функциональную организацию. В понятие архитектуры компьютера входят:
Структурная схема
Организация и разрядность интерфейсов
Набор и доступность регистров
Организация памяти
1. Структурная схема
Рис 1
где МП - микропроцессор, АЛУ - арифметико-логическое устройство, УУ - устройство управления, ОЗУ - оперативное запоминающее устройство, ША - шина адреса, ШД - шина данных, ШУ - шина управления.
2. Организация и разрядность интерфейсов
При рассмотрении общей схемы ЭВМ под интерфейсами подразумевают шины обмена информацией (на схеме ША - шина адреса, ШД - шина данных, ШУ - шина управления). Посредством этих шин организован интерфейс (связь, взаимодействие) между МП и другими частями компьютера.
Для ПК на базе процессора i8086 эти шины имеют следующие разрядности:
шина адреса - 20;
шина данных - 8;
шина управления - 1.
3. Набор и доступность регистров
Регистр — 16ти-разрядная ячейка памяти, расположенная непосредственно в МП. Доступ к таким ячейкам осуществляется намного быстрее, чем к ячейкам памяти в ОЗУ. МП содержит большое количество регистров, и каждый из них имеет собственное название. Не все регистры доступны для практического использования. Ниже приведена классификация по функциональному назначению доступных регистров.
а). Регистры общего назначения
ax
|
ah
|
al
|
si
|
|
|
|
|
|
|
bx
|
bh
|
bl
|
di
|
|
|
|
|
|
|
cx
|
ch
|
cl
|
sp
|
|
|
|
|
|
|
dx
|
dh
|
dl
|
bp
|
|
|
Рис 2
|
Особенностью данной группы регистров является то, что они могут использоваться при различных арифметико-логических операциях (регистры арифметико-логического устройства).
Для регистров ax, bx, cx, dx можно получить доступ отдельно к старшему или младшему байту слова. Старший байт обозначается h (high), младший - l (low). Так регистр ax может использоваться и целиком, и по частям: ah - старший байт регистра ax, al - младший байт регистра ax (см. Рис 2).
Регистры si и di называют индексными регистрами, их можно использовать по своему усмотрению, но официально они предназначены для поддержки цепочечных команд.
Регистры sp и bp лучше не использовать без особой необходимости на начальном этапе изучения ассемблера. Данные регистры используются при работе со специальной областью памяти - стеком, неправильное их использование может внести в программу труднообнаруживаемые ошибки.
б). Сегментные регистры
Название "сегментные" данные регистры получили от применяемого в МП Intel способа адресации памяти. Этот способ состоит в поблочном использовании памяти, блоки называются сегментами. Каждая программа может одновременно использовать 4 сегмента (блока) памяти:
сегмент с кодом программы;
сегмент с данными;
сегмент стека;
дополнительный сегмент данных.
Для задания местоположения этих сегментов в памяти (для адресации) и применяются сегментные регистры. В данную группу входят 4 регистра:
cs (code segment) - сегмент кода;
ds (data degment) - сегмент данных;
ss (stack segment) - сегмент стека;
es (extension data segment) - дополнительный сегмент данных.
в). Регистры состояния и управления
Регистры данной группы предоставляют доступ к некоторой дополнительной информации о состоянии МП и о результате выполнения последней арифметико-логической операции.
Регистр указатель (ip)
В регистре ip содержится адрес команды, которая будет выполняться следующей. Фактически этот адрес содержится в паре регистров cs:ip. cs содержит адрес сегмента кода, а ip - смещение (положение относительно начала сегмента) нужной команды
Флаговый регистр (flags)
Флаговый регистр особо выделяется среди всех остальных. У этого регистра каждый бит (для флагового регистра биты именуется флагами) имеет определённое назначение и собственное название. Флаги отражают состояние микропроцессора и особенности результата выполнения последней арифметической или логической операции. Флаг либо установлен, либо сброшен (0, 1).
x
|
0
|
x
|
x
|
OF
|
DF
|
IF
|
TF
|
SF
|
ZF
|
0
|
AF
|
0
|
PF
|
1
|
CF
|
Флаги состояния:
CF (Carry) - флаг переноса. Используется арифметическими командами и командами сдвигов;
PF (Parity) - флаг контроля четности. Содержит 1, если сумма единиц в восьми младших разрядах регистра является четным числом, или 0, если она нечетна;
AF (Auxiliary) - дополнительный флаг переноса. Содержит значение переноса из 3-го бита восьмибитовых данных;
ZF (Zero) - флаг ноля. Содержит 1, если результат арифметической операции или операции сравнения нулевой, в противном случае содержит 0;
SF (Sign) - знаковый флаг. Содержит знак результата (старший бит) после выполнения арифметических операций (0 = '+',1= '-');
OF (Overflow) - флаг переполнения. Указывает, что в результате выполнения арифметической команды возникло переполнение старшего разряда результата;
Флаг управления:
DF (Direction) - флаг направления. Определяет, в каком направлении будут обрабатываться данные цепочечными командами - от младших адресов к старшим или наоборот;
Системные флаги:
IF (Interrupt) - флаг разрешения прерываний. Указывает на возможность внешних прерываний;
TF (Trap) - флаг пошагового выполнения. Устанавливает выполнение команд процессора в пошаговом режиме (для отладки программ).
4. Организация памяти
Физическая память, к которой МП имеет доступ, называется оперативной памятью (ОП) или оперативным запоминающим устройством (ОЗУ). Память можно условно представить в виде простой последовательности пронумерованных байт. Порядковый номер байта называется его физическим адресом.
Доступ а любому байту ОЗУ осуществляется по шине адреса, которая, как мы уже говорили, является 20-разрядной (для i8086). Разрядность шины ограничивает объём доступной памяти, так 20 разрядов шины позволяют записать адреса от 0 до 220-1 (1 Мбайт). Все адреса удобнее записывать в шестнадцатеричном виде (диапазон физических адресов от 00000h до FFFFFh).
Для записи любого физического адреса необходимо 20 разрядов. Но все регистры МП 16-разрядные. Для получения 20-разрядного адреса используется следующий механизм:
Всю физическую память условно можно разбить на параграфы (1 параграф = 16 байт);
Память будем выделять программам только небольшими блоками, данные блоки будем в дальнейшем называть сегментами памяти или просто сегментами.
Программа может состоять из любого количества сегментов;
Каждый сегмент может начинаться только с начала параграфа, т.е. адресом сегмента будет номер его первого параграфа (такой адрес уже 16-разрядный);
Рис 3
Такой механизм называется сегментацией, он поддерживается на аппаратном уровне (мы не можем его заменить или изменить). В МП имеются специальные сегментные регистры, которые содержат адреса сегментов в памяти.
Так как под адресом сегмента понимается номер параграфа, с которого он начинается, то для получения физического адреса начала сегмента необходимо умножить его на 16. Например, сегмент 0032h имеет физический адрес 0032h x 10h = 00320h.
Для определения адреса конкретной ячейки памяти недостаточно знать адрес сегмента, в котором она находится. Необходимо знать позицию этой ячейки относительно начала сегмента. Этот относительный адрес называют эффективным адресом или смещением. Поскольку максимальный размер сегмента ограничен 64 килобайтами, то смещение будет записываться 16-разрядным значением.
Таким образом, от 20-разрядного физического адреса мы перешли к адресу, состоящему из двух 16-разрядных частей: адрес сегмента и смещение. Такие составные адреса называются логическими и записываются так:
96AF
|
:
|
E305
|
|
|
|
сегмент
|
|
смещение
|
Механизм сегментации служит не только для перехода от 20-разрядных физических адресов к 16-разрядным логическим, он необходим для защиты программ от взаимного влияния.
В отличие от языков программирования высокого уровня, язык ассемблера поставляется без среды разработки программ. Поэтому разработчику приходится самостоятельно контролировать весь процесс создания программы. Для языка ассемблера этот процесс включает в себя следующие этапы:
Постановка задачи (точное и подробное описание функциональности будущей программы, а также описание всех входных и выходных данных и способа их передачи программе);
Разработка алгоритма программы (построение блок схемы, граф-схемы или текстовое или математическое описание решения);
Формализация алгоритма (запись алгоритма на языке программирования).
Создание текстового файла программы с расширением .asm (напримерmy.asm). Отсутствие среды разработки позволяет программисту самостоятельно выбрать текстовый редактор для написания кода программы. Для этой цели подойдет любой текстовый редактор с нумерацией строк, мы рекомендуем редактор, встроенный в оболочку "FAR Manager".
Компиляция программы. Компиляция - процесс перевода программы из текстового вида в машинный код. При использовании компилятора фирмы Borland необходимо выполнить:tasm my.asm т.е. запускаем компилятор tasm и передаем с командной строки имя файла, содержащего программу. Если программа имеет синтаксические ошибки, компилятор выдаст сообщение об ошибке с указанием номера строки и описанием для каждой ошибки (нужно вернуться на этап №3 и исправить синтаксические ошибки). В случае успешной компиляции будет создан файл, содержащий объектный код программы my.obj, который ещё не является исполняемым модулем.
Компоновка программы. Компоновка - создание из файла объектного кода исполняемого модуля.
tlink my.obj
В качестве параметра компоновщик tlink принимает имя файла содержащего объектный код программы (в нашем случае - my.obj). В случае успешной компоновки будет создан исполняемый модуль my.exe
Запуск и тестирование исполняемого модуля программы. На данном этапе необходимо проверить, соответствует ли написанная программа постановке задачи, сделанной нами на этапе №1. Неправильная работа программы говорит об алгоритмической ошибке (семантическая ошибка), поэтому для успешного её устранения нужно вернуться на этап разработки алгоритма (этап №2).
Команда пересылки данных:
mov <�приемник>, <�источник>
команда mov – команда пересылки данных, результатом ее исполнения является копирование данных из операнда <�источник> в операнд <�приемник>.
Пример:
mov ah, 09; записать в регистр ah число 09
mov cl, ah; скопировать байт из регистра ah в ch
mov bx, cx; скопировать слово из регистра cx в регистр bx
mov ch, 0fh
mov ch, bl
Вопрос: чему будет равно содержимое регистра ch после выполнения данного участка программы?
Простейшие арифметические команды:
Команда
|
Описание
|
add <�слагаемое 1>, <�слагаемое 2>
|
Записать в операнд <�слагаемое 1> значение суммы обоих операндов;
|
inc <�операнд >
|
Увеличить <�операнд > на единицу;
|
sub <�операнд 1>, <�операнд 2 >
|
Записать в операнд <�операнд 1> значение разности операндов;
|
dec <�операнд >
|
Уменьшить <�операнд> на единицу.
|
mul <�сомножитель 2>
|
Умножает <�сомножитель1> на <�сомножитель2>
если <�сомн2> - байт, то <�сомн1> - регистр al (результат - слово в ax);
если <�сомн2> - слово, то <�сомн1> - регистр ax (результат - двойное слово в dx:ax);
|
div <�делитель>
|
Делит <�делимое> на <�делитель>
если <�делитель> - байт, то <�делимое> - регистр ax (результат - частное в al,остаток в ah);
если <�делитель> - слово, то <�делимое> - регистровая пара dx:ax(результат - частное в ax, остаток в dx);
|
Отладчик Turbo Debugger
Отладчик Turbo Debugger ( TD) – оконная среда отладки программ, позволяет производить отладку программ, написанных на языках Pascal, C, assembler.
TD позволяет определить:
место логической ошибки (семантической);
причину логической ошибки.
Для использования TD необходимо выполнить следующие действия:
tasm /zi *.asm ;откомпилировать с добавлением отладочной информации
tlink / v *. obj ;скомпоновать с добавлением отладочной информации
td *. exe
Файл с исходным кодом программы должен находиться в директории отладчика.
Практическая часть
Вывести на экран сумму двух введенных с клавиатуры цифр (значение вводить так, чтобы сумма была меньше 10); (10 баллов).
Изучите работу отладчика TD на примере задачи из первого задания.
Необходимо изучить:
a). Систему меню программы TD.
b). Выполнение программы в четырех режимах
режим безусловного выполнения;
выполнение по шагам;
до текущего положения курсора;
с установкой точек прерывания.
c). Систему вспомогательных окон
-
С клавиатуры вводятся два символа. Вывести их в обратном порядке (Например: '1gg1', 'assa', '-==-'); (5 баллов);
Имеется два числа (цифры) a и b. Вычислить y = 2a - b + 1; (8 баллов);
Вывести на экран сумму двух любых введенных с клавиатуры цифр.
Оформить отчет, содержащий все этапы практической части.
Контрольные вопросы
Назовите этапы программирования на Ассемблере
Перечислить регистры общего назначения, для чего их можно использовать?
Что такое сегментация?
Охарактеризуйте команду mov.
Приведите примеры арифметических команд.
Литература
Юров В. Assembler. – СПб.: Питер,2012 – 624 с.
Бройдо В.Л. ПЭВМ: Архитектура и программирование на ассемблере. СПб.: СПб.ГИЭА, 1994. – 218 с.
Л. Скэнлон. Персональные ЭВМ IBM PC и XT. Программирование на языке Ассемблера: Пер. с англ. – 2-е изд., стереотип. – М.: Радио и связь.2015. –336 с.
Основы программирования микропроцессоров, команды ассемблера http://mp8051.narod.ru/commands.html#moving
|