Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @ #define N 10
- @
- @ int A[N] = {7,3,25,4,75,2,1,1}; // en sección .data
- @ int max = 0; // en sección .bss ó .text
- @
- @ for(i=0; i<N; i++){
- @ if(A[i]>max)
- @ max=A[i];
- @ }
- .global start
- .equ N, 8
- .bss
- MAX: .space 4 @ MAX = &max
- .data
- A: .word 7,3,25,4,75,2,1,1
- .text
- start:
- MOV R0, #0 @ R0 = i
- MOV R1, #0 @ R1 = max
- LDR R3, =A @ R3 = &A
- MOV R4, #N @ R4 = N
- for:
- LDR R2, [R3] @ R2 = A[i]
- CMP R0, R4 @ i - N
- BEQ fin_for @ i = N -> fin_for
- CMP R2, R1 @ A[i] - max
- BLE salto
- MOV R1, R2 @ max = A[i]
- salto:
- ADD R3, R3, #4 @ &A += 4
- ADD R0, R0, #1 @ i++
- B for
- fin_for:
- LDR R3, =MAX @ R3 = &max
- STR R1, [R3] @ &max <- max
- *********************************************************************************
- @ #define N 10
- @
- @ int A[N]={7,3,25,4,75,2,1,1,45,2};
- @ int B[N];
- @ int max, ind, i, j;
- @
- @ for(j=0; j<N; j++){
- @ max=0;
- @ for(i=0; i<N; i++){
- @ if(A[i]>max){
- @ max=A[i];
- @ ind=i;
- @ }
- @ }
- @ B[j]=A[ind];
- @ A[ind]=0;
- @ }
- .global start
- .equ N, 10
- .bss
- MAX: .space 4 @ MAX = &max
- vB: .space 40 @ vB = &B
- IND: .space 4
- .data
- vA: .word 7,3,25,4,75,2,1,1,45,2
- .text
- start:
- @ R0 = i
- @ R1 = j
- @ R2 = A[i]
- @ R3 = B[j]
- @ R4 = &A[i]
- @ R5 = &B[j]
- LDR R6, =vA @ R6 = &A
- LDR R7, =vB @ R7 = &B
- LDR R8, =MAX @ R8 = &max
- LDR R9, =IND @ R9 = &ind
- MOV R10, #N @ R10 = N
- @ R11 = max
- @ R12 = ind
- MOV R13, #0 @ R13 = 0 (registro 0 fijo)
- MOV R1, #0 @ j = 0
- MOV R5, R7 @ &B[j] = &B[0] = &B
- forJ:
- CMP R1, R10 @ j - N
- BEQ fin_forJ @ j = N -> fin_forJ
- MOV R11, #0 @ max = 0
- STR R11, [R8] @ &max <- max
- MOV R0, #0 @ i = 0
- MOV R4, R6 @ &A[i] = &A[0] = &A
- forI:
- LDR R2, [R4] @ A[i] <- &A[i]
- CMP R0, R10 @ i - N
- BEQ fin_forI @ i = N -> fin_forI
- CMP R2, R11 @ A[i] - max
- BLE salto
- MOV R11, R2 @ max = A[i]
- STR R11, [R8] @ &max <- max
- MOV R12, R4 @ ind = &A[i] = &A[ind]
- STR R12, [R9] @ &ind <- ind
- salto:
- ADD R4, R4, #4 @ &A[i] += 4
- ADD R0, R0, #1 @ i++
- B forI
- fin_forI:
- LDR R2, [R12] @ A[i] <- &ind = &A[ind]
- MOV R3, R2 @ B[j] = A[i]
- STR R3, [R5] @ &B[j] <- B[j]
- STR R13, [R12] @ &A[ind] <- 0
- ADD R5, R5, #4 @ &B[j] += 4
- ADD R1, R1, #1 @ j++
- B forJ
- fin_forJ:
Add Comment
Please, Sign In to add comment