Roteiro do 6° laboratório
Transcrição
Roteiro do 6° laboratório
UNIFEI – Universidade Federal de Itajubá IESTI - Instituto de Engenharia de Sistemas e Tecnologia da Informação ELT044 – Laboratório de Microcontroladores Roteiro do 6° laboratório Trabalho com a pilha de dados e com o modo de endereçamento indexado Nome: ____________________________________________________________________________________ Matrícula: _________________ Nesta atividade, serão abordados exemplos do emprego da pilha e dados e do modo de enderaçamento indexado do microprocessador HCS12. O ambiente de desenvolvimento a ser utilizado é o CodeWarrior 5.1. Atividade 1: O seguinte programa efetua a soma de 10 valores não sinalizados de 8 bits cada. Esses valores estão dispostos a partir do endereço de memória $1000. O programa desconsidera o estouro de representação que pode ocorrer durante a soma dos termos e armazena o resultado na posição de memória $1020. Soma R = V1 + V2 + V2 + V3 + ... + V10 01: 02: 03: 09: 11: Inicio: 11: 10: 12: 13: Somar: 14: 14: 15: 16: 17: 18: 19: 20: 21: XDEF Inicio ABSENTRY Inicio ORG $4000 ; Origem da memória de programa LDX #$1000 ; X apontará para a posição dos valores a serem somados LDAB #10 ; O acumulador B manterá o valor de índice de soma CLRA ; O acumulador A manterá o resultado parcial ADDA 0, X INX DECB BNE Somar STAA $1020 ORG $FFFE DC.W Inicio ; Efetuar a operação A ← A + M[ X ] ;X←X+1 ; Decrementar o índice ; Repetir enquanto a índice for maior que 0 ; Armazenar o resultado ; ponteiro para o vetor de RESET END Para esta primeira versão do programa, a implemente e a simule no CodeWarrior a fim de verificar sua operação. Para tanto, a modifique de forma a incluir a sequência 1, 2, 3, 4, 5, ..., 10 nas posições de memória que serão varridas ao se efetuar a soma. Levante, por meio do próprio ambiente de desenvolvimento, a listagem de memória de programa gerada. Levante também os valores dos registros A, B e X para cada iteração de execução do laço de repetição do programa. ELT044 – Prof. Rodrigo de Paula Rodrigues Laboratório 6 1/5 Atividade 2: Modifique o programa anterior de forma a utilizar a instrução ADDA com modo de endereçamento em pré-incremento tendo-se como base o índice X. Implemente e simule o novo programa obtido. Transcreva para a folha de respostas seu código-fonte. Atividade 3: Uma forma de calcular o MMC entre dois valores é gerar a série de múltiplos para cada uma deles e então procurar pela primeira ocorrência entre múltiplos iguais. Como exemplo, a tabela abaixo exibe uma forma de encontrar o MMC entre os valores 3 e 4. Valor x 1 x 2 x 3 x 4 x 5 x 6 x 7 ... 3 4 3 4 6 8 9 12 12 16 15 20 18 24 21 28 ... ... Desenvolva um programa que encontre o MMC entre dois valores a partir de suas sequências de múltiplos dispostas em memória. Considere que a primeira sequência esteja presente a partir do endereço $1100 e a segunda, $1200. Considere, ainda, que no endereço $1000 esteja armazenada a quantidade de termos presentes em cada uma das listas e que ao endereço subsequente deva ser enviado o MMC encontrado. Necessariamente utilize a pilha de dados para varrer pelo menos uma das duas listas. Cada item das listas é um número não sinalizado de 8 bits. ELT044 – Prof. Rodrigo de Paula Rodrigues Laboratório 6 2/5 Folha de respostas Roteiro do 6° laboratório (deve ser entregue impressa e assinada em até 1 dia da data do laboratório) Nome: ____________________________________________________________________________________ Matrícula: _________________ Atividade 1 ELT044 – Prof. Rodrigo de Paula Rodrigues Laboratório 6 3/5 Atividade 2 ELT044 – Prof. Rodrigo de Paula Rodrigues Laboratório 6 4/5 Atividade 3 ELT044 – Prof. Rodrigo de Paula Rodrigues Laboratório 6 5/5