- •Исследование процессов ввода/вывода информации и системы команд микропроцессоров семесйства intel 80×i86
- •Введение
- •1.Цель работ
- •2.1. Архитектура микропроцессора Intel 8086.
- •2.2. Адресация памяти и данных.
- •2.3. Синтаксис операндов языка assembler
- •2.4. Команды передачи данных.
- •Mov ax,segment
- •3) Mov [bx],dx переслать (dx) в ячейку адресованную (вх)
- •Mov al,es:[si]; ds заменен на es
- •Команды lea, lds, les.
- •Lea reg, memr
- •Команда xchg
- •Стековые команды push и рор
- •2.5 Префикс программного сегмента (psp)
- •2.6 Арифметические команды
- •Команды сложения и вычитания
- •0015 65А0
- •0037 1D3e
- •0004 В837
- •0001 F0f8
- •Команды расширения знака.
- •Команды inc, dec, neg, cmp.
- •Команды двоичного умножения и деления.
- •Дополнительные сведения.
- •2.7 Основные правила при разработке программ на языке assembler.
- •Int 21h
- •Int 21h
- •Int 21h
- •Int 21h
- •Int 21h
- •Int 21h
- •Int 21h
- •3. Лабораторные работы
- •Контрольные вопросы
- •Лабораторная работа № 2
- •Контрольные вопросы
- •Лабораторная работа № 3
- •Дополнительная информация для составления программы по данному заданию.
- •Лабораторная работа № 4
- •Контрольные вопросы
- •Лабораторная работа № 5
- •Контрольные вопросы
- •Лабораторная работа № 6
- •Контрольные вопросы
- •Лабораторная работа № 7
- •Рекомендации по выполнению лабораторной работы.
- •4.1. Тексты подпрограмм вывода на экран.
- •Int 21h
- •Int 21h
- •Контрольные вопросы
- •Лабораторная работа № 8
- •Контрольные вопросы
- •Лабораторная работа № 9
- •Контрольные вопросы
- •Лабораторная работа № 10
- •Контрольные вопросы
- •Контрольные вопросы
- •Лабораторная работа № 14
- •Контрольные вопросы
- •6. Требования к отчетам
- •7. Библиографический список
Контрольные вопросы
1. Входит ли этот символ в число реально введенных символов, которое регистрируется в буфере?
2. В каком байте буфера регистрируется это число?
3. Обязательно ли предварительно заполнять буфер символом $?
4. Символы строки вводятся в буфер сразу целой строкой или по отдельности по мере их набора на клавиатуре при использовании функции DOS – 0ah?
Лабораторная работа № 6
”Исследование процесса ввода информации в память ПЭВМ с использованием клавиатуры и функции DOS 01h”.
Используемая в предыдущей лабораторной работе №5 функция 0ah представляет удобный, но ограниченный способ ввода данных. Например, с помощью этой функции нельзя ввести в память ЭВМ информацию, превышающую 255 символов клавиатуры. Поэтому чаще всего используют функции посимвольного ввода, позволяющие организовать буфер для вводимых данных, значительно превышающий 255 байт и, кроме того, контролировать отображение символов на экране, реакцию программы на функциональные и управляющие клавиши и т.д.
Функция DOS 01h: Считать символ из STDIN с эхом, ожиданием и проверкой на Ctrl – Break
Вход: ah=01h
Выход: al=ASCII – код символа или 0. Если al=0, второй вызов этой функции возвратит в al расширенный ASCII – код символа.
При чтении с помощью этой функции введённый символ автоматически отображается на экране (посылается в устройство STDOUT – так что его можно перенаправить в файл). При нажатии Ctrl – C или Ctrl – Break выполняется команда int 23h – выход из программы.
Таким образом, в данном задании необходимо составить программу, которая, используя функцию DOS – 01h, вводит строку символов клавиатуры в память ЭВМ с последующим выводом их на экран монитора. В этом случае количество вводимых символов в буфер также удобно задавать в регистре cx и использовать команду loopnz. Как и в предыдущих программах, ввод/вывод информации сопроводить необходимыми сообщениями. Кроме того, исследуйте реакцию программы при вводе данных с клавиатуры, если во время набора символов нажать клавиши:
Ctrl – Break;
Ctrl – C
Backspace;
Enter;
Клавиши со стрелками и некоторые другие.
Сделайте соответствующие выводы.
Отметим, что для раздельного ввода символов клавиатуры в память ЭВМ, проверки её на нажатие клавиши имеются и другие функции DOS, такие как 06h, 07h, 08h, 0bh, 0ch, а также средства BIOS, подробно рассмотренные в [2].
Контрольные вопросы
1. Будет ли реагировать программа на нажатие клавиш Ctrl – Break и Ctrl – C при использовании функции DOC – 0ah?
2. Какое назначение имеет функция DOS – 01h?
3. Ограничивается ли размер буфера 255 вводимыми символами клавиатуры при использовании этой функции?
4. Как реагирует программа при использовании функции DOC – 0ah на нажатие клавиш Backspace, Enter, Ctrl – Break и Ctrl – C в момент ввода основных символов клавиатуры?
Лабораторная работа № 7
”Исследование процесса суммирования на ПЭВМ однобайтовых чисел с использованием команды add al,[si]”
В данной работе необходимо составить программу, которая выполняет следующие действия. В программе в области, определяемой оператором .DATA, организовать массив из двух однобайтовых чисел без знака. Затем программно сложить эти числа и результат сложения вывести на экран монитора, снабдив его соответствующим сообщением. Сумма должна занимать одно слово. Повторить то же самое для чисел со знаком. Отрицательный результат выводить на экран монитора, как в прямом, так и в дополнительном коде.
Отметим, что отрицательные числа в ЭВМ автоматически представляются в дополнительном коде. Признаком отрицательного числа является наличие “1” в знаковом разряде числа.