Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ;----------------------------------------------
- ; R6-> MENOR valor
- ; R7 -> QUANTAS VEZES ELE APARECE
- ;----------------------------------------------
- mov #vetor, R5 ;inicializa R5 com o endereco inicial do vetor
- call #menor ;chama a subrotina menor
- jmp $
- menor: mov.b @R5+, R8 ;coloca o tamanho do vetor em R8
- mov.b #1, R9 ;inicializa a posicao atual no vetor
- mov.b #1, R7 ;inicializa o numero de ocorrencias
- mov.b @R5+, R6 ;inicializa o primeiro elemento como o menor em R6
- call #comp_loop
- ret
- comp_loop: cmp R8, R9 ;compara o tamanho maximo do vetor
- jeq sai_loop ;se chegar ao maximo o vetor inteiro ja foi lido
- cmp.b @R5, R6 ;compara os valores atual do vetor e R6 (R6 - @R5)
- jeq mesmo_menor ;caso ache o mesmo
- jc novo_menor ;caso o resultado seja negativo
- inc R5 ;avanca o ponteiro do vetor
- add.b #1, R9 ;incrementa a posicao atual no vetor
- jmp comp_loop
- novo_menor: mov.b @R5, R6 ;novo menor eh atribuido a R6
- mov.b #1, R7 ;o numero de ocorrencias
- inc R5 ;avanca o ponteiro do vetor
- add.b #1, R9 ;incrementa a posicao atual no vetor
- jmp comp_loop
- mesmo_menor: add.b #1, R7 ;incrementa o numero de ocorrencias
- inc R5 ;avanca o ponteiro do vetor
- add.b #1, R9 ;incrementa a posicao atual no vetor
- jmp comp_loop
- sai_loop: ret
- ;----------------------------------------------------------------------------
- ; Segmento de dados inicializados (0x2400)
- ;----------------------------------------------------------------------------
- .data
- ; Declarar vetor [MARCELOPEDRO], com 12 elementos
- vetor: .byte 12, 'M', 'A', 'R', 'C', 'E', 'L', 'O', 'P', 'E', 'D', 'R', 'O'
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement