(Parte 3 de 3)

O valor de interesse é extraído da tabela, por meio da instrução RETL W;

Oregistrador PCL está presente e mtodos os bancos deregistradores, ou seja, não é necessário mudar de banco para alterar o conteúdo do mes mo.

CRIAÇÃO DE TABELAS DE DADOS Uso doregistrador PCL para saltarinstruções.

21 UFSJ –CAP

© Edgar C. Furtado

A utilização do PCL deve ser aco mpanhada de alguns cuidados:

Verificar se a adição do PCLresulta e m u míndice válido para atabela,le mbrando que PCL é u mregistrador de 8bis;

Garantir que a tabela não esteja e m u ma área de transição do PCL.

2 UFSJ –CAP

© Edgar C. Furtado

No pri meiro caso, deve-se validar o índice da tabela co mparando-o co m o nú mero de valores ar mazenados na tabela menos u m. Se o Carry for 1 significa que o índice repassado excede o nú mero de ele mentos databela.

Exe mplo de u ma sub-rotinatabela, onde sefaz a validação doíndice dos ele mentos. Caso oíndice seja maior que o nú mero de ele mentos menos u m, deve-seretornar da subrotina se m associar nenhu m valor.

23 UFSJ –CAP

© Edgar C. Furtado

No segundo caso deve-se garantir que os dados ar mazenados não esteja m na área detransição do PCL, ou seja,

24 UFSJ –CAP

© Edgar C. Furtado

Me mória de Progra ma (FLASH):

Local onde ser ar mazena as instruções.

Contador de

Progra ma Registrador SRAM

8 níveis de Pilhas

Memória FLASH do PIC

25 UFSJ –CAP

© Edgar C. Furtado

Word: 14 bits Tamanho: 8096 x 14 bits

Endereçamento a partir do PC (program Counter).

Solução?

ORG 0X5 0 BCF PCL AT H,4 BSF PCL AT H,3 CAL L TAB _1

Configura a página da memória de programa que conterá a tabela e realiza o chamado da tabela.

26 UFSJ –CAP

© Edgar C. Furtado

ORG 0X9 0 TAB _1 RET UR N

Tabela montada a partir do endereço 0X900 na memória de programa

(Parte 3 de 3)

Comentários