Advertisement
Guest User

Untitled

a guest
Apr 9th, 2017
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ;----------------------------------------------
  2. ;   R6-> MENOR valor
  3. ;   R7 -> QUANTAS VEZES ELE APARECE
  4. ;----------------------------------------------
  5.  
  6.               mov #vetor, R5      ;inicializa R5 com o endereco inicial do vetor
  7.               call #menor             ;chama a subrotina menor
  8.               jmp $
  9.  
  10. menor:        mov.b @R5+, R8        ;coloca o tamanho do vetor em R8
  11.               mov.b #1, R9          ;inicializa a posicao atual no vetor
  12.               mov.b #1, R7          ;inicializa o numero de ocorrencias
  13.               mov.b @R5+, R6        ;inicializa o primeiro elemento como o menor em R6
  14.               call #comp_loop
  15.               ret
  16.  
  17. comp_loop:    cmp R8, R9            ;compara o tamanho maximo do vetor
  18.               jeq sai_loop          ;se chegar ao maximo o vetor inteiro ja foi lido
  19.               cmp.b @R5, R6         ;compara os valores atual do vetor e R6 (R6 - @R5)
  20.               jeq mesmo_menor       ;caso ache o mesmo
  21.               jc novo_menor         ;caso o resultado seja negativo
  22.               inc R5                ;avanca o ponteiro do vetor
  23.               add.b #1, R9          ;incrementa a posicao atual no vetor
  24.               jmp comp_loop
  25.  
  26. novo_menor:   mov.b @R5, R6         ;novo menor eh atribuido a R6
  27.               mov.b #1, R7          ;o numero de ocorrencias
  28.               inc R5                ;avanca o ponteiro do vetor
  29.               add.b #1, R9          ;incrementa a posicao atual no vetor
  30.               jmp comp_loop
  31.  
  32. mesmo_menor:  add.b #1, R7          ;incrementa o numero de ocorrencias
  33.               inc R5                ;avanca o ponteiro do vetor
  34.               add.b #1, R9          ;incrementa a posicao atual no vetor
  35.               jmp comp_loop
  36.  
  37. sai_loop:     ret
  38.  
  39. ;----------------------------------------------------------------------------
  40. ; Segmento de dados inicializados (0x2400)
  41. ;----------------------------------------------------------------------------
  42.             .data
  43. ; Declarar vetor [MARCELOPEDRO], com 12 elementos
  44. 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