document.write('
Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1.     .file   "programa.c"        #Nombre del archivo
  2.     .def    ___main;    .scl    2;  .type   32; .endef
  3.     .section .rdata,"dr"
  4. LC0:                    #Etiqueta L0
  5.     .ascii "A[%d]=  \\0"     #Texto ancii
  6. LC1:                    #Etiqueta L1
  7.     .ascii "%d\\0"           #Texto ancii
  8. LC2:                    #Etiqueta L2
  9.     .ascii " %d \\0"         #Texto ancii
  10. LC3:                    #Etiqueta L3
  11.     .ascii "\\12\\0"          #Texto ancii
  12.     .text
  13.     .globl  _main
  14.     .def    _main;  .scl    2;  .type   32; .endef
  15. _main:                  #Main
  16. LFB6:                   #Etiqueta
  17.     .cfi_startproc
  18.     pushl   %ebp            #Instrucciones de pila
  19.     .cfi_def_cfa_offset 8
  20.     .cfi_offset 5, -8
  21.     movl    %esp, %ebp      #Instrucciones de transferencia    
  22.                     son utilizados para mover los
  23.                     contenidos
  24.     .cfi_def_cfa_register 5
  25.     andl    $-16, %esp      #Realiza la conjunción de los
  26.                     operandos bit por bit.
  27.     subl    $48, %esp       #La fuente se resta del destino
  28.                     y es el resultado almacena en el
  29.                     destino.
  30.     call    ___main         #Llama a una subrutina
  31.     movl    $0, 44(%esp)        #Función de retorno
  32.     jmp L2          #Salta a L2
  33. L3:                 #Etiqueta L3
  34.     movl    44(%esp), %eax      #Mueve valores a eax
  35.     incl    %eax            #Añade un operador binario de
  36.                     destino sin firmar
  37.     movl    %eax, 4(%esp)       #Guarda nuevo valor en 4 de esp
  38.     movl    $LC0, (%esp)        #Apunta LC0 a esp
  39.     call    _printf         #Pide que se imprima
  40.     movl    44(%esp), %eax      #Mueve el valor de esp a eax
  41.     leal    0(,%eax,4), %edx    #Transfiere la dirección de
  42.                     eax para el registro edx
  43.     leal    24(%esp), %eax      #Transfiere la dirección de
  44.                     esp para el registro eax
  45.     addl    %edx, %eax      #Añade edx a eax y sustituye
  46.                     el contenido original de eax.    
  47.     movl    %eax, 4(%esp)       #Mueve el contenido de eax a esp
  48.     movl    $LC1, (%esp)        #Apunta LC1 a esp
  49.     call    _scanf          #Pide leer variable
  50.     incl    44(%esp)        #Añade un operador binario de
  51.                     destino sin firmar
  52.                     Hace que incremente la "i" del arreglo
  53. L2:                 #Etiqueta L2
  54.     cmpl    $4, 44(%esp)        #Resta fuente de destino y
  55.                     actualiza las banderas
  56.     jle L3          #Salta a L3
  57.     movl    $0, 44(%esp)        #Asigna 0 a esp
  58.                     hace que se pueda imprimir la primer
  59.                     linea de arreglo
  60.     jmp L4          #Salta a L4
  61. L5:                 #Etiqueta L5
  62.     movl    44(%esp), %eax      #Mueve el valor de esp a eax
  63.     movl    24(%esp,%eax,4), %eax   #Mueve los contenidos
  64.     movl    %eax, 4(%esp)       #Guarda nuevo valor en esp
  65.     movl    $LC2, (%esp)        #Apunta LC2 a esp
  66.     call    _printf         #Llama a printf
  67.     incl    44(%esp)        #Añade un operador binario de
  68.                     destino sin firmar
  69. L4:                 #Etiqueta L4
  70.     cmpl    $4, 44(%esp)        #Resta fuente de destino y
  71.                     actualiza las banderas
  72.     jle L5          #Salta a L5
  73.     movl    $LC3, (%esp)        #Apunta LC3 a esp
  74.     call    _puts           #Llama a puts
  75.                     Hace salto de linea \\n
  76.     movl    $4, 44(%esp)        #Mueve el valor a esp
  77.     jmp L6          #Llama a L6
  78. L7:                 #Etiqueta L7
  79.     movl    44(%esp), %eax      #Mueve el valor de esp a eax
  80.     movl    24(%esp,%eax,4), %eax   #Mueve los contenidos
  81.     movl    %eax, 4(%esp)       #Guarda nuevo valor en esp
  82.     movl    $LC2, (%esp)        #Apunta LC2 a esp
  83.     call    _printf         #Llama a printf
  84.                     Imprime la inversa
  85.     decl    44(%esp)        #Sin signo binario sustracción
  86.                     desde el destino
  87. L6:                 #Etiqueta L6
  88.     cmpl    $0, 44(%esp)        #Resta fuente de destino y
  89.                     actualiza las banderas
  90.     jns L7          #Salta si se cumple la condición
  91.     call    _getch          #Llama a getch
  92.     movl    $0, %eax        #Asigna 0 a esp
  93.     leave               #Libera las variables locales
  94.                     creados por la anterior ENTER
  95.                         la instrucción mediante la
  96.                     restauración de SP y BP a su
  97.                     condición antes de el marco de
  98.                     pila procedimiento se inicia.
  99.     .cfi_restore 5
  100.     .cfi_def_cfa 4, 4
  101.     ret             #Regresa control a SO
  102.     .cfi_endproc            #Fin del cfi
  103. LFE6:                   #Etiqueta
  104.     .def    _puts;  .scl    2;  .type   32; .endef
  105.     .def    _printf;    .scl    2;  .type   32; .endef
  106.     .def    _scanf; .scl    2;  .type   32; .endef
  107.     .def    _getch; .scl    2;  .type   32; .endef
');