Advertisement
Guest User

Untitled

a guest
Nov 24th, 2017
53
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.47 KB | None | 0 0
  1. .section .text
  2. .global extremos #int pontuacao(int *vetor,int num)
  3.  
  4. extremos:
  5. # prologue
  6. pushl %ebp # save previous stack frame pointer
  7. movl %esp, %ebp # the stack frame pointer for sum function
  8.  
  9. pushl %ebx #guarda %ebx na stack
  10. pushl %edi #guarda %edi na stack
  11. pushl %esi
  12.  
  13.  
  14. movl $0,%eax
  15. movl $0,%ebx
  16. movl $0x7FFFFFFF,%ecx
  17. movl $0,%edx
  18.  
  19.  
  20. movl 8(%ebp),%edi #vetor
  21. movl 12(%ebp),%esi #numeroElementos
  22. subl $8,%esp
  23. movl $0, -8(%ebp)
  24. movl (%edi),%ebx #ebx tem o 1 elemento do vetor
  25.  
  26. loop:
  27.  
  28.  
  29. cmpl $0,%esi
  30. je end
  31.  
  32. cmpl $32,-8(%ebp)
  33. je avanca #se percorrer 32 bits avanca para o proximo num
  34.  
  35. movl %ebx,-4(%ebp) #-4(%ebp) serve como auxiliar
  36.  
  37. andl $0xFFFF,-4(%ebp) #poe os 16 bits mais significativos a 0
  38. cmpl %edx,-4(%ebp)
  39. jg maior
  40. cmpl %ecx, -4(%ebp)
  41. jl menor
  42. shrl $16,%ebx
  43. addl $16,-8(%ebp) #verifica se o numero ja acabou
  44.  
  45. jmp loop
  46.  
  47. maior:
  48. movl -4(%ebp),%edx
  49. shrl $16,%ebx
  50. addl $16,-8(%ebp) #verifica se o numero ja acabou
  51. jmp loop
  52.  
  53. menor:
  54. movl $0, %ecx
  55. movl -4(%ebp),%ecx
  56. shrl $16,%ebx
  57. addl $16,-8(%ebp) #verifica se o numero ja acabou
  58. jmp loop
  59.  
  60. avanca:
  61. movl $0, -8(%ebp)
  62. addl $4,%edi
  63. movl (%edi),%ebx
  64. decl %esi
  65.  
  66. jmp loop
  67.  
  68. end:
  69.  
  70. orl %edx, %eax
  71. shll $16, %eax
  72. orl %ecx, %eax
  73.  
  74. popl %esi
  75. popl %edi
  76. popl %ebx
  77.  
  78. # epilogue
  79. movl %ebp, %esp # restore the previous stack pointer ("clear" the stack)
  80. popl %ebp # restore the previous stack frame pointer
  81. ret
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement