• Aulas
  • Abril
  • 29/04 - Assembly Saltos

Lab 9: Periféricos

Ao final desse lab você deve ser capaz de:

  1. Escrever nos LEDs do nosso Z01
  2. Ler das chaves (SW) do nosso Z01

Tip 1

Para fazer esse lab, você deve ter lido a teoria sobre mapa de memória

Note

Dúvidas sobre assembly? Z01->Resumo Assembly

Esse lab deve ser feito no Z01Simulador, para abrir o programa basta executar o script Z01simulador.py dentro da pasta do projeto f_Assembly

Todos os arquivos possuem teste, após programar no Simulador execute o teste

LEDs

Problemas relacionados ao LED do nosso Z01

Lembrando...

Qual endereço de memória para acessar os leds do Z01?

  • 16384

led1.nasm

  • f_Assembly/src/labs/led1.nasm

Faça o LED0 acender

leaw $1, %A
movw %A, %D
leaw $16384, %A
movw %D, (%A)

led2.nasm

  • f_Assembly/src/labs/led2.nasm

Faça os LEDs: 9,7,5,3,1 acenderem

  1. Você precisa escrever a palavra 0b1010101010 nos LEDs, converta para decimal e carrega na CPU com leaw
  2. Use uma calculadora/google para isso
    • no google: bin 1010101010 to dec

SW

Problemas relacionado a chave do nosso Z01

Lembrando...

Qual endereço de memória para acessar as chaves SW do Z01?

  • 16385

sw1.nasm

  • f_Assembly/src/labs/sw1.nasm

Faça os LEDs serem o valor das chaves: LED = SW

Antes de iniciar a simulação, você deve configurar as chaves:

leaw $16385, %A
movw (%A), %D
leaw $16384, %A
movw %D, (%A)

sw2.nasm

  • f_Assembly/src/labs/sw2.nasm

Faça os LEDs serem o contrário do valor das chaves: LED = !SW

Antes de iniciar a simulação, você deve configurar as chaves:

Utilize a instrução notw %D para inverter o valor salvo no registrador %D