Конспект лекций по предмету "Программирование"


Работа со стеком

Стек — это область памяти, специально выделяемая для временного хранения данных программы. Важность стека определяется тем, что для него в структуре программы предусмотрен отдельный сегмент. На тот случай, если программист забыл описать сегмент стека в своей программе, компоновщик tlink выдаст предупреждающее сообщение.
Для работы со стеком предназначены три регистра:
SS — регистр сегмента стека;
SP/ESP — регистр указателя стека;
ВР/ЕВР — регистр указателя базы кадра стека.
Команда PUSH выполняет запись значения <источник> в вершину стека: push <источник>.
Команда POP выполняет запись значения из вершины стека по месту, указанному операндом <приемник> (значение при этом «снимается» с вершины стека): pop <приемник>.
Команда PUSHA предназначена для групповой записи в стек.
И еще многие другие, которые вы рассмотрите самостоятельно.

Остальные команды обмена данными мы рассмотрим на лабораторных работах.


К лабораторной работе №7-8
Преобразование данных
К группе команд преобразования данных можно отнести множество команд процессора, но большинство из них имеют те или иные особенности, которые требуют отнести их к другим функциональным группам (см. рис 9.1). Поэтому из всей совокупности команд процессора непосредственно к командам преобразования данных можно отнести только одну команду
xlat [адрес_таблицы_перекодировки]
Это очень интересная и полезная команда. Ее действие заключается в том, что она замещает значение в регистре AL другим байтом из таблицы в памяти, расположенной по адресу, указанному операндом адрес_таблицы_перекодировки. Слово «таблица» весьма условно; по сути, это просто строка байтов. Адрес байта в строке, которым будет производиться замещение содержимого регистра AL, определяется суммой (ВХ) + (AL), то есть содержимое AL играет роль индекса в байтовом массиве.
При работе с командой XLAT обратите внимание на следующий тонкий момент. Хотя в команде указывается адрес строки байтов, из которой должно быть извлечено новое значение, этот адрес должен быть предварительно загружен (например, с помощью команды LEA) в регистр ВХ. Таким образом, операнд адрес_таблицы_перекодировки на самом деле не нужен (на это указывают квадратные скобки). Что касается строки байтов (таблицы перекодировки), то она представляет собой область памяти размером от 1 до 255 байт (диапазон числа без знака в 8-разрядном регистре).
В качестве иллюстрации работы данной команды мы рассмотрим программу из лабораторной работы №1-3{листинга 6.1 (см. главу 6)}. Вы помните, что эта программа преобразовывала двузначное шестнадцатеричное число, вводимое с клавиатуры (то есть в символьном виде), в эквивалентное двоичное представление в регистре AL. В листинге 7.3 приведен вариант этой программы с использованием команды XLAT.

К лабораторной работе № 9-11
Порт ввода-вывода можно определить как 8-, 16- или 32-раз рядный аппаратный регистр, имеющий определенный адрес в адресном пространстве ввода-вывода.
Принципиально управлять устройствами напрямую через порты несложно. Сведения о номерах портов, их разрядности, формате управляющей информации приводятся в техническом описании устройства. Необходимо знать лишь конечную цель своих действий, алгоритм, в соответствии с которым работает конкретное устройство, и порядок программирования его портов. То есть, фактически, нужно знать, что и в какой последовательности нужно послать в порт (при записи в него) или считать из него (при чтении) и как следует трактовать эту информацию. Для этого достаточно всего двух команд, присутствующих в системе команд процессора:
in <аккумулятор>,<номер_порта> – ввод в аккумулятор из порта с номером <номер_порта>;
out <номер_порта>,<аккумулятор> – вывод содержимого аккумулятора в порт с номером <номер_порта>.
В качестве примера рассмотрим, как на уровне аппаратуры заставить компьютер издавать звуки через свой внутренний динамик. На большинстве компьютеров это будет некоторый треск. Изменяя различные параметры программы, в идеале, вы можете получить звук, напоминающий сирену.
Как это ни удивительно, но специальной схемы генерации звука для внутреннего динамика нет. Сигнал для управления динамиком формируется в результате совместной работы следующих микросхем:
программируемого периферийного интерфейса (ППИ) i8255;
таймера i8253.


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

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

Пишем конспект самостоятельно:
! Как написать конспект Как правильно подойти к написанию чтобы быстро и информативно все зафиксировать.