Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Jul 10th, 2012  |  syntax: None  |  size: 1.25 KB  |  hits: 6  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. .globl main                     #etiquetas son globales.
  2. .globl multi
  3. main:                           #etiqueta de inicio de codigo
  4.         pushl   %ebp            #prologo
  5.         movl    %esp, %ebp
  6.         movl    $2, (%esp)      #Mueve el 2 a la parte superior
  7.         call    multi           #llama a multi
  8.         leave                   #epilogo
  9.         ret                    
  10. multi:                          #etiqueta de inicio de multi
  11.         pushl   %ebp            #prologo
  12.         movl    %esp, %ebp
  13.         subl    $28, %esp       #reserva 28 bytes
  14.         movl    $1, -12(%ebp)   #pone un 1 en y
  15.         jmp     .L3             #salta a condicion while
  16. .L4:
  17.         movl    8(%ebp), %edx   #Carga la variable x en EAX
  18.         imull   -12(%ebp), %edx #Multiplica al y con x
  19.         movl    %edx, 12(%esp)  #mueve la multiplicacion a registro
  20.         movl    -12(%ebp), %edx #pone la y en EDX (datos)
  21.         movl    %edx, 8(%esp)   #lo mueve a registro
  22.         movl    8(%ebp), %edx   #pone la x en EDX
  23.         movl    %edx, 4(%esp)   #lo mueve a registro
  24.         movl    $.LC0, (%esp)   #mueve la cadena al espacio de memoria de registros
  25.         call    printf          #llama a printf
  26.         addl    $1, -12(%ebp)   #aumenta 1 a y
  27. .L3:
  28.         cmpl    $10, -12(%ebp)  #intruccion generica compara
  29.         jle     .L4             #salta si es menor o igual
  30.         leave                   #epilogo de multi
  31.         ret    
  32. .LC0:                            
  33.         .string "%d * %d = %d\n" #etiqueta con string