- •Исследование процессов ввода/вывода информации и системы команд микропроцессоров семесйства 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. Библиографический список
Лабораторная работа № 4
”Исследование процесса ввода информации в память ПЭВМ с использованием клавиатуры и функции DOS 0Ah”
Как и в случае вывода на экран, средства DOS представляют набор функций для чтения данных с клавиатуры, которые используют стандартное устройство ввода STDIN, так что в качестве источника данных можно применить файл или стандартный вывод другой программы.
Функция DOS 0ah:Считать строку символов из STDIN в буфер
Вход: ah=0ah
: ds:dx=адрес буфера
Выход: Буфер содержит введённую строку
Для вызова этой функции надо подготовить буфер, первый байт которого заключает в себе максимальное число символов для ввода (1 - 255). После нажатия клавиши Enter строка c символами клавиатуры (включая последний символ CR(0dh)) записывается в буфер, начиная с третьего байта. Во второй байт записывается длина реально введённой строки без учёта последнего символа CR. Таким образом, для того чтобы вывести на экран ранее введенные символы клавиатуры необходимо в регистре dx задать адрес первого введённого в буфер символа, а в регистре cx – количество реально введённых символов. Для задания начального адреса буфера, как и ранее, можно воспользоваться оператором offset, а затем сместить указатель адреса на два байта. Это можно сделать применив команду арифметического сложения содержимого регистра dx и числа 2, либо применив два раза команду inc к регистру dx.
В данной работе необходимо составить программу, которая после её запуска выводит на экран монитора сообщение: ’Ввод информации с клавиатуры в память ЭВМ’. Далее программа останавливается и ждет ввода символов с клавиатуры. Например, можно ввести предложение ’Я изучаю ассемблер’, символы которого при вводе будут печататься на экране монитора. Необходимо обеспечить их печатанье с новой строки. После нажатия клавиши Enter набранные символы введутся в память. Отметим, что вся вводимая и выводимая информация печатается на английском языке. Для проверки правильности ввода Ваша программа должна обеспечить их последующий вывод на экран монитора с новой строки. Перед выводом символов напечатать сообщение: ’Вывод символов клавиатуры из памяти ЭВМ’. Перед окончанием программы сформировать временную задержку для наблюдения результатов работы программы, также как в программах при выполнении предыдущих заданий.
Контрольные вопросы
1.С помощью какой функции DOS в сегмент данных вводится строка символов клавиатуры?
2.Какую структуру имеет буфер под вводимую строку символов клавиатуры?
3.Какое максимальное число символов строки можно ввести в этот буфер?
4.Записывается ли символ CR в буфер ввода строки данных?
Лабораторная работа № 5
”Исследование процесса преобразования введённой в ПЭВМ информации для её вывода на экран монитора в обратном порядке”.
Составить программу, которая вводит последовательность символов с клавиатуры в память ЭВМ, а выводит их на монитор в обратном порядке, то есть с последнего символа, исключая CR. Следовательно, в этой программе должен быть организован и второй буфер, куда перед выводом должны быть переписаны символы из первого буфера с изменённым порядком следования. Этот вывод информации также снабдить сообщением, например, ”Вывод строки символов в обратном порядке”.