2
Exercícios propostos com Neander 1. Faça quatro programas diferentes que zerem o acumulador. 2. Faça um programa que usa lógica complementar de 2 para realizar quatro operações aritméticas com duas variáveis A e B, considerando que: end 00H: variável A = 09H end 01H: variável B = 33H end 02H: resultado de A + B end 03H: resultado de A - B end 04H: resultado de - A + B end 05H: resultado de - A - B 3. Considerando os endereços 00H, 01h, 02H e 03H de memória, determinar qual a maior das 3 variáveis positivas de 8 bits armazenadas nas 3 primeiras posições. O resultado (ou seja, a maior variável), deve aparecer na quarta posição de memória. 4. Faça um programa que determine a ocorrência de overflow na soma de duas variáveis. As variáveis são de 8 bits em complemento de dois e estão armazenadas em posições consecutivas de memória. O resultado da soma, também em 8 bits, deve aparecer na primeira posição livre e overflow deve ser indicado da seguinte forma: Posição 00h = 00H quando não ocorrer overflow Posição 00h = FFH quando ocorrer overflow 5. Desenvolva um programa que limpa (atribui 00H) na memória do Neander compreendida entre os endereços 00H e 07H inclusive. Sugestão: iniciar o programa no endereço a partir de 10H. 6. Desenvolva um programa que verifica se o valor contido na memória de endereço 00H se encontra na memória compreendida entre os endereços 0H e 07H inclusive. O programa deve ter sua execução parada tão logo o valor seja encontrado, senão no término de toda a pesquisa. Caso o valor seja encontrado, o flag Z deve ser deixado em ´1´. Caso contrário, deve ser deixado em ´0´. Sugestão: iniciar o programa no endereço a partir de 10H. 7. Considerando os endereços 00H, 01h, 02H e 03H de memória, realizar a soma dos valores presentes nas três posições consecutivas da memória e armazenar o resultado na quarta posição. Para testar é recomendado inicializar as memórias de modo que a soma não ultrapasse 255 em decimal. Iniciar o programa no endereço a partir de 10H. 8. Considerando os endereços 00H, 01h e 02H, realizar produto dos valores presentes nas duas posições primeiras da memória e armazenar o resultado na terceira posição. Para testar é recomendado inicializar as memórias de modo que o produto não ultrapasse 255 em decimal. Iniciar o programa no endereço a partir de 10H. 9. Considerando a faixa de endereços de 00H a 07H, contar (e deixar o resultado no acumulador) quantos números pares há nesta faixa de endereço. Para testar, atribuir valores diversos na faixa de endereço e Iniciar o programa no endereço a partir de 10H.

002 - 2013 - Exercícios propostos com Neander

Embed Size (px)

Citation preview

Page 1: 002 - 2013 - Exercícios propostos com Neander

Exercícios propostos com Neander 1. Faça quatro programas diferentes que zerem o acumulador. 2. Faça um programa que usa lógica complementar de 2 para realizar quatro operações

aritméticas com duas variáveis A e B, considerando que:

• end 00H: variável A = 09H

• end 01H: variável B = 33H

• end 02H: resultado de A + B

• end 03H: resultado de A - B

• end 04H: resultado de - A + B

• end 05H: resultado de - A - B

3. Considerando os endereços 00H, 01h, 02H e 03H de memória, determinar qual a maior das 3 variáveis positivas de 8 bits armazenadas nas 3 primeiras posições. O resultado (ou seja, a maior variável), deve aparecer na quarta posição de memória.

4. Faça um programa que determine a ocorrência de overflow na soma de duas variáveis. As variáveis são de 8 bits em complemento de dois e estão armazenadas em posições consecutivas de memória. O resultado da soma, também em 8 bits, deve aparecer na primeira posição livre e overflow deve ser indicado da seguinte forma:

• Posição 00h = 00H quando não ocorrer overflow

• Posição 00h = FFH quando ocorrer overflow

5. Desenvolva um programa que limpa (atribui 00H) na memória do Neander compreendida entre os endereços 00H e 07H inclusive. Sugestão: iniciar o programa no endereço a partir de 10H.

6. Desenvolva um programa que verifica se o valor contido na memória de endereço 00H se encontra na memória compreendida entre os endereços 0H e 07H inclusive. O programa deve ter sua execução parada tão logo o valor seja encontrado, senão no término de toda a pesquisa. Caso o valor seja encontrado, o flag Z deve ser deixado em ´1´. Caso contrário, deve ser deixado em ´0´. Sugestão: iniciar o programa no endereço a partir de 10H.

7. Considerando os endereços 00H, 01h, 02H e 03H de memória, realizar a soma dos valores presentes nas três posições consecutivas da memória e armazenar o resultado na quarta posição. Para testar é recomendado inicializar as memórias de modo que a soma não ultrapasse 255 em decimal. Iniciar o programa no endereço a partir de 10H.

8. Considerando os endereços 00H, 01h e 02H, realizar produto dos valores presentes nas duas posições primeiras da memória e armazenar o resultado na terceira posição. Para testar é recomendado inicializar as memórias de modo que o produto não ultrapasse 255 em decimal. Iniciar o programa no endereço a partir de 10H.

9. Considerando a faixa de endereços de 00H a 07H, contar (e deixar o resultado no acumulador) quantos números pares há nesta faixa de endereço. Para testar, atribuir valores diversos na faixa de endereço e Iniciar o programa no endereço a partir de 10H.

Page 2: 002 - 2013 - Exercícios propostos com Neander

10. Considerando a faixa de endereços de 00H a 07H, contar (e deixar o resultado no acumulador) quantos números ímpares existem nesta faixa de endereço. Para testar atribuir valores diversos na faixa de endereço e Iniciar o programa no endereço a partir de 10H.

11. Considerando que na faixa de endereços de 00H a 02H, se encontram armazenados valores positivos menores do que 09H, diferentes entre sí e fora de ordem, desenvolver um programa que os coloca na ordem crescente. Para testar atribuir valores na faixa de endereço e iniciar o programa no endereço a partir de 10H.

12. Considerando que na faixa de endereços de 00H a 02H, se encontram armazenados valores positivos menores do que 09H e fora de ordem, desenvolver um programa que os coloca na ordem decrescente. Para testar atribuir valores na faixa de endereço e iniciar o programa no endereço a partir de 10H.