Advertisement
Guest User

Untitled

a guest
Jun 25th, 2018
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. .data
  2.     tam: .word 8
  3.     vect: .word 64,25,9,23,56,77,87,100
  4.     res: .word 0
  5. .text
  6. .global main
  7.     main: push {lr}
  8.         ldr r0, =vect @ Cargamos direccion del vector en r0
  9.         ldr r1, =tam
  10.         ldr r1, [r1] @ Cargamos longitud del vector en r1
  11.         ldr r4, =res @ Cargamos la direccion de res en r4
  12.         bl maxones @ Invocamos funcion
  13.         str r0, [r4] @ Guardamos el resultado en res
  14.         pop {pc} @ Finalizamos el programa
  15.     ones:                                               @Codigo de la funcion que devuelve el numero de 1s en la
  16.                                                         @representación binaria de un valor de entrada.
  17.                                                         @(Hay que llamarla desde maxones y no se puede modificar)
  18.             mov r2, #0
  19.         onesloop:
  20.             and r3, r0, #1
  21.             add r2, r2, r3
  22.             lsrs r0, #1
  23.             bne onesloop
  24.             mov r0, r2
  25.             bx lr
  26. maxones:
  27.  
  28.     push {r4}
  29.     mov r4,#0
  30.     lsr r1,#1
  31.     loop:
  32.    
  33.     ldr r2, [r0], #4
  34.  
  35.     push {r0}
  36.  
  37.     mov r0,r2
  38.     bl ones
  39.     mov r3,r0   @r3= numero de unos del primer array
  40.    
  41.     pop {r0}
  42.    
  43.     ldr r2, [r0], #4
  44.    
  45.     push {r0}
  46.    
  47.     mov r0, r2
  48.     push {r3}
  49.     bl ones
  50.     pop {r3}
  51.    
  52.     mov r5,r0
  53.    
  54.     cmp r5,r3
  55.     movGE r3,r5
  56.     cmp r3,r4
  57.     movGE r4,r3
  58.    
  59.     pop {r0}
  60.     sub r1,r1,#1
  61.     cmp r1,#0
  62.     bNE loop
  63.    
  64.     pop {r4}
  65.  
  66.     bx lr
  67.    
  68.     @cargar el vector en r0,
  69.     @primra posicion
  70.     @push {r0}
  71.     @calculas el valor de unos
  72.     @mov r3,r0
  73.     @pop {r0}
  74.     @   64  ,  25,   9,   23,   56,     77,     87,     100
  75.     @1000000,11001,1001,10111,111000,1001101,1010111,1100100
  76.     @   1,      32,    4,    3,      4,      5,      3
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement