• Sábado 9 de Noviembre de 2024, 02:25

Autor Tema:  Ordenar Arreglo En Assembler De Vax-11  (Leído 2689 veces)

nf7me

  • Miembro activo
  • **
  • Mensajes: 27
    • Ver Perfil
Ordenar Arreglo En Assembler De Vax-11
« en: Miércoles 4 de Julio de 2007, 08:30 »
0
hola q tal, antes q nada.

Disculpen por pedir ayudar sobre una Tarea que hay q realizar, me disculpo, el assembler no es lo mio, lo mio es  C++,PHP , y he ayudado a mucha gente en estos lenguajes en distintos foros. espero que algien me pueda ayudar.

He estado muy ocupado, resfriado , y ganando algunos pesos arreglando unos pc, y no he tenido mucho tiempo para realizar la tarea, que de esta tarea depende que aprobemos el Ramo.

La Tarea es la Siguiente :
Citar
Dado una arreglo de registros, en que cada registro contiene una letra y un número entero. El arreglo se encuentra ordenado por las letras, por ejemplo:


Se le pide elaborar un programa en assembler que permita construir un arreglo de índices tal que se pueda acceder a los registros del arreglo según el orden de los números, en el ejemplo el programa construiría el siguiente arreglo de índices:


El Emulador de la VAX-11 lo encuentran  aqui



La verdad estaria muy agradecido si alguien me puede ayudar, de verdad sera recompensado :) , la fecha limite de entrega es hoy 4 uff

Thnx

nf7me

  • Miembro activo
  • **
  • Mensajes: 27
    • Ver Perfil
Re: Ordenar Arreglo En Assembler De Vax-11
« Respuesta #1 en: Miércoles 4 de Julio de 2007, 08:34 »
0
En las guias del profe, esta el siguiente codigo, muy similar a lo que se pide

Código: Text
  1.  
  2. arr: .byte ^a/A/,30,^a/B/,20,^a/C/,50,^a/D/,10,^a/E/,40
  3. ind: .blkl 5
  4. finInd: .blkl 1
  5. .entry ej, ^m<r3>
  6.  
  7. ;LLENA INDICE ind CON DIRECCIONES DE 2da. CLAVE DE arr
  8. moval arr+1,r6            &#59;r6 recorre arr
  9. moval ind,r7              &#59;r7 recorre ind
  10.  
  11. WHILE1: cmpl r6,#ind
  12. bgtr ENDWHILE1
  13. movl r6,(r7)+
  14. addl #2,r6
  15. brb WHILE1
  16. ENDWHILE1:
  17.  
  18. ;ORDENA INDICE PARA ACCEDER A arr EN ORDEN ASCENDENTE SEGUN NUMEROS.&#59;USA SELECCION DIRECTA
  19. moval ind-4,r6            &#59;r6 es i
  20. WHILE2: cmpl r6,#finInd-8   &#59;mientras i sea menor que n-1
  21. bgtr ENDWHILE2
  22. movb @4(r6),r8          &#59;r8 es menor
  23. addl3 #4,r6,r9            &#59;r9 es posicion del menor
  24. addl3 #4,r6,r7            &#59;r7 es j
  25. WHILE3: cmpl r7,#finInd-4   &#59;mientras j sea menor que n
  26. bgeq ENDWHILE3
  27. IF: cmpb @4(r7),r8            &#59;si se encuentra uno menor
  28. bgeq ENDIF
  29. movb @4(r7),r8          &#59;cambia menor y su direccion
  30. addl3 #4,r7,r9
  31. ENDIF:
  32. addl #4,r7
  33. brb WHILE3
  34. ENDWHILE3:
  35. movl 4(r6),r10            &#59;intercambia direccion de menor con el direccionado con i
  36. movl (r9),4(r6)
  37. movl r10,(r9)
  38. addl #4,r6
  39. brb WHILE2
  40. ENDWHILE2:
  41. $exit_s
  42. .end ej
  43.  
  44.  
  45.  
  46.