22 de marzo de 2011

Repaso de la clase de ensamblador

Hoy ha sido un día un poco duro, hemos vuelto de las Fallas de 2011 y todos estamos un poco "desconectados" de la rutina, pero eso se arregla rápidamente.

Lo que hemos hecho en clase hoy ha sido repasar los conceptos básicos de la programación en ensamblador, tipos datos, instrucciones, modos de direccionamiento, etc, pasando a realizar las actividades de la teoría.

Os deben quedar claros los conceptos:
- Cada instrucción en ensamblador se "desgranará" ocupando uno o varios bytes que serán almacenados en la memoria del micro.
- Cada instrucción tiene un tiempo de ejecución diferente, por ejemplo las más simples como "NOP" tardan poco (1CM) otras más complejas durarán varios ciclos de máquina, por ejemplo "MUL AB" (4CM).

- El modo de direccionamiento no es más que el modo que tienen las instrucciones de "buscar" los datos en memoria.

- Cuando el dato está en la propia instrucción, se habla de inmediato y se representa con un símbolo "#", por ejemplo: "MOV A,#34h" mueve dicho dato al acumulador (sin necesidad de ir a ninguna posición de memoria).

- Cuando hay que buscar el dato en una posición de memoria, se habla de direccionamiento directo, por ejemplo: "MOV A,0x90" debe ir a la posición de memoria "0x90" a recoger el dato, moviéndolo al acumulador.

- El modo indirecto parece algo complicado, se utiliza con el símbolo "@", indicando que el dato está un poco más lejos, por ejemplo la instrucción: "MOV A,@R1", indica que en R1 está la DIRECCIÓN del DATO, por lo tanto, primero tenemos que mirar en R1, apuntar dicha dirección (como si hubiéramos mirado la dirección en un mapa) y entonces ir a dicha dirección a por el DATO que se moverá al acumulador.

REPASO:
Algunos de vosotros todavía tenéis un poco de lío con la creación de un proyecto para compilar un programa con Keil. Pasos:

1. Crear proyecto nuevo..
2. Elegir el micro..
3. Escribir el código y guardarlo en .asm..
4. Vincularlo con el proyecto (botón derecho..Add file..)..

..y ya se puede compilar ah! y no hay que olvidar marcar la opción para que el compilador genere el ejecutable (el .hex) q más tarde grabaremos en el micro real.

OTRA COSA:

Por último hemos estado viendo en la práctica tres programitas sencillos, uno que sumaba dós números, otro donde los números se leen de los puertos "P0" y "P1" y otro que realiza una operación diferente en función de un bit del puerto.

Cuando los datos de tu programa se leen de los puertos, simular es una muy buena opción porque podemos ver como se comporta nuestro código cuando se producen estos cambios (sin conectar nada físicamente). Para simular hay que hacer clic en el icono en forma de letra "D" de color rojo situada en la barra de herramientas arriba a la derecha.

Mnemónicos por Wikipedia.
Lenguaje máquina por Wikipedia.
Modos de direccionamiento por Wikipedia.
Lenguaje ensamblador por Wikipedia.

No hay comentarios: