Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
26
Добавлен:
20.06.2014
Размер:
1.08 Mб
Скачать

Inc di ;смещение в видеопамяти на следующий символ

dec cx ;декремент счетчика битов

jnz inloop ;если еще не все цифры введены,

;ввод следующей цифры

mov x, dx ;если все цифры введены,

;число записывается в переменную x

;введенное число преобразуется и результат записывается в память

and dx, m ;на число накладывается маска

mov y, dx ;результат записывается в переменную y

;инициализация регистров для вывода результата на экран

mov bx, 8000h ;индикатор очередного выводимого бита

mov di, 80*2 ;результат будет выведен под исходным числом

;цикл вывода результатов на экран

outloop: mov ax, y ;передача результата в аккумулятор

test ax, bx ;проверка очередного бита - 0 или 1

jnz bit1

mov es:[di], 0730h ;если 0, вывести 0

jmp NxtBit

bit1: mov es:[di], 0731h ;если 1, вывести 1

NxtBit: inc di

inc di ;переход на следующую позицию видеопамяти

shr bx, 1 ;настройка индикатора на следующий бит

jnc outloop ;переход к тестированию следующего бита

pause: in al, 60h ;цикл, пауза для просмотра результата

cmp al, 01h ;пауза заканчивается по нажатию Esc

jne pause

quit: mov ax, 4C00h ;функция завершения программы

int 21h ;системного прерывания 21h

code ends ;конец сегмента команд

end main ;конец главной программы

Квадратные скобки у имени регистра означают, что в регистре находится не операнд, а адрес операнда. То есть, по команде:

mov es:[di], 0730h

в память по логическому адресу es:di помещается слово 0730h.

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

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

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

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

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

Проанализировать таблицу, выполнить необходимые сравнения, сделать выводы.

Общие признаки всех вариантов:

  1. Исходные данные вводятся с клавиатуры и помещаются в сегмент данных.

  2. Результаты заносятся в сегмент данных, а затем выводятся на экран.

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

Признаки формирования вариантов:

  1. Формат ввода данных с клавиатуры.

  2. Способ формирования звукового сигнала.

  3. Задача.

Сравнения:

  1. Передача операндов (по времени и по множеству команд):

    1. Внутри процессора.

    2. Процессор — память.

    3. Процессор — устройство ввода-вывода.

  2. Команд:

    1. По количеству циклов шины.

    2. По количеству типов цикла шины.

    3. По направлению обмена информацией.

Содержание отчета

  1. Задание, конкретизированное вариантом.

  2. Листинг программы.

  3. Таблица состояния системы после выполнения команд программы.

  4. Сравнения и выводы по результатам анализа таблицы и выполненным сравнениям.

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

  1. Какие общие и специфичные устройства ЭВМ не изображены на рис.2.

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

  3. Какие устройства ЭВМ являются активными, а какие пассивными?

  4. Какое направление движения информации является передачей, а какое приемом в случае прямого доступа к памяти?

  5. Может ли процессор принимать код операции команды не из памяти?

  6. Классифицируйте типы циклов шины процессора i8086.

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

  8. В каких устройствах компьютера имеется оперативная память?

  9. В каких устройствах компьютера имеется постоянная память?

  10. В каких устройствах компьютера имеется процессор?

  11. В каких устройствах компьютера отсутствуют регистры?

  12. Какие органы чувств не задействованы в устройствах взаимодействия пользователя с ЭВМ? Почему?

  13. Запрещены или разрешены прерывания сразу после включения ЭВМ?

  14. Чем определяется количество прерываний в ЭВМ?

  15. Классифицируйте интерфейс процессора с клавиатурой, монитором, динамиком.

  16. Будет ли звучать динамик после завершения программы TmrBeep.asm, если его не выключить?

  17. Зависит ли частота звукового сигнала динамика в программе TmrBeep.asm от частоты работы процессора?

  18. Зависит ли время звучания динамика (длительность задержки) в программе TmrBeep.asm от частоты работы процессора?

  19. За какое время переполнится счетчик системного времени?

  20. Зачем необходимо фиксировать не только нажатия, но и отжатия клавиш?

  21. Можно ли результаты работы программы не размещать в сегменте данных, а сразу записывать в видеопамять?

  22. Сколько в программе InKoutD.asm сегментов?

Соседние файлы в папке Задания к лабораторным