Guest User

Untitled

a guest
Jan 22nd, 2018
130
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.44 KB | None | 0 0
  1. @ #define N 10
  2. @
  3. @ int A[N] = {7,3,25,4,75,2,1,1}; // en sección .data
  4. @ int max = 0; // en sección .bss ó .text
  5. @
  6. @ for(i=0; i<N; i++){
  7. @ if(A[i]>max)
  8. @ max=A[i];
  9. @ }
  10.  
  11. .global start
  12.  
  13. .equ N, 8
  14.  
  15. .bss
  16. MAX: .space 4 @ MAX = &max
  17.  
  18. .data
  19. A: .word 7,3,25,4,75,2,1,1
  20.  
  21. .text
  22. start:
  23. MOV R0, #0 @ R0 = i
  24. MOV R1, #0 @ R1 = max
  25. LDR R3, =A @ R3 = &A
  26. MOV R4, #N @ R4 = N
  27. for:
  28. LDR R2, [R3] @ R2 = A[i]
  29. CMP R0, R4 @ i - N
  30. BEQ fin_for @ i = N -> fin_for
  31.  
  32. CMP R2, R1 @ A[i] - max
  33. BLE salto
  34. MOV R1, R2 @ max = A[i]
  35. salto:
  36. ADD R3, R3, #4 @ &A += 4
  37. ADD R0, R0, #1 @ i++
  38. B for
  39. fin_for:
  40. LDR R3, =MAX @ R3 = &max
  41. STR R1, [R3] @ &max <- max
  42.  
  43.  
  44. *********************************************************************************
  45.  
  46. @ #define N 10
  47. @
  48. @ int A[N]={7,3,25,4,75,2,1,1,45,2};
  49. @ int B[N];
  50. @ int max, ind, i, j;
  51. @
  52. @ for(j=0; j<N; j++){
  53. @ max=0;
  54. @ for(i=0; i<N; i++){
  55. @ if(A[i]>max){
  56. @ max=A[i];
  57. @ ind=i;
  58. @ }
  59. @ }
  60. @ B[j]=A[ind];
  61. @ A[ind]=0;
  62. @ }
  63.  
  64. .global start
  65.  
  66. .equ N, 10
  67.  
  68. .bss
  69. MAX: .space 4 @ MAX = &max
  70. vB: .space 40 @ vB = &B
  71. IND: .space 4
  72.  
  73. .data
  74. vA: .word 7,3,25,4,75,2,1,1,45,2
  75.  
  76. .text
  77. start:
  78. @ R0 = i
  79. @ R1 = j
  80. @ R2 = A[i]
  81. @ R3 = B[j]
  82. @ R4 = &A[i]
  83. @ R5 = &B[j]
  84. LDR R6, =vA @ R6 = &A
  85. LDR R7, =vB @ R7 = &B
  86. LDR R8, =MAX @ R8 = &max
  87. LDR R9, =IND @ R9 = &ind
  88. MOV R10, #N @ R10 = N
  89. @ R11 = max
  90. @ R12 = ind
  91. MOV R13, #0 @ R13 = 0 (registro 0 fijo)
  92.  
  93. MOV R1, #0 @ j = 0
  94. MOV R5, R7 @ &B[j] = &B[0] = &B
  95. forJ:
  96. CMP R1, R10 @ j - N
  97. BEQ fin_forJ @ j = N -> fin_forJ
  98. MOV R11, #0 @ max = 0
  99. STR R11, [R8] @ &max <- max
  100.  
  101. MOV R0, #0 @ i = 0
  102. MOV R4, R6 @ &A[i] = &A[0] = &A
  103. forI:
  104. LDR R2, [R4] @ A[i] <- &A[i]
  105. CMP R0, R10 @ i - N
  106. BEQ fin_forI @ i = N -> fin_forI
  107.  
  108. CMP R2, R11 @ A[i] - max
  109. BLE salto
  110. MOV R11, R2 @ max = A[i]
  111. STR R11, [R8] @ &max <- max
  112. MOV R12, R4 @ ind = &A[i] = &A[ind]
  113. STR R12, [R9] @ &ind <- ind
  114. salto:
  115. ADD R4, R4, #4 @ &A[i] += 4
  116. ADD R0, R0, #1 @ i++
  117. B forI
  118. fin_forI:
  119. LDR R2, [R12] @ A[i] <- &ind = &A[ind]
  120. MOV R3, R2 @ B[j] = A[i]
  121. STR R3, [R5] @ &B[j] <- B[j]
  122. STR R13, [R12] @ &A[ind] <- 0
  123.  
  124. ADD R5, R5, #4 @ &B[j] += 4
  125. ADD R1, R1, #1 @ j++
  126. B forJ
  127.  
  128. fin_forJ:
Add Comment
Please, Sign In to add comment