Проектирование средств контроля и диагностики с элементами высокой интеграции. Голубков В.А - 20 стр.

UptoLike

18
Массивы в ПЗУ можно организовывать в виде подпрограмм и обращаться
к ним как к подпрограммам. В данном случае используются подпрограммы,
представляющие собой набор команд retlw K, где К означает байтовую
константу. Команда retlw K выполняет возврат из подпрограммы с
одновременным занесением числа К в аккумулятор. В начале подпрограммы-
массива стоит вычисляемый оператор GOTO, который передает
управление на
нужный нам оператор retlw. Вычисляемый оператор GOTO организован
следующим образом. Считаем, что при обращении к подпрограмме в
аккумуляторе передается индекс элемента массива, который надо выбрать из
подпрограммы-массива. Этот индекс прибавляется к счетчику команд, точнее к
его младшему байту PCL, что и вызывает переход на нужный нам оператор
retlw К.
Данный прием
программирования иллюстрируется следующим примером.
………….
movlw 5 ; занесли число 5 в аккумулятор. Это индекс элемента массива
call MasRom ; обратились к подпрограмме-массиву
; после выхода из подпрограммы в W находится MasRom [5]
………….
; текст подпрограммы
MasRom
addwf PCL,F ; прибавили к младшему байту счетчика адреса константу,
; хранящуюся в W. Сразу перепрыгнули на несколько адресов
; вперед
retlw 2 ;
retlw 7 ; Здесь перечислены все
retlw 4 ; элементы массива, начиная с MasRom[0]
……. ; Массив содержит числа : 2,7,4….,9
retlw 9 ;
Надо следить за тем, чтобы не происходило переполнение