Logo Hardware.com.br
brancowasb
brancowasb Novo Membro Registrado
1 Mensagem 0 Curtidas

Programa Assembly

#1 Por brancowasb 21/06/2015 - 15:28
boa tarde galera. Sou iniciante no programa Assembly.
Tenho que desenvolver um programa em Assembly do 8051 para receber as notas das AV´s (AV1, AV2 e AV3) armazenadas nos endereços de RAM 50H, 51H e 52H, respectivamente. O programa deverá fazer a média das 2 maiores notas (descartando a menor) e mostrá-la (média) no display 3 do simulador. O programa deve funcionar mesmo para o caso de todas as notas serem iguais. Não sei por onde começar.
Eliseu F A Jr
Eliseu F A J... Geek Registrado
776 Mensagens 354 Curtidas
#3 Por Eliseu F A J...
23/06/2015 - 19:44
Pseudo código:

Load rg1, AV1 // Carrega Registrador rg1 com AV1
Load rg2, AV2 // Carrega Registrador rg1 com AV2
Load rg3, AV3 // Carrega Registrador rg1 com AV3
// 50H, 51H e 52H
Load end1,50h // Carrega Registrador end1 com 50h
Save (end1),AV1
Load end2,51h // Carrega Registrador end2 com 51h
Save (end2),AV2
Load end3,52h // Carrega Registrador end3 com 52h
Save (end3),AV3
// Media
cmp rg1,rg2 // Compara AV1 COM AV2
jpp labelc2 // pula se rg1>rg2 ( jump +, pula se valor positivo )
// Aqui sabe-se rg2>rg1
..
..
A média é o (valor maior - valor menor) div 2
jp result ( pula para label result )
labelc2:
// Aqui sabe-se rg1 A média é o (valor maior - valor menor) div 2
..
..
Result:
// Save (endereço da tela), resultado
end

O jump pode ser em bytes. VocÊ terá que saber cada byte usado nas intruções para indicar quantos bytes vai pular.
© 1999-2024 Hardware.com.br. Todos os direitos reservados.
Imagem do Modal