Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- JMP start
- ;X e a variável que armazena o valor do vetor
- ;O DB 0 simboliza que chegou no fim da string
- X: DB "1;7;3;6;5;5;2"
- DB 0
- start:
- MOV C, X ;Atribui o endereço do vetor X no registrador C
- MOV B, 0d
- escreverMensagemInicial:
- ;Escreve o inicio da mensagem
- MOV D, 232d
- MOV [D], 77
- INC D
- MOV [D], 69
- INC D
- MOV [D], 68
- INC D
- MOV [D], 40
- INC D
- MOV D, 0d
- calculo:
- ;Inicia a soma dos elementos do vetor
- MOV A, [C]
- ;CMP e usado para compara se o valor de A e igual a 59d(;)
- ;caso se igual e realizado um salto para virgula
- CMP A, 59d
- JE virgula
- SUB A, 48d
- ADD B, A
- virgula:
- INC C
- ;Compara se o valor do registrador D e o mesmo que o valor em C naquela posição
- ;caso não seja igual a 0 e saltado para calculo
- CMP D, [C]
- JNZ calculo
- ;Operação de identificação do numero de elementos do vetor
- MOV A, C
- DIV 2d
- MOV D, A
- ;Efetua a operação de calculo da media e envia os resultados pelo push
- MOV A, B
- MOV B, D
- MOV D, A
- DIV B
- PUSH A
- MUL B
- SUB D, A
- MOV A, D
- MUL 10d
- DIV B
- PUSH A
- organizarRegistradores:
- ;Preparando os registradores para escrever o resto da mensagem
- MOV A, 0d
- MOV B, 0d
- MOV C, 2d
- MOV D, 236d
- escreverValoresVetor: ;Usado para enviar os valores do vetor para a saída do sistema
- MOV A, [C]
- MOV [D], A
- INC D
- INC C
- CMP B, [C]
- JNZ escreverValoresVetor
- escreverFinalMensagem:
- ;Conclui a mensagem de saída do sistema
- MOV [D], 41
- INC D
- MOV [D], 32
- INC D
- MOV [D], 61
- INC D
- MOV [D], 32
- INC D
- ;Realizar a permuta no resultado do sistema
- POP B
- POP A
- PUSH B
- PUSH A
- MOV A, 0d
- POP A
- ADD A, 48d
- ADD B, 48d
- ;Enviando o resultado para a saída
- MOV [D], A
- INC D
- MOV [D], 44d
- INC D
- MOV [D], B
- INC D
- HLT ;Encerrando todas as operacoes
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement