Основы информатики

Ознакомление с архитектурой персонального компьютера. Программирование микропроцессора Intel 8086, команды пересылки. Арифметические и логические команды микропроцессора Intel 8086. Работа с клавиатурой компьютера. Способы прерывания системы BIOS.

Рубрика Программирование, компьютеры и кибернетика
Вид лабораторная работа
Язык русский
Дата добавления 11.11.2014
Размер файла 550,3 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Лабораторная работа № 1. Ознакомление с архитектурой персонального компьютера

Цели и задачи работы:

Ознакомление со структурой персонального компьютера и микропроцессора Intel 8086(К1810ВМ86).

Краткие теоретические сведения:

Основными элементами аппаратных средств компьютера являются: системный блок, клавиатура, устройство отображения дисплей), дисководы, печатающее устройство (принтер) и различные средства для ассинхронной коммуникации и управления игровыми программами. Системный блок состоит из системной платы, блока питания и ячейки расширения для дополнительных плат, обеспечивающие подключение дисплея, дисководов и т.д.

На системной плате размещены:

- микропроцессор (Intel 8086/8088)

- постоянная память (ROM 40 Кбайт)

- оперативная память (RAM 640 Кбайт)

Структура микропроцессора INTEL 8086.

Главным элементом или "мозгом " компьютера является микропроцессор (МП) Intel 8086 (отечественный аналог-К1810ВМ86), который выполняет обработку всех команд и данных и имеет 20-разрядную шину адреса и 16-ти- разрядную шину данных.

Обычно процесс выполнения команд в МП включает в себя следующие этапы:

1) извлечение кода команды (операндов команды, если этого требует код команды) из памяти;

2) выполнение команды;

3) запись результата (если этого требует команда). В МП 8086 два раздельных процессорных блока (рис. 1) операционное устройство (ОУ) и шинный интерфейс (ШИ).

Работа ОУ заключается в декодировании и выполнении команд, в то время как ШИ подготавливает команды для выполнения, осуществляет связь с внешними устройствами, обеспечивает выборку команд и данных из памяти, формирует очередь команд. Операционное устройство содержит 16-разрядное арифметико-логическое устройство (АЛУ) с регистром состояния или регистром флагов, устройство управления и регистры общего назначения. Эти устройства обеспечивают выполнение команд, арифметические вычисления и логические операции.

Три элемента шинного интерфейса: устройство управления шиной, очередь команд и сегментные регистры осуществляют три важные функции: во-первых, ШИ управляет передачей данных на ОУ, память и на внешнее устройство ввода-вывода. Во-вторых, четыре сегментных регистра управляют объемом памяти до 1 Мбайта.

Третья функция ШИ это выборка команд. Так как все программные команды находятся в памяти, ШИ должен иметь доступ к ним для выборки их в очередь команд. В очереди может быть записано до четырех кодов команд. Это позволяет ШИ выдавать в ОУ сохраненные команды по мере необходимости без загрузки внешних магистралей МП. Блок ШИ организует получение нового кода команды, как только 2 байта в очереди команд будут переданы в ОУ. Пока ОУ занята выполнением первой в очереди команды, ШИ выбирает следующую команду из памяти. Коды команд поступают в операционное устройство последовательно так, как они записаны в программе. Если ОУ выполняет команду передачи управления в другое место программы, то ШИ очищает очередь команд, получает код команды из нового адреса, передает его в ОУ и начинает заполнять очередь заново.

Рис 1. Схема микропроцессора INTEL 8086.

Память. Микрокомпьютер имеет два типа внутренней памяти: постоянная память (ПЗУ) или ROM и оперативная память (ОЗУ) или RAM. ROM представляет собой специальную микросхему, из которой возможно только чтение информации. Поскольку данные специальным образом "прожигаются", они не могут быть изменены.

Основным назначением ROM является поддержка процедур начальной загрузки: при включении питания компьютера ROM выполняет различные проверки составных блоков компьютера (тестирование) и загружает в оперативную память RAM данные или с системной дискеты или с жесткого диска (например, DOS-операционную систему. Для целей программирования наиболее важным элементом ROM является BIOS - базовая система ввода-вывода и формы для графических символов.

Память, с которой имеет дело программист, представляет собой оперативную память или ОЗУ (RAM). Это память, доступная как для записи, так и для чтения. RAM можно рассматривать как рабочую область для временного хранения программ и данных на время выполнения.

Так как содержимое оперативной памяти теряется при отключении питания, необходима внешняя память для сохранения программ и данных. В качестве внешней памяти используются дискета или жесткий диск типа винчестера.

Рис.2. Карта памяти персонального компьтера.

Адресация памяти. Все ячейки памяти пронумерованы последовательно от нулевого -00 минимального адреса памяти. Так как шина адреса микропроцессор а 8086 20-разрядная, то максимальный физический адрес ячейки памяти в 16-ричной системе счисления будет FFFFF. Условно всю память можно разделить на сегменты.

Сегмент - область, которая начинается на границе параграфа, т.е. по любому адресу, который делится на 16 без остатка. Можно считать, что началом сегмента является любой 20-разрядный физический адрес, младшие 4 разряда которого содержат 0000.

Хотя сегмент может располагаться в любом месте памяти по усмотрению программиста и иметь размер до 64 Кбайт, он требует столько памяти, сколько необходимо для выполнения программы.

Различают четыре сегмента:

1. СЕГМЕНТ КОДОВ. Сегмент кодов содержит машинные команды, которые будут выполняться. Обычно первая выполняемая команда находится в начале этого сегмента и операционная система передает управление по адресу данного сегмента для выполнения программы. Регистр сегмента кодов (CS) адресует данный сегмент.

2. СЕГМЕНТ ДАННЫХ. Сегмент данных содержит определенные данные, константы и рабочие области, необходимые программе. Регистр сегмента данных (DS) адресует данный сегмент.

3. СЕГМЕНТ СТЕКА. Сегмент стека содержит адреса возврата как для программы для возврата в операционную систему, так и для вызовов подпрограмм для возврата в главную программу. Регистр сегмента стека (SS) адресует данный сегмент.

4. ДОПОЛНИТЕЛЬНЫЙ СЕГМЕНТ. Дополнительный сегмент применяется как вспомогательный сегмент данных при операциях со строками. Регистр дополнительного сегмента (ES) адресует данный сегмент.

Чтобы понять метод адресации, применяемой для микропроцессора INTEL 8086, предположим, что любая ячейка памяти имеет два тип а адресов: физический и логический. Физический адрес представляется 20-разрядным числом и однозначно определяет любую из 1Мбайт ячеек памяти. В 16-ричной системе счисления этот адрес лежит в диапазоне от 0 до FFFFF. Обмен информацией между памятью и МП осуществляется с помощью физических адресов.

Программа же задействует логические адреса и позволяет записывать команду без предварительных знаний места, где эта команда будет размещена в памяти. Команды программы и ее данные располагаются в разных сегментах. Это дает программисту гибкий механизм распределения ресурсов памяти при выполнении программ. Лог ический адрес состоит из двух составных частей: значения базы сегмента и значение смещения в сегменте. Базовый адрес и смещение в сегменте отражаются 16-ричными числами. Как только ШИ обращается к памяти, базовый адрес формирует физический по следующему правилу: значения базы сегмента сдвигаются на четыре разряда влево, и полученное 20-разрядное число (с четырьмя нулями в младших четырех разрядах) складывается со значением смещения в сегменте.

Таким образом, база сегмента (с 4-мя нулями ,добавленными в качестве младших разрядов) задает для памяти сегменты длиной до 64 Кбайт, а значение смещения в сегменте - расстояние от начала сегмента до искомого адреса памяти. Максимально возможное смещение в сегменте 64 Кбайт.

Регистры микропроцессора. Микропроцессоры 8086/8088 имеют 14 регистров, которые по назначению можно разделить на 3 группы. Каждый регистр имеет длину в одно слово (16) бит и адресуется по имени.

Биты регистров принято адресовать слева направо:

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

компьютер микропроцессор intel

Рис.3 Схема формирования адреса в блоке ШИ.

Регистры общего назначения: AH, BX, CX, DX. При программировании регистры общего назначения являются "рабочими лошадками". Особенность этих регистров в том, что возможна адресация их как одного целого слова (2 байта) или как однобайтовой части. Левый байт является старшей частью (Hidh), а правый - младшей частью (Low).

1.Регистр AX. Регистр AX является основным сумматором и применяется как аккумулятор для всех операций ввода-вывода, некоторых операций над строками и арифметических операций. Например, команды умножения, деления и сдвига предполагают использование регистра AX.

2.Регистр BX. Регистр BX является базовым регистром. Это единственный регистр общего назначения, который может использоваться в качестве "индекса" для расширенной адресации. Другое его назначение - вычисления.

3.Регистр CX. Регистр CX является счетчиком. Он необходим для управяления числом повторений циклов и для операций сдвига влево или вправо. Используется также для вычислений.

Рис.4 Регистровая модель микропроцессора 8086.

4.Регистр DX. Регистр DX является регистром данных. Он применяется для некоторых операций ввода-вывода и тех операций умножения и деления над большими числами, которые используют регистровую пару DX и AX. Любые регистры общего назначения могут использоваться для сложения и вычитания как 8-ми, так и 16-битовых значений.

РЕГИСТРОВЫЕ УКАЗАТЕЛИ: SP и BP.

Регистровые указатели SP и BP обеспечивают системе доступ к данным в сегменте стека. Реже они используются для операций сложения и вычитания.

1.Регистр SP. Указатель стека обеспечивает использование стека в памяти, позволяет временно хранить адреса и иногда данные. Этот регистр связан с регистром SS для адресации стека.

2.Регистр BP. Указатель базы облегчает доступ к параметрам, данным и адресам, переданным через стек.

ИНДЕКСНЫЕ РЕГИСТРЫ: SI и DI.

Оба индексных регистра возможны для расширенной адресации и для использования в операциях сложения и вычитания.

1.Регистр SI. Этот регистр является индексом источника и применяется для некоторых операций над строками. В данном контексте регистр SI связан с регистром DS.

2.Регистр DI. Этот регистр является индексом назначения и применяется также для строковых операций. В данном контексте регистр DI связан с регистром ES.

СЕГМЕНТНЫЕ РЕГИСТРЫ: CS,DS,SS и ES.

Каждый сегментный регистр обеспечивает адресацию 64 Кб памяти, которая называется текущим сегментом. Адресация сегмента в сегментном регистре предполагает наличие справа четырех нулевых битов.

1.Регистр CS. Регистр сегмента кода содержит начальный адрес сегмента кода. Этот адрес плюс величина смещения в командном указателе (IP) определяет адрес команды, которая должна быть выбрана для выполнения.

2.Регистр DS. Регистр сегмента данных содержит начальный адрес сегмента данных. Этот адрес плюс величина смещения, определенная в команде указывают на конкретную ячейку в сегменте данных.

3.Регистр SS. Регистр сегмента стека содержит начальный адрес в сегменте стека.

4.Регистр ES. Некоторые операции над строками используют дополнительный сегментный регистр для управления адресацией памяти. В данном контексте регистр ES связан с индексным регистром DI.

РЕГИСТР КОМАНДНОГО УКАЗАТЕЛЯ: IP

Регистр IP содержит смещение на команду, которая должна быть выполнена.

ФЛАГОВЫЙ РЕГИСТР

Девять из 16 битов флагового регистра являются активными и определяют текущее состояние машины и результатов выполнения. Многие арифметические команды и команды сравнения изменяют состояние флагов (устанавливают их в единицу).

Назначение флаговых битов:

Флаг

Назначение

O (Переполнение)

Указывает на переполнение старшего бита при арифметических командах.

D (Направление)

Обозначает левое или правое направление пересылки или сравнения.

I (Прерывание)

Указывает на возможность внешних прерываний.

T (Пошаговый режим)

Обеспечивает возможность работы процессора в пошаговом режиме.

S (Знак)

Содержит результирующий знак после арифметических операций (0-плюс, 1-минус).

Z (Ноль)

Показывает результат арифметических операций и операций сравнения (1-нулевой).

A (Внешний перенос)

Содержит перенос из третьего бита для 8-битных данных .

P (Контроль четности)

Показывает четность младших 8-битовых данных (1-четное, 0-нечетное число).

C (Перенос)

Содержит перенос из старшего бита после арифметических операций, а также последний бит при сдвигах и циклических сдвигах.

Задания:

1. Изучить структурную схему микропроцессора Intel 8086.

2. Подготовиться к ответу на контрольные вопросы.

Порядок выполнения работы:

Контрольные вопросы:

1.Назовите основные узлы персонального компьютера.

2.Расскажите о структуре микропроцессора INTEL 8086 (К1810ВМ86).

3.Назначение основных блоков микропроцессора.

4.Что представляют собой два основных типа памяти и каково их назначение?

5.Какие регистры можно использовать для следующих целей:

а) сложение и вычитание

б) подсчет числа циклов

в) умножение и деление

г) индикация нулевого результата

д) адресация сегментов

е) адресация выполняемой команды?

6.Что представляют собой все типы сегментов, каковы их максимальные размеры и адреса, с которых они начинаются?

7.Назовите все биты флагового регистра и их назначение.

Лабораторная работа № 2. Программирование микропроцессора INTEL 8086. Команды пересылки

Цели и задачи работы:

Изучение команд микропроцессора 8086 (отечественный аналог К1810ВМ86) и приобретение навыков программирования микропроцессора на уровне команд.

Краткие теоретические сведения:

Самым низким уровнем программирования является программирование на уровне машинных кодов команд микропроцессора. При таком программировании программист должен хорошо знать внутреннее устройство микропроцессора и помнить, какие числовые коды соответствуют каждой команде микропроцессора а также должен следить за распределением и заполнением ячеек памяти. Это довольно трудная задача. Программу, написанную в числовых кодах команд микропроцессора, называют объектной программой.

Более высоким уровнем программирования является программирование на языке Ассемблера. У языка Ассемблер следующие достоинства: с одной стороны, он позволяет писать программы на уровне команд микропроцессора, а с другой стороны, не требует, чтобы программист помнил множество числовых кодов. Вместо кодов записывают команды в виде соответствующих сокращений английских слов, затем вызывают программу Ассемблер, которая преобразует эти сокращения в числовые эквиваленты. Программу, написанную в терминах сокращений называют исходной программой. Еще одно достоинство Ассемблера в том, что он сам распределяет память для программы и данных. Таким образом, функцией Ассемблера является преобразование исходной программы, доступной пониманию в объектную программу, понятную микропроцессору.

Исходная программа представляет собой последовательность операторов, описывающих выполняемые операции. Оператором (строкой) исходной программы может быть или псевдо оператор или команда языка Ассемблера. Псевдо операторы сообщают Ассемблеру, что ему делать вводимыми командами и данными и управляют работой Ассемблера. Команды языка Ассемблера представляют собой краткую запись машинных команд микропроцессора INTEL 8086.

КОМАНДЫ ЯЗЫКА АССЕМБЛЕРА

Под командой следует понимать определенную краткую инструкцию для микропроцессора, получая которую он должен выполнить какое-то, присущее именно данной команде действие.

Каждая команда в исходной программе может иметь до четырех полей следующего вида:

[Метка:] Мнемокод [Операнд] [;Комментарий].

Квадратные скобки показывают, что эти поля необязательны для некоторых команд. Поля должны разделяться между собой хотя бы одним символом пробела.

ПОЛЕ МЕТКИ. Поле метки служит для присваивания имени команде.

По нему на эту команду могут ссылаться другие команды программы. Поле метки может содержать любое сочетание от одного до 31 символов, содержащее буквы латинского алфавита, цифры или специальные символы и должно заканчиваться двоеточием. Нельзя использовать в качестве меток имена команд.

ПОЛЕ МНЕМОКОДА. Поле мнемокода содержит имя команды микропроцессора. Имена состоят из двух-шести букв. Эти буквы - сокращения слов английского языка. Например, MOV -имя команды пересылки данных (от английского move - переместить).

В некоторых командах кроме мнемокода надо указывать один или два операнда (слова данных). Микропроцессор по мнемокоду узнает, сколько должно быть операндов и какого типа, а затем обрабатывает поле операнда.

ПОЛЕ ОПЕРАНДА. В поле операнда микропроцессору сообщается, где искать данные, подлежащие обработке. Например, в команде пересылки

MOV CX,DX

указано, что надо скопировать содержимое регистра DX в регистр CX. От мнемокода поле операнда должно отделяться хотя бы одним пробелом. Между собой операнды разделяются запятой.

Набор всех команд микропроцессора называется системой команд.

Система команд микропроцессора Intel 8086 включает в себя около 90 типов команд. Можно разделить систему команд на 7 функциональных групп:

1.Команды пересылки данных, осуществляющие обмен информацией между регистрами, ячейками памяти и портами ввода-вывода.

2.Арифметические команды, выполняющие арифметические операции над числами.

3.Команды манипулирования битами, выполняющие сдвиг, циклический сдвиг и логические операции со значениями регистров и ячеек памяти.

4.Команды передачи управления, управляющие последовательностью исполнения команд программы. К ним относятся переходы к другой команде, вызов процедуры и возврат из нее.

5.Команды обработки строк, перемещающие, сравнивающие и сканирующие строки данных.

6.Команды прерывания ,отвлекающие микропроцессор на обработку некоторых специфичных функций. 7.Команды управления процессором, устанавливающие и сбрасывающие флаги состояния, а также изменяющие режим функционирования микропроцессора.

КОМАНДЫ ПЕРЕСЫЛКИ.

Команды пересылки данных осуществляют обмен информацией между регистрами, ячейками памяти и портами ввода-вывода. В таблице приведены все разновидности команд пересылки.

Команда MOV

Основная команда общего назначения MOV (move-переслать) может пересылать байт или слово между регистром и ячейкой памяти или между двумя регистрами. Она также может переслать адресуемое значение в регистр или ячейку памяти. Команда MOV имеет следующий формат:

MOV приемник,источник

В ней допустимо большинство из возможных сочетаний операндов и различные типы адресаций.

Рассмотрим несколько примеров:

1.Регистровая адресация, когда 16-битовая информация извлекается из регистра источника и помещается в регистр приемник. Команда

MOV AX, CX

копирует содержимое регистра счетчика CX в аккумулятор AX.

2.Непосредственная адресация позволяет указывать 8- или 16-битовое значение константы в качестве регистра источника. Команда

MOV CX,500

загружает значение 500 в регистр CX, а команда

MOV CL,30

загружает значение 30 в регистр CL.

Значения для 8-битовых чисел со знаком ограничены диапазоном от 80 до 7F. Для 16 битовых чисел со знаком от 8000 до 7FFF.

3.Прямая адресация. При прямой адресации исполнительный адрес (адрес смещения в сегменте) является составной частью команды. Микропроцессор добавляет этот исполнительный адрес к сдвинутому содержимому регистра сегмента данных и получает 20-битовый физический адрес операнда. Обычно прямая адресация применяется, если операндом служит метка. Например, команда

MOV AX,TABLE

загружает содержимое ячейки памяти TABLE в регистр AX. На рисунке показана схема исполнения этой команды.

Сегмент данных

Обратите внимание, что микропроцессор заполняет данные в памяти в обратном порядке. Старший байт слова следует за младшим байтом, а не предшествует ему. Т.е. старшие биты данных располагаются в ячейках памяти со старшими адресами.

4.Косвенная регистровая адресация. При косвенной регистровой адресации исполнительный адрес операнда содержится в базовом регистре BX, регистре указателя базы BP или индексном регистре (SI или DI).Косвенные регистровые операнды надо заключать в квадратные скобки, чтобы отличить их от регистровых команд. Например, команда

MOV AX,[BX]

загружает в регистр AX содержимое ячейки памяти ,адресуемой значением регистра BX.

Ниже приведено несколько примеров использования команды MOV.

MOV AX,TABLE; Пересылка из памяти в регистр и

MOV TABLE,AX; наоборот(адрес ячейки памяти обознач.меткой)

MOV ES:[BX],AX; Можно заменить используемый регистр сегмента

MOV DS,AX ;Пересылка между 16-битовыми регистрами

MOV BL,AL ;Пересылка между 8-битовыми регистрами

MOV CL,30 ;Пересылка константы в регистр

MOV DEST,25H ;или в память

В команде MOV исключаются следующие сочетания операндов:

1. Нельзя осуществить непосредственную пересылку данных из одной ячейки памяти в другую. Чтобы выполнить такую пересылку, данные из источника надо загрузить в регистр общего назначения, а затем запомнить содержимое этого регистра в приемнике. Например, если POUNDS и WEIGHT -переменные, находящиеся в памяти, то для пересылки значения из одной переменной в другую можно воспользоваться командами

MOV AX,POUNNDS

MOV WEIGHT,AX

2.Нельзя загружать непосредственно адресуемый операнд в регистр сегмента. Как и в случае 1,сначала надо загрузить его в регистр общего назначения. Например, следующие команды загружают номер блока сегмента данных (DATA_SEG) в регистр DS:

MOV AX,DATA_SEG

MOV DS,AX

Подобные команды указывают Ассемблеру, где размещен сегмент данных.

3.Нельзя непосредственно переслать значение одного регистра сегмента в другой. Подобные пересылки осуществляют через регистр общего назначения. Например, чтобы регистр DS указывал на тот же сегмент, что и ES, пользуются командами

MOV AX,ES

MOV DS,AX

4.Нельзя использовать регистр CS в качестве приемника в команде пересылки.

КОМАНДЫ PUSH и POP.

Данные команды позволяют организовать пересылки между стеком и каким либо регистром , флагом или ячейкой памяти.

Стек - это специально организованная область ОЗУ, предназначенная для временного хранения данных при работе программы. Например, во время выполнения какого-то ветвления в программе или подпрограммы в стеке хранится адрес возврата в основную программу. Те данные, которые помещаются в стек в последнюю очередь, извлекаются из него первыми. Вершиной стека называется та ячейка в сегменте стека, адрес которой содержится в указателе стека SP. Стек "растет" по направлению к младшим адресам памяти (к ячейке 0), а в ячейку памяти помещается 1 байт информации ,поэтому первое помещаемое в стек 16-битовое слово запоминается в ячейке стека с наибольшим адресом, следующее на 2 байта ниже и т.д.

Для помещения 16-битового слова в вершину стека используют команду

PUSH источник

А команда POP , наоборот ,снимает слово с вершины стека и помещает его в ячейку памяти или в регистр.

POP приемник

Рассмотрите следующие примеры:

PUSH AX ;Сохранить регистр общего назначения,

PUSH SI ;индексный регистр,

PUSH DS ;или регистр сегмента,

PUSH CS ;включая регистр CS

PUSH COUNTER ;Сохранить содержимое ячейки памяти

Будучи взаимно обратными командами, PUSH и POP обычно используются парами, т.е. каждой команде PUSH должна соответствовать своя команда POP. Например, при сохранении содержимого AX в стеке и последующем его восстановлении программа будет иметь вид

PUSH AX ;Сохранить AX на вершине стека

..... ;Другие операции, сохраняющие

..... ;содержимое AX

POP AX ;Снять значение AX с вершины стека

С помощью серии команд PUSH в стеке можно сохранить более одного слова. Надо помнить, что команда PUSH помещает свой операнд на вершину стека, и поэтому с помощью команды POP их можно извлекать в порядке, обратном размещению.

PUSH AX ;Сохранить AX,

PUSH ES ;ES,

PUSH DI ;DIи

PUSH SI ;SI

.....

.....

.....

POP SI ;Восстановить SI,

POP DI ;DI,

POP ES ;ESи

POP AX ;AX

Задания:

1.Изучить инструкцию к лабораторной работе.

2.Реализовать команды пересылки, используя все виды адресации.

3.Реализовать работы со стеком.

4.Получить задание у преподавателя на написание программы, использующей различные виды команд пересылок.

5.Подготовиться к ответу на контрольные вопросы.

Порядок выполнения работы:

Контрольные вопросы:

1.Чем отличается программирование на языке Ассемблера от программирования на уровне машинных кодов команд микропроцессора?

2.Что является командой для микропроцессора?

3.Расскажите о формате команды языка Ассемблера.

4.На какие функциональные группы можно разделить систему команд микропроцессора Intel 8086?

5.Дайте определение командам пересылки.

6.Какие разновидности команды MOVE вы знаете?

7.Что называется стеком?

8.Как работают команды обращения к стеку?

9.Чем отличается исходная программа от объектной?

Лабораторная работа №3. Арифметические и логические команды

Цели и задачи работы:

Изучить работу арифметических и логических команд микропроцессора Intel 8086.

Краткие теоретические сведения:

Микропроцессор INTEL 8086 может выполнять следующие арифметические команды:

КОМАНДЫ СЛОЖЕНИЯ

Команды сложения ADD (add-сложить) и ADC(add with carry-сложить с переносом) могут складывать как 8-,так и 16-битовые операнды. Команда ADD складывает содержимое операнда-источника и операнда-приемника и помещает результат в операнд-приемник. Символически ее действие можно описать как приемник=приемник+источник

Команда ADC складывает содержимое операнда-источника и операнда-приемника, используя при этом также флаг переноса CF и помещает результат в операнд-приемник. Символически ее действие можно описать как приемник=приемник+источник+перенос

Перенос при сложении двоичных чисел (а в цифровой технике числа представлены именно в таком виде) аналогичен возникновению переноса при сложении десятичных чисел в столбик. Рассмотрим пример:

250 1111 1010 (число 250 в двоичном виде)

+ 10 0000 1010 (число 10 в двоичном виде)

____ ___________

260 10000 0100 (число 260 в двоичном виде)

Результат верен, но занимает 9 двоичных битов! Если при выполнении этой операции мы использовали 8-битовые регистры, то младшие 8 битов будут занесены в регистр-приемник, а девятый бит-во флаг переноса CF.

Первая команда ADD применяется, когда требуется сложить значения, представленные байтами или словами (16-битов), а также младшие части длинных значений, а команда ADC используется для сложения старших частей длинных значений. Например, команда

ADD AX,CX

складывает 16-битовые значения регистров AX и CX и помещает результат в регистр AX. Когда требуется сложить числа большей длины, можно воспользоваться последовательностью команд вида

ADD AX,CX ;Сложить сначала младшие 16 битов, а

ADC BX,DX ;затем старшие 16 битов

которая складывает 32-битовое число, находящееся в регистрах CX и DX с 32-битовым числом, находящемся в регистрах AX и BX. Использованная здесь команда ADC добавляет к (DX)+(BX) любой перенос от сложения (CX)+(AX).

Команда сложения позволяет добавлять находящийся в памяти операнд к регистру и наоборот или добавлять непосредственный операнд к регистру или операнду.

ADD AX,MEM_WORD ;Добавить значение ячейки памяти к регистру

ADD MEM_WORD,AX ;и наоборот

ADD AL,10 ;Добавить константу к регистру или к ячейке

ADD MEM_BYTE,1F ;памяти

Допускается большинство возможных комбинаций, но нельзя добавить значение одной ячейки памяти к другой или использовать в качестве приемника непосредственное значение.

Команды сложения воздействуют на шесть флагов:

- Флаг переноса CF=1, если результат сложения не помещается в операнде приёмнике; в противном случае CF=0.

- Флаг чётности PF=1, если результат сложения имеет четное количество битов со значением 1; в противном случае PF=0. Вспомогательный флаг переноса AF=1, если результат сложения десятичных чисел требует коррекции ; в противном случае AF=0.

- Флаг нуля ZF=1, если результат равен нулю; в противном случае ZF=0.

- Флаг знака SF=1, если результат отрицателен (старший бит равен 1); в противном случае SF=0.

- Флаг переполнения OF=1, если сложение двух чисел одного знака(оба положительные или оба отрицательные)приводит к результату, который превышает диапазон допустимых значений приемника в обратном коде, а сам приемник меняет при этом знак; в противном случае OF=0.

КОМАНДЫ ВЫЧИТАНИЯ.

Команды вычитания SUB (subtract-вычесть) и SBB (subtract with borrow-вычесть с заемом ) аналогичны соответственно командам сложения ADD и ADC, только при вычитании флаг переноса CF действует как признак заема. Команда SUB вычитает операнд-источник из операнда-приемника и помещает результат в операнд-приемник, т.е.

приемник=приемник-источник

Команда SBB вычитает из операнда-приемника операнд-источник и значение флага переноса и помещает результат в операнд-приемник, т.е.

приемник=приемник-источник-перенос.

Команда

SUB AX,CX

вычитает из содержимого регистра AX содержимое регистра CX и помещает результат в регистр AX.

Если размеры операндов превышают 16 битов, то пользуются последовательностью команд типа

SUB AX,CX ;Вычесть младшие 16 битов,

SBB BX,DX ;а затем старшие 16 битов

которая вычитает 32-битовое число, находящееся в регистрах CX и DX из 32-битового числа, находящемся в регистрах AX и BX. При вычитании содержимого DX из содержимого BX команда SBB учитывает возможность заема при выполнении первого вычитания.

Команда вычитания позволяет вычитать из содержимого регистра содержимое ячейки памяти или вычитать из содержимого регистра либо ячейки памяти непосредственное значение.

SUB AX,MEM_WORD ;Вычесть из регистра значение ячейки памяти

SUB MEM_WORD,AX ;наоборот

SUB AL,10 ;Вычесть константу из регистра или ячейки

SUB MEM_BYTE,1F ;памяти

Допускается большинство возможных комбинаций, но нельзя вычесть значение одной ячейки памяти из другой или использовать в качестве приемника непосредственное значение.

Команды вычитания воздействуют на флаги также, как и команды сложения.

КОМАНДЫ УМНОЖЕНИЯ.

Микропроцессор Intel 8086 имеет команды умножения. Команда MUL (multiply-умножить) умножает числа без знака, а команда IMUL (integer multiply-умножить целые числа)-числа со знаком. Обе команды могут умножать как байты, так и слова.

Эти команды имеют формат:

MUL источник

IMUL источник

где источник-регистр общего назначения или ячейка памяти размером в байт или слово.В качестве второго операнда команды MUL и IMUL используют содержимое регистра AL (при операциях над байтами) или регистра AX (при операциях над словами). Произведение имеет двойной размер и размещается следующим образом:

Умножение байтов помещает 16-битовое произведение в регистрах AH (старший байт) и AL (младший байт).

Умножение слов помещает 33-битовое произведение в регистрах DX (старшее слово) и AX (младшее слово). По завершении исполнения команды MUL флаги CF и OF равны 0,если старшая половина произведения равна 0;в противном случае оба этих флага равны 1. По завершении исполнения команды IMUL флаги CF и OF равны 0,если старшая половина произведения представляет собой лишь расширение знака младшей половины; в противном случае оба этих флага равны 1.

MUL BX ;Умножить BX на AX без знака

MUL MEM_BYTE ;Умножить содержимое ячейки памяти на AL без

;знака

IMUL DL ;Умножить DL на AL со знаком

IMUL MEM_WORD ;Умножить содержимое ячейки памяти на AX со

;знаком.

Команды MUL и IMUL не позволяют использовать непосредственное значение в качестве операнда. Такое значение надо загрузить в регистр или ячейку памяти.

КОМАНДЫ ДЕЛЕНИЯ.

Микропроцессор Intel 8086 имеет две команды деления. Команда DIV (divide-разделить) делит числа без знака, а команда IDIV (integer divide-разделить целые числа)-числа со знаком. Обе команды делить как байты, так и слова.

Эти команды имеют формат

DIV источник

IDIV источник

где источник-делитель размером в байт или слово, находящийся в регистре общего назначения или в ячейке памяти. Делимое должно иметь двойной размер; оно извлекается из регистров AH и AL (при делении на 8-битовое число) или из регистров DX и AX (при делении на 16-битовое число. Результаты размещаются таким образом:

Если операнд-источник представляет собой байт, то частное помещается в регистре AL, а остаток в регистре AH.

Если операнд-источник представляет собой слово, то частное помещается в регистре AX, а остаток в регистре DX.

Типичные примеры операций деления:

DIV BX ;Разделить DX:AX на BX, без знака

DIV MEM_BYTE ;Разделить AH:AL на BX,на байт памяти,

;без знака

IDIV DL ;Разделить AH:AL на DL со знаком

IDIV MEM_WORD ;Разделить DX:AX на слово памяти со

;знакоm.

Команды DIV и IDIV не позволяют использовать непосредственное значение в качестве операнда. Такое значение надо загрузить в регистр или ячейку памяти.

Задания:

1.Подготовиться к ответу на контрольные вопросы.

2.Попобовать на лабораторном тренажёре команды ADD,SUB,MUL,DIV,

3.Написать программу с использованием арифметических команд.

Задание на программу получить у преподавателя.

Порядок выполнения работы:

Контрольные вопросы:

1.Назовите команды сложения и объясните, как они работают.

2.Назовите команды вычитания и объясните, как они работают.

3.Назовите команды умножения и объясните, как они работают.

4.Назовите команды деления и объясните, как они работают.

5.На какие флаги воздействуют команды сложения и вычитания?

6.Где размещается результат выполнения команды умножения?

7.Где размещается результат выполнения команды деления?

8.Можно ли использовать непосредственный операнд в качестве регистра-источника в командах: а)сложения; б)вычитания; в)деления; г)умножения?

Лабораторная работа № 4. Логические команды

Цели и задачи работы:

Краткие теоретические сведения:

К логическим командам относятся команды: AND,OR,XOR,NOT.

Операндами команд AND, OR, XOR могут быть байты или слова. В этих командах можно сочетать два регистра, регистр с ячейкой памяти или непосредственное значение с регистром или ячейкой памяти. Эти команды используются для манипулирования отдельными битами, а не целыми словами.

Команда AND или логическое умножение ( операция И ).

Выполняет логическое умножение значения каждого бита источника на соответствующее значение бита приемника и помещает результат в приемник. Данная команда применяется для фильтрации, маскирования или удаления некоторых битов.

Приведем несколько примеров команд AND:

AND AX,BX ;Выполнить AND над двумя регистрами

AND AL,MEM_BYTE ;Выполнить AND над регистрoм и ячейкой памяти

AND MEM_BYTE,AL ;или наоборот

AND BL,10 ;Выполнить AND над константой и регистром

AND TABLE[BX],MASK# ;или ячейкой памяти

При выполнении команды AND получается следующий результат:

Рассмотрим следующий пример применения команды AND. Пусть порт 200 соединен с 16-битовым регистром состояния внешнего устройства системы и бит 6 показывает, включено (1) или выключено (0) устройство. Если программа может продолжать работу только в случае, когда устройство включено, то она должна содержать следующий цикл:

PROV_PIT: IN AX,20 ;Прочитать состояние устройства

AND AX,0040H;Изолировать индикатор включения

JZ VKL_PIT ;Подождать включения питания,

... ;затем продолжить работу

...

Команда JZ (перейти, если 0) заставляет микропроцессор вернуться к команде IN (wwod) с меткой PROV_PIT, если флаг нуля равен 1, и перейти к следующей команде в противном случае. В данном примере флаг ZF равен 1 только в случае, когда индикатор включения (бит 6) равен 0, так как команда AND обнулила все остальные биты регистра AX. (Шестнадцатиричное число 0040H запишется в двоичном виде как

0000000001000000B, т.е 1 умножится на 6 бит источника)

Команда OR или логическое сложение ( операция ИЛИ )

Выполняет следующее действие значение бита приемника OR значение бита источника Выполняет логическое сложение значения каждого бита источника с соответствующим значением бита приемника и помещает результат в приемник.

При выполнении команды OR получается следующий результат:

Команда OR обычно применяется для принудительного присваивания 1 заданным битам. Например, команда

OR BX,0C00H

(число 0C00H в двоичном виде запишется как 0000110000000000B)устанавливает два бита(10 и 11)регистра BX в 1 и оставляет неизменными другие биты.

Команда XOR или сумма по модулю 2 ( операция ИСКЛЮЧАЮЩЕЕ-ИЛИ )

Выполняет операцию ИСКЛЮЧАЮЩЕЕ-ИЛИ над значением каждого бита источника и соответствующим значением бита приемника и помещает результат в приемник.

Команда XOR обычно применяется ,если надо выяснить, в каких битах

значения операндов различаются, или если надо поменять значения заданных битов. Команда XOR устанавливает в 1 все биты приемника, в позициях которых операнды имеют различные значения и устанавливает в 0 те биты, в позиция которые операнды имеют одинаковые значения.

Например, команда

XOR BX,0C00H

(число 0C00H в двоичном виде запишется как 0000110000000000B)изменяет состояния двух битов (10 и 11), оставляя остальные биты неизменными.

При выполнении команды XOR получается следующий результат:

Команда NOT или логическое отрицание ( операция НЕ ).

Выполняет инвертирование значения каждого бита регистра или ячейки памяти (обращает бит, равный 1 в 0,бит,равный 0 в 1) и ни на какие флаги не воздействует.

При выполнении команды NOT получается следующий результат:

Примечание: Микропроцессор позволяет оперировать числами как в двоичном, так и в десятичном и шестнадцатеричном представлениях. Например, 000011111B-число в двоичном представлении(буква B от латинского binary-двоичное).

01AFH-число в шестнадцатеричном представлении(буква H в конце числа означает шестнадцатеричное представление). 127D-число в десятичном представлении(буква D от английского decimal, т.е. десятичное).

Задания:

1.Подготовиться к ответу на контрольные вопросы.

2.Используя обучающую программу, проверить, как работает каждая из логических команд.

3.Получить у преподавателя задание на написание программы с использованием логических команд.

Порядок выполнения работы:

Контрольные вопросы:

1.Назовите логические команды и объясните, как они работают.

2.На какие флаги воздействуют команды AND, OR, XOR, NOT ?

3.Где размещается результат выполнения логических команд?

4.Какие операнды допустимы в качестве регистра-источника в командах:

а)AND;б)OR;в)XOR;г)NOT?

5.В каких случаях используются команды:

а)AND;б)OR;в)XOR;г)NOT?

Лабораторная работа №5. Команды передачи управления

Цели и задачи работы:

Изучить работу команд передачи управления, позволяющих организовать ветвления в программах и научиться использованию этих команд в программах.

Краткие теоретические сведения:

Когда программа, написанная программистом, загружается в память, то команды хранятся в последовательно расположенных ячейках памяти, но редко исполняются по порядку. Все программы, за исключением простейших, содержат переходы и вызовы подпрограмм (процедур), заставляющие микропроцессор изменять путь исполнения программы.

Команды передачи управления обеспечивают переход из одной части программы в другую. Эти команды можно подразделить на три группы : команды безусловной передачи управления , команды условной передачи управления и команды управления циклами. Эти команды ни на какие флаги не воздействуют.

КОМАНДЫ БЕЗУСЛОВНОЙ ПЕРЕДАЧИ УПРАВЛЕНИЯ.

1.Команда вызова процедур (подпрограмм) CALL. Процедура представляет собой совокупность команд, написанных 1 раз, но может быть использована по мере необходимости в любом месте программы.

Формат команды

CALL имя

где имя- имя вызываемой процедуры (т.е. метка ее начала)

2.Команда возврата из процедуры RET (return-возврат). Команда RET заставляет микропроцессор 8086 возвратиться из процедуры в программу, вызвавшую эту процедуру. Команда RET должна быть последней командой процедуры, исполняемой микропроцессором.

3.Команда безусловного перехода JMP (jump unconditionally-перейти безусловно).Эта команда заставляет микропроцессор извлечь новую команду не из следующей ячейки памяти, а из какой-то другой.

Формат команды

JMP имя

где имя метка новой команды.

Обычно команда JMP используется для обхода группы команд, которым передается управление из другой части программы.

КОМАНДЫ СРАВНЕНИЯ ЗНАЧЕНИЙ ИСТОЧНИКА И ПРИЕМНИКА.

КОМАНДЫ УСЛОВНОЙ ПЕРЕДАЧИ УПРАВЛЕНИЯ.

У микропроцессора Intel 8086 есть 17 различных команд, которые позволяют ему "принять решение" о ходе исполнения программы в зависимости от определенных условий., например, нулевого значения регистра или единичного значения флага переноса CF. Если такое условие выполнено, то микропроцессор выполнит переход ; в противном случае он продолжит выполнение следующей команды программы. В качестве условия в таких командах используется состояние битов флагового регистра.

Для изменения состояния флагов, на основе которых команды условной передачи управления принимают решение передавать или нет управление используется команда CMP.Это- КОМАНДА СРАВНЕНИЯ ЗНАЧЕНИЙ ИСТОЧНИКА И ПРИЕМНИКА.

КОМАНДА СРАВНЕНИЯ ЗНАЧЕНИЙ ИСТОЧНИКА И ПРИЕМНИКА.

Команда CMP (compare-сравнить) имеет формат

CMP приемник, источник

Подобно команде вычитания SUB команда CMP вычитает операнд-источник из операнда приемника и в зависимости от результата устанавливает или обнуляет флаги. Но в отличие от команды SUB команда CMP не сохраняет результат вычитания, т.е. не изменяет операнды.

Результат исполнения команды CMP

Примечание: н- означает не имеет значения ,0/1 означает, что флаг может быть равен 0 или 1 в зависимости от значений операндов.

Нельзя использовать в качестве приемника непосредственный операнд и сравнивать содержимое одной ячейки памяти с другой.

КОМАНДЫ УСЛОВНОЙ ПЕРЕДАЧИ УПРАВЛЕНИЯ.

Команды условной передачи управления имеют такой общий формат

J*** близкая_метка

где ***-мнемокод, состоящий из одной, двух или трех букв. Запись операнда близкая_метка подчеркивает, что метка должна находиться не далее -128 или +127 байтов от команды условной передачи управления.

В таблице, расположенной ниже, описаны некоторые команды условной передачи управления и указаны условия, выполнение которых вызывает переход.

Командам условной передачи могут соответствовать любые команды, изменяющие состояние флагов, но обычно они используются совместно с командой сравнения CMP.

Ниже показано, какими условными переходами надо пользоваться при возможных сочетаниях значений источника и приемника.

Если после команды сравнения приемник больше источника, используют команду JA.

Если после команды сравнения приемник больше источника или равен ем , используют команду JAE.

Если после команды сравнения приемник меньше источника, используют команду JB.

Если после команды сравнения приемник меньше источника или равен ему, используют команду JBE.

Если после команды сравнения приемник равен источнику, используют команду JE.

Если после команды сравнения приемник не равен источнику, используют команду JNE.

Для иллюстрации применения команд сравнения/условного перехода рассмотрим пример. Здесь показан фрагмент программы, размещающей в памяти два числа без знака в порядке возрастания; предполагается, что смещения адресов этих чисел в сегменте данных находятся в регистрах BX и DI соответственно. Учтите, что для перестановки двух чисел в памяти одно из них необходимо загрузить в регистр, так как микропроцессор не имеет команд пересылки типа память-память.

Размещение двух чисел в порядке возрастания.

Этот фрагмент располагает два 16-битовых числа без знака в памяти в ;в порядке возрастания: меньшее число заносится в ячейку с меньшим ;адресом.

MOV AX,[BX] ;Загрузить первое число в AX

CMP AX,[DI] ;сравнить его со вторым числом

JBE DONE ;первое число меньше второго или равно ему?

XCHG AX,[DI];если нет,обменяться значениями

MOV [BX],AX

....

DONE: ....

....

КОМАНДЫ УПРАВЛЕНИЯ ЦИКЛАМИ.

Команды управления циклами обеспечивают условные передачи управления при организации циклов. У микропроцессора 8086 регистр счетчика CX служит счетчиком числа повторений циклов. Каждая команда управления циклами уменьшает содержимое регистра CX на 1, а затем использует его новое значение для принятия решения о выполнении или невыполнении перехода.

Основная команда этой группы LOOP(loop until count complete-повторять до конца счетчика) уменьшает содержимое регистра CX на 1 и передает управление операнду близкая_метка, если содержимое регистра CX не равно 0.

Например, для стократного выполнения определенной группы команд

можно воспользоваться такой конструкцией

MOV CX,100 ;Загрузить число повторений в CX

START: .... ;повторяемая группа

.... ;команд

LOOP START ;если CX не равен 0, перейти к метке START,

.... ;в противном случае выйти из цикла

Команда LOOP прекращает выполнение цикла только в том случае, когда содержимое регистр CX уменьшено до 0.

Задания:

1.Подготовиться к ответу на контрольные вопросы.

3.Получить у преподавателя задание на написание программы с использованием команд передачи управления и проверить ее выполнение в программе-тренажере.

Порядок выполнения работы:

Контрольные вопросы:

1.На какие группы делятся команды передачи управления? Объясните, как используется каждая группа.

2.Назовите команду сравнения. На какие флаги она воздействует ?

3.Как совместно используются команды CMP и условной передачи управления? Назовите условия перехода и применяемую команду.

4.К какой группе команд можно отнести команды:

а)LOOP; б)JMP; в)JNE г)JB; д)RET е)CALL?

мы в качестве регистра-источника в командах сравнения?

5.Какие операнды допустимы в качестве регистра-источника в командах сравнения?

Лабораторная работа № 7. Работа с клавиатурой компьютера

Цели и задачи работы:

Краткие теоретические сведения:

В предыдущих работах использовались программы, в которых данные определялись в операндах команд (непосредственные данные ) или определялись в конкретных шагах программы. Число практических применений таких программ в действительности мало. Большинство программ требуют ввода данных с клавиатуры, диска и обеспечивают вывод данных в удобном формате на экран, принтер или диск. Данные , предназначенные для вывода на экран и ввода с клавиатуры имеют ASCII формат. (American National Standart Code for Information Interchange).

В коде ASCII каждому символу поставлен в соответствие восьми битный код, записанный в шестнадцатеричной системе. Например цифра 8 представляется кодом 56, цифра 9- 57.

В приложении к лабораторной работе дана таблица ASCII кодов для каждого символа.

Для выполнения ввода и вывода используется команда INT (прерывание). В общем случае прерывание - это команда , позволяющая воспользоваться встроенными ресурсами конкретного компьютера (его базовую систему ввода-вывода BIOS. В функцию BIOS входит запоминание символов, набираемых на клавиатуре, изображение символов на экране и обмен данными между устройствами, присоединенными к конкретному компьютеру:

дисководами, принтером и .д. Т.е. без BIOS компьютер представляет собой лишь набор электронных компонентов ; BIOS вкладывает в него интеллект и превращает в ЭВМ.

Команда INT-прерывание .

Команда INT-прерывание прерывает обработку программы, передает управление в BIOS или в операционную систему DOS для определённого действия и затем возвращает управление в прерванную программу для продолжения обработки. Наиболее часто прерывание используется для выполнения операций ввода или вывода.

Для выхода из программы на обработку прерывания и для последующего возврата команда INT выполняет следующие действия:

1.Уменьшает указатель стека на 2 и заносит в вершину стека содержимое флагового регистра;

2.Очищает флаги TF(флаг пошагового выполнения) и IF(флаг прерывания);

3.Уменьшает указатель стека на 2 и заносит в стек значение командного указателя;

4.Обеспечивает выполнение необходимых действий;

5.Восстанавливает из стека значение регистра и возвращает управление в прерванную программу на команду, следующую после INT.

Этот процесс выполняется полностью автоматически.

Различают два типа прерываний: системы BIOS и операционной системы DOS.

Прерывания системы BIOS делятся на пять групп:

1.Векторы прерывания микропроцессора 8088(типы 0-7H).

2.Векторы прерываний микроконтроллера 8259(типы 8H-0FH).

3.Входные точки процедур системы BIOS (типы 10H-1AH и 40H).

4.Вызовы процедур пользователя (типы 1BH и 1CH).

5.Указатели системных таблиц (типы 1DH,1EH,1FH и 41H).

(Буква H-означает, что цифры даны в шестнадцатеричной системе).

ПРЕРЫВАНИЕ ТИПА 21.

Наряду с прерываниями системы BIOS используются прерывания операционной системы DOS. Наиболее популярно прерывание типа 21. Оно используется для взаимодействия с клавиатурой, дисплеем, принтером, диском и асинхронным последовательным устройством.

В данной лабораторной работе рассматриваются только функции, полезные для работы с клавиатурой. Для того , чтобы выбиралась та или иная функция, необходимо предварительно записать в регистр AH число, вызывающее эту функцию, затем использовать команду прерывания INT с указанием типа, Например, INT 21.

Функции для работы с клавиатурой.

Эти функции достаточно просты; они считывают либо отдельные набираемые на клавиатуре символы в регистр AL, либо последовательность символов (строку) в память. Если только вам не приходится иметь дело с некоторыми необычными комбинациями клавиш , то вы найдете эти функции удобными для применения.

В диалоговых программах от и пользователя нередко требуется дать ответ на приглашение к вводу или сделать выбор из меню вводом одной буквы или цифры. Пусть, например, ваша программа изображает сообщение, в котором от пользователя требуется нажать клавишу либо с буквой Д , либо с буквой H (для продолжения или прекращения работы). Ввод Д заставляет программу перейти к группе команд, помеченных меткой YES, а ввод H- к команде с меткой NO. При нажатии любой другой клавиши программа снова должна ожидать ввода либо буквы Д, либо буквы H. Эту задачу выполняет следующий фрагмент:

GET KEY: MOV AH,1 ;считать символ

INT 21H

CMP AL,"Д" ;Он равен Д?

JE YES ;если да,то перейти к метке YES

CMP AL,"Н" ;он равен Н?

JE NO ;если да,то перейти к метке NO

JNE GET KEY ;в противном случае ждать ввода Д или Н

Данный фрагмент распознает только прописные буквы Д и Н, но пользователи склонны набирать символы не нажимая клавишу верхнего регистра.

Чтобы программа воспринимала ответы, набранные строчными буквами, добавьте дополнительные команды сравнения CMP AL,"д" и CMP AL,"н".

ВЫЗОВЫ ФУНКЦИИ, ИНИЦИИРУЕМЫЕ ПРЕРЫВАНИЕМ ТИПА 21

В программе-тренажере возможно использование только 2 функций прерывания типа 21: AH=7 и AH=8.

Размещено на Allbest.ru

...

Подобные документы

  • Функциональная схема микропроцессора Intel 8086 (i8086). Формирование физического адреса памяти, выборка команд из памяти и запись их в очередь команд. Система команд процессора. Суть защищенного режима, переход из защищенного режима в реальный режим.

    практическая работа [93,3 K], добавлен 24.03.2013

  • Характеристика процессоров линейки Intel. Знакомство с особенностями микропроцессора, предназначенного для настольных систем с поддержкой симметричной многопроцессорности. Pentium Pro как процессор Intel шестого поколения, совместимый с архитектурой x86.

    реферат [57,6 K], добавлен 25.07.2013

  • Элементы процессора, аппаратный уровень. Устройство управления, микропрограммный автомат. Процессор Intel 8086, сегментная организация памяти. Команды, главные особенности их кодирования. Результат дизассемблирования программы отладчиком TurboDebugger.

    лекция [1,1 M], добавлен 14.12.2013

  • Арифметические и логические основы персонального компьютера. Работа персонального компьютера. Программные средства реализации информационных процессов. Алгоритмизация и программирование. Моделирование и формализация. Локальные и глобальные сети ЭВМ.

    методичка [112,9 K], добавлен 10.12.2011

  • Проектирование микрокомпьютерных систем. Разрабока микропроцессорной системы с минимальной конфигурацией, использование управляющих сигналов, формируемых на выводах микропроцессора Intel 8086 и 8088. Тактовый генератор GEN. Генерация тактирующего сигнала.

    курсовая работа [237,0 K], добавлен 04.08.2011

  • Изучение архитектуры персонального компьютера на примере микропроцессора фирмы Intel. Регистры общего назначения. Оперативная память; форматы данных и команд. Команд пересылки с различными способами адресации операндов. Структура программы на Ассемблере.

    курс лекций [506,4 K], добавлен 03.05.2014

  • Сущность компьютера как своеобразного вычислителя. Характеристика микропроцессора – главного элемента компьютера, его электронной схемы, выполняющей все вычисления и обработку информации. История компьютерной техники. Работа звуковой карты, клавиатуры.

    контрольная работа [75,7 K], добавлен 01.03.2011

  • Первичные компоненты, использовавшиеся в системных платах персонального компьютера. Архитектура чипсетов Intel на примере North/South Bridge. Интерфейс между процессором и остальной частью системной платы. Современные чипсеты Intel, их структурная схема.

    презентация [2,0 M], добавлен 27.08.2013

  • Краткая история развития микропроцессора как важнейшего элемента любого персонального компьютера. Сущность, значение, функциональные возможности процессоров. Особенности микропроцессоров Pentium, Intel i80386 и i80486. Применение и значение сопроцессора.

    курсовая работа [27,5 K], добавлен 09.11.2010

  • Команды, необходимые для организации разветвлений и циклических структур в программах, условных переходов, изменения признака переноса, изменения содержимого аккумулятора. Логические команды над аккумулятором и регистром. Программа на ассемблере.

    лабораторная работа [25,2 K], добавлен 03.03.2009

  • История Intel, выпуск оперативной памяти для компьютера. Главные особенности построения бренда компании. Модели процессоров, выпускаемые корпорацией Intel. Виды подложек, используемых при производстве микросхем. Краткая история процессоров Pentium.

    реферат [28,8 K], добавлен 13.02.2013

  • Система BIOS как базовая система ввода и вывода и важнейший компонент персонального компьютера. Программное обеспечение, используемое в BIOS материнских плат. Основные функции BIOS, порядок загрузки системы. Проверка стабильности работы компьютера.

    доклад [94,9 K], добавлен 15.09.2013

  • Описание конфигурации компьютера, предназначенного для игр. Ознакомление с характеристиками процессора Intel core 2 Quad. Тестирование уменьшения объема кэш-памяти второго уровня. Анализ видеокарты ASUS Radeon HD 7850 DirectCU II, материнской платы.

    курсовая работа [3,6 M], добавлен 04.01.2016

  • Загальна структура комп'ютера, архітектура процесора типу Intel 8086. Принцип роботи пам'яті, її види (постійна та оперативна). Основи програмування на мові асемблер та її синтаксис. Особливості використання позначок, кодів команд, операндів і директив.

    лабораторная работа [36,0 K], добавлен 27.02.2013

  • Программирование микро ЭВМ на МП БИС КР580ИК80. Арифметические команды. Представление чисел в различных системах счисления и отображение их на дисплее. Сложение массива однобайтных чисел. Вычитание одинаковых чисел. Сложение двух десятичных чисел.

    лабораторная работа [263,8 K], добавлен 03.03.2009

  • Основные понятия и функционирование BIOS. Затенение ROM-памяти. Работа системной BIOS при включении компьютера. Программа CMOS Setup Utility настройки BIOS. Содержание основных разделов программы BIOS Setup. Настройка параметров компьютера.

    реферат [47,5 K], добавлен 29.11.2006

  • Микропроцессор как важнейший компонент персонального компьютера, особенности их устройства, основные составные и их назначение. Функции, параметры и производительность микропроцессоров, сравнительные характеристики. Поколения и виды процессоров Intel.

    контрольная работа [42,3 K], добавлен 25.11.2010

  • Арифметические команды языка Assembler в архитектуре x86. Организация ветвлений и циклов в программах. Ввод строк с клавиатуры и команды пакетной обработки (строковые команды). Алгоритм вывода на экран в текстовом режиме с использованием средств BIOS.

    контрольная работа [18,0 K], добавлен 05.07.2014

  • Архитектура системных плат на основе чипсетов Intel 6 Series и Intel P67 Express. Технологии, используемые в Intel 6 Series: Smart Response, Intel Quick Sync Video, Технология Hyper-Threading, Технология Intel vPro. Ошибка в чипсетах Intel 6-й серии.

    реферат [3,3 M], добавлен 11.12.2012

  • Стратегия развития процессоров Intel. Структурная организация современных универсальных микропроцессоров. Особенности многоядерной процессорной микроархитектуры Intel Core, Intel Nehalem, Intel Westmere. Серверные платформы Intel c использованием Xeon.

    реферат [36,5 K], добавлен 07.01.2015

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.