• 2008: 01 02 03 04 05 06 07 08 09 10 11 12
  • 2007: 01 02 03 04 05 06 07 08 09 10 11 12
  • Posts en la categoría ‘ensamblador’

    19 Jul

    For en Ensamblador

    Hace ya un tiempo que puedo afirmar que controlo mi primer lenguaje de bajo nivel, el ensamblador. He hecho ya unos cuantos programas en lenguaje ensamblador pero no he explicado en este blog casi nada relacionado con este lenguaje de programación.

    En su momento ya expliqué la estructura que debe tener un programa en ensamblador así que me limitaré a ir definiendo los bucles y otras estructuras interesantes.En este post le toca al clásico for, la verdad que se una simple linea se agranda bastante pero es normal al ser de uno de alto nivel y otro de bajo.

    For en C

    for(i=0;i<16;i++) {
      ...
    }

    For en Ensamblador

      movl $0,%eax
    _for:
      cmpl $16,%eax
      jge fin
      ...
      incl %eax
      jmp _for
    fin:

    En este caso también se puede usar el registro %ecx que se usa para los bucles y reduce algo el código, pero solo será adecuado usarlo en algunos casos ya que lo que hace es ir descontando el número de veces que se tienen que realizar hasta llegar a 0.

    For en Ensamblador usando el registro %ecx

      movl $16,%ecx
    _for:
      ...
      loop _for

    Se que esta no es la mejor manera ya que solos los que estén algo iniciados en ensamblador podrán entender algo de lo que estoy hablando pero me he propuesto responder a las búsquedas que llegan de Google ya que son muchos los que buscan sobre estos temas y no hay buena documentación en internet.

    Si sois totalmente novatos y os cuesta seguir comprended que no puedo liarme a explicar todos los comandos, direccionamientos y funciones, ya que sino este blog acabaría convirtiéndose en exclusivo para Ensamblador. De todas formas os dejo un sitio donde hacen una pequeña introducción al lenguaje, el tutorial va dedicado a otro asunto pero para comprender el funcionamiento básico es más que suficiente.

    03 Mar

    Primeros pasos en ensamblador

    Ensamblador es un lenguaje algo extraño, lo que más raro me parece es que nada marque donde empieza y acaba una sentencia, ni etiquetas, ni punto y coma, solo saltos de línea. Además es un poco engorroso tener que estar pensando siempre en bites, bytes, words, longwords, que si la memoría la lee de dos en dos o de cuatro en cuatro, que si registros, flags y demás historias.

    Por lo que se de momento, un programa en ensamblador tiene la siguiente estructura:

    
    .data # variables con inicialización
        nombre: .tipo valor # ej. i: .long 0
    .bss # variables sin inicialización
    .text #código
        .global main    # Esto sirve para hacer este trozo de 
                        # código accesible desde cualquier archivo
        main: #código
        # Instrucciones para devolver el control al SO
        MOVL $0,%EBX
        MOVL $1,%EAX
        INT $0x80
    

    De momento esto es todo, poco a poco iré explicando como se pueden definir los diferentes tipos de variables y como hacer for, while

    21 Feb

    Ensamblador

    Nuevo lenguaje de programación se añade a la lista, en este caso es algo especial, no está enfocado al desarrollo web, es de bajo nivel y no ha sido elegido voluntariamente.

    Hoy ha sido el primer día de esta asignatura y parece que la cosa promete, para empezar las prácticas se harán en Linux, se entregarán por internet, estaremos “obligados” a participar en un wiki donde entre todos haremos una especie de apuntes online y el lenguaje elegido es ensamblador.

    No se que aceptación tendrá este lenguaje en este sitio, yo creo que al no estar enfocado a la web quizás flaquea un poco, pero este blog lo empecé para ir aprendiendo programación y esto lo es, además no tendré mucho tiempo para el PHP así que será una manera de mantener el ritmo de posteo.