Рабочий лист (560337)
Текст из файла
Цель работы: изучение способов организации взаимодействия процессора и
внешних устройств в составе ЭВМ.
Задание: Программа ввода символов с клавиатуры с выводом на дисплей.
Используемые ВУ: Клавиатура, дисплей.
Пояснения: Очистка буфера клавиатуры после ввода 35 символов.
Текст программы с программным анализом флагов готовности.
; Сброс и инициализация дисплея и клавиатуры
CALL ResetDisplay
CALL ResetKeyboard
; Основной цикл программы
Loop:
; Считывание состояния клавиатуры
IN 2
; Если флаг стоит, то вывод символа или сброс.
JNZ FlagExist
; Проверка размера буфера (меньше 35)
RD R0
SBI 35
JS Loop
; Сброс клавиатуры
CALL ResetKeyboard
JMP Loop
FlagExist:
; Если есть флаг готовности, то вывод символа
DIVI 10
JNZ TestDisplay
; Сброс клавиатуры и повтор цикла
CALL ResetKeyboard
JMP Loop
TestDisplay:
; Проверка ошибки на дисплее и сброс, если она есть
IN 12
JZ PrintSymbol
CALL ResetDisplay
PrintSymbol:
; Считывание символа с клавиатуры
IN 0
; Запись символа на экран
OUT 10
; Проверка ошибки на клавиатуре и сброс, если она есть
IN 2
JZ Increment
CALL ResetKeyboard
JMP Loop
Increment:
; Увеличение счётчика буфера на 1
RD R0
ADI 1
WR R0
; Завершение обработки прерывания
JMP Loop
ResetDisplay: ; Сброс и инициализация дисплея
; Очистка дисплея
RDI 101
OUT 11
; Разрешение работы дисплея и автосмещения
RDI 11
OUT 11
RET
ResetKeyboard: ; Сброс и инициализация клавиатуры
; Очистка клавиатуры
RDI 101
OUT 1
; Включение буфера клавиатуры
RDI 10
OUT 1
; Включение посимвольного ввода
RDI 103
OUT 1
; Установка счётчика для буфера в нуль
RDI 0
WR R0
RET
Текст программы с обработчиком прерывания.
; Запись вектора прерываний
CALL GetIntAddr
WR 100
; Сброс и инициализация дисплея и клавиатуры
CALL ResetDisplay
CALL ResetKeyboard
; Разрешение прерываний в процессоре
EI
; Зацикливание
Loop:
JMP Loop
; Получение адреса обработчика прерывания
ReturnIntAddr:
POP R0
RD R0
RET
GetIntAddr:
CALL ReturnIntAddr
; Обработчик прерывания
Int:
; Проверка ошибки в дисплее
IN 12
JZ PrintSymbol
CALL ResetDisplay
PrintSymbol:
; Считывание символа с клавиатуры
IN 0
; Запись символа на экран
OUT 10
; Проверка ошибки клавиатуры
IN 2
JZ Increment
; Сброс клавиатуры
CALL ResetKeyboard
; Завершение обработки прерывания
IRET
Increment:
; Увеличение счётчика буфера на 1
RD R0
ADI 1
WR R0
; Проверка размера буфера (меньше 35)
SBI 35
JNS Clear
; Завершение обработки прерывания
IRET
Clear:
; Сброс клавиатуры
CALL ResetKeyboard
; Завершение обработки прерывания
IRET
ResetDisplay: ; Сброс и инициализация дисплея
; Очистка дисплея
RDI 101
OUT 11
; Разрешение работы дисплея и автосмещения
RDI 11
OUT 11
RET
ResetKeyboard: ; Сброс и инициализация клавиатуры
; Очистка клавиатуры
RDI 101
OUT 1
; Включение буфера и прерываний клавиатуры
RDI 11
OUT 1
; Включение посимвольного ввода
RDI 103
OUT 1
; Установка счётчика для буфера в нуль
RDI 0
WR R0
RET
Текст программы с проверкой значения регистра результата.
; Сброс и инициализация дисплея и клавиатуры
CALL ResetDisplay
CALL ResetKeyboard
; Основной цикл программы
Loop:
; Проверка ошибки на дисплее и сброс, если она есть
IN 12
JZ PrintSymbol
CALL ResetDisplay
PrintSymbol:
; Считывание символа с клавиатуры
IN 0
; Вывод символа, если он считался
JNZ WriteSymbol
; Проверка размера буфера (меньше 35)
RD R0
SBI 35
JS Loop
; Сброс клавиатуры
CALL ResetKeyboard
JMP Loop
WriteSymbol:
; Запись символа на экран
OUT 10
; Проверка ошибки на клавиатуре и сброс, если она есть
IN 2
JZ Increment
CALL ResetKeyboard
JMP Loop
Increment:
; Увеличение счётчика буфера на 1
RD R0
ADI 1
WR R0
; Завершение обработки прерывания
JMP Loop
ResetDisplay: ; Сброс и инициализация дисплея
; Очистка дисплея
RDI 101
OUT 11
; Разрешение работы дисплея и автосмещения
RDI 11
OUT 11
RET
ResetKeyboard: ; Сброс и инициализация клавиатуры
; Очистка клавиатуры
RDI 101
OUT 1
; Включение буфера клавиатуры
RDI 10
OUT 1
; Установка счётчика для буфера в нуль
RDI 0
WR R0
RET
Характеристики
Тип файла документ
Документы такого типа открываются такими программами, как Microsoft Office Word на компьютерах Windows, Apple Pages на компьютерах Mac, Open Office - бесплатная альтернатива на различных платформах, в том числе Linux. Наиболее простым и современным решением будут Google документы, так как открываются онлайн без скачивания прямо в браузере на любой платформе. Существуют российские качественные аналоги, например от Яндекса.
Будьте внимательны на мобильных устройствах, так как там используются упрощённый функционал даже в официальном приложении от Microsoft, поэтому для просмотра скачивайте PDF-версию. А если нужно редактировать файл, то используйте оригинальный файл.
Файлы такого типа обычно разбиты на страницы, а текст может быть форматированным (жирный, курсив, выбор шрифта, таблицы и т.п.), а также в него можно добавлять изображения. Формат идеально подходит для рефератов, докладов и РПЗ курсовых проектов, которые необходимо распечатать. Кстати перед печатью также сохраняйте файл в PDF, так как принтер может начудить со шрифтами.