Problema - Escreva um programa em linguagem assembly no microprocessador 8085 para mostrar o mascaramento do nibble inferior e superior do número de 8 bits.

Exemplo -

Suposição - o número de 8 bits é armazenado no local de memória 2050. Após mascarar os nibbles, o nibble de ordem inferior é armazenado no local de memória 3050 e o nibble de ordem superior é armazenado no local de memória 3051.

Algoritmo -

  1. Carregue o conteúdo do local de memória 2050 no acumulador A.
  2. Mova o conteúdo de A no registro B.
  3. Execute a operação AND de A com 0F e armazene o resultado na localização de memória 3050.
  4. Mova o conteúdo de B em A.
  5. Execute a operação AND de A com 0F e inverta o resultado usando a instrução RLC 4 vezes.
  6. Armazene o resultado no local de memória 3051.

Programa -

ENDEREÇO ​​DE MEMÓRIAMNEMÔNICASCOMENTE
2000LDA 2050A <- M [2050]
2003MOV B, AB <- A
2004ANI 0FA <- A (AND) 0F
2006STA 3050M [3050] <- A
2009MOV A, BA <- B
200AANI 0FA <- A (AND) 0F
200CRLCgirar o conteúdo de A para a esquerda em 1 bit sem transportar
200DRLCgirar o conteúdo de A para a esquerda em 1 bit sem transportar
200ERLCgirar o conteúdo de A para a esquerda em 1 bit sem transportar
200FRLCgirar o conteúdo de A para a esquerda em 1 bit sem transportar
2010STA 3051M [3051] <- A
2013HLTFIM

Explicação - Os registros A, B são usados:

  1. LDA 2050: carregue o conteúdo do local de memória 2050 no acumulador A.
  2. MOV B, A: move o conteúdo de A para B.
  3. ANI 0F: execute a operação AND de A com 0F e armazene o resultado de volta em A.
  4. STA 3050: armazena o conteúdo de A na localização de memória 3050.
  5. MOV A, B: move o conteúdo de B em A.
  6. ANI 0F: execute a operação AND de A com 0F e armazene o resultado de volta em A.
  7. RLC: gira o conteúdo de A para a esquerda em 1 bit sem transportar. Use esta instrução 4 vezes para reverter o conteúdo de A.
  8. STA 3051: armazena o conteúdo de A no local de memória 3051.
  9. HLT: interrompe a execução do programa e interrompe qualquer execução posterior.