Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Один из алгоритмов тестирования ОЗУ предполагает заполнение памяти тестовой информацией (в простейшем случае в ячейку памяти записывается младший байт её адреса, просуммированный с некоторой константой).
Листинг 4.39 содержит текст программы тестирования ОЗУ ёмкостью 8 кБ.
Листинг 4.39 – Программа тестирования ОЗУ | ||
.ORG 0000H | ; Адрес начала программы | |
TEST: | MOV R0, #00H CALL WRITE CALL READ | ; Загрузка в R0 числа, ; прибавляемого к тестовой ; информации (контрольного ; байта) ; Вызов подпрограммы записи ; тестовой информации в ОЗУ ; Вызов подпрограммы чтения ; тестовой информации из ОЗУ с ; проверкой правильности записи |
CJNE A, 00H, STOP DJNZ R0, TEST JMP BEGIN | ; Проверка результата ; тестирования. При ; обнаружении ошибки останов ; программы ; Иначе переход к следующему ; циклу тестирования ; Переход к основной программе в ; случае успешного тестирования | |
STOP: | JMP $ | ; Останов программы при ; обнаружении ошибки ОЗУ |
; Основная программа | ||
BEGIN: | … | |
; Подпрограмма записи тестовой информации в ОЗУ | ||
WRITE: NEXTW: | MOV DPTR, #0000H MOV A, DPL ADD A, R0 MOVX @DPTR, A INC DPTR MOV A, DPH CJNE A, #20H, NEXTW RET | ; В DPTR заносится адрес, по ; которому необходимо ; сохранить байт ; тестовой информации ; В аккумулятор помещается ; младший байт адреса и ; прибавляется число из ; регистра R0 ; Запись тестовой информации в ; ОЗУ ; Инкрементирование адреса ; Проверка предела заполнения ; памяти и переход на начало ; цикла записи, если память ; заполнена не полностью ; Выход из подпрограммы |
; Подпрограмма чтения тестовой информации из ОЗУ с проверкой ; правильности записи | ||
READ: NEXTR: | MOV DPTR, #0000H MOVX A, @DPTR CLR C SUBB A, R0 CJNE A, DPL, ERR INC DPTR MOV A, DPH CJNE A, #20H, NEXTR MOV A, R0 RET | ; В DPTR заносится адрес, с ; которого необходимо ; считать байт ; тестовой информации ; Чтение байта из ОЗУ ; Вычитание из считанного ;значения контрольного байта ; Проверка правильности ; записи данных ; Инкрементирование адреса ; Проверка предела чтения ; памяти и переход на начало ; цикла чтения, если память ; считана не полностью ; Загрузка в аккумулятор байта ; из регистра R0 ; Выход из подпрограммы |
ERR: | MOV A, R0 CPL A RET | ; Загрузка в аккумулятор байта ; из регистра R0 и ; его инвертирование ; Выход из подпрограммы |
Дата публикования: 2014-11-03; Прочитано: 366 | Нарушение авторского права страницы