Курсовая работа: Микропроцессорная система управления предназначенная для использования на лесопильном заводе
Важно то, что процедура E_RAM не обращается к памяти ни напрямую, ни через стек – она хранит все свои данные в регистрах и записывает только в порты индикаторов.
Листинг 2 : процедура E_RAM, вызываемая после ошибки ОЗУ
; – – – обработка ошибки ОЗУ (код “E1”)
E_RAM EX DE, HL ; адрес-операнд из HL перенести в DE
LD H, #07 ; H¬старший байт адреса таблицы кодов
LDA, E ;
AND #0F ; выделяем младшую тетраду в E
LD L, A ; извлекаем элемент с этим номером из массива
LD C, (HL) ; в регистр C
; теперь C=код, посылаемый на 8-й индикатор
LDA, D ;
AND #0F ; выделяем младшую тетраду в D
LDL, A ;
LD B, (HL) ; теперь B=код, выводимый на 6-й индикатор
SRL D ; четырежды сдвигаем D вправо (0®D®CY)
SRL D ; заполняя старшие биты нулями
SRLD ;
SRLD ;
SRL E ; четырежды сдвигаем E вправо (0®D®CY)
SRL E ; заполняя старшие биты нулями
SRLE ;
SRLE ;
LD L, E ; теперь необходимости в наложении маски нет
LD E, (HL) ; E=код, выводимый на 7-й индикатор
LDL, D ;
LD D, (HL) ; D=код, выводимый на 5-й индикатор
; цикл вывода на индикаторы
E_RAM1 LD A, #79; A¬семисегментный код символа “E”
OUT (#0A), A ; в 1-й слева индикатор