Sitemas microprocesados

Solo disponible en BuenasTareas
  • Páginas : 9 (2156 palabras )
  • Descarga(s) : 0
  • Publicado : 13 de diciembre de 2011
Leer documento completo
Vista previa del texto
Escuela Politécnica Nacional
Laboratorio de Sistemas Microprocesados
Trabajo Preparatorio N° 5
Instrucciones de salto, lazos de repetición y creación de tablas de datos en la FLASH

1. OBJETIVO:

Desarrollar programas para resolver problemas utilizando lazos de repetición, tomando en cuenta que se producen casos diferentes; por lo que se recurre al uso de instrucciones que producenbifurcaciones en el programa.

2. PREPARATORIO

* Revisar el conjunto de instrucciones para los microcontroladores AVR de 8 bits, en particular los saltos incondicionales y condicionados.

Existen dos tipos de salto: los saltos condicionales, que son aquellos que antes de saltar requieren verificar una de las banderas del Registro de Estado (SREG), mientras que los saltos incondicionales norequieren verificar ninguna bandera, en cuanto el micro los encuentre este saltará a la nueva posición marcada con la etiqueta.
La instrucción RJMP, es un salto incondicional. Salto relativo a una dirección ubicada en el rango de PC - 2K + 1 a PC + 2K.
La instrucción IJMP, es un salto incondicional. Salto indirecto, ya que brincara a una dirección apuntada por el registro Z de 16 bits.

Lainstrucción BRCS, es un salto condicional. Verifica la bandera de acarreo, C, y salta en un rango de PC - 63 < destino < PC + 64, si esta bandera está en 1. Este tipo de instrucciones siempre van colocadas después de CP, CPI, SUB o SUBÍ.
La instrucción BRNE, es un salto condicional. Verifica la bandera cero, Z, y salta en un rango de PC - 63 < destino < PC + 64, si esta bandera está en 1.Este tipo de instrucciones siempre van colocadas después de CP, CPI, SUB o SUBÍ.

* Hacer un resumen de las directivas del ASSEMBLER que ubican y reservan localidades de memoria de datos y de las que crean tablas de datos en la memoria de programa.

DIRECTIVAS

.CODE Para indicar el comienzo de un código de un programa.
.DSEG La sección de la SRAM en el integrado (datos)
.ESEG La secciónEEPROM
.ORG Para indicar que el segmento de código o datos comienza en una dirección distinta de la de por defecto.

Directivas de la Memoria Programa .cseg "Segmento de Código"; esta directiva le dice al ensamblador que el siguiente código o expresiones deberán colocarse en la memoria de programa.
Esto es necesario cuando la directiva .dseg se usa para declarar constantes y datos.
Sintaxis:.cseg

.db "Byte de Datos"; con esta directiva podrás colocar valores de las constantes en la memoria de programa (primeros 32 registros) en una dirección conocida, por ejemplo, números seriados, cadenas para un menú, tablas. Ellos son tratados como bytes y deberán estar dentro de un rango de 8 bits. Casi todas las expresiones utilizan la directiva .db. Cada directiva .db se colocara al iniciode una nueva palabra en la memoria de programa. Así, dos directivas .db de un solo byte como argumento usaran dos palabras, mientras que una directiva .db con dos bytes como argumentos usaran solamente una palabra. Ver el ejemplo siguiente:

Sintaxis:
.db expresión1,expresión2,expresión3,

Ejemplos:

.org 0x0100 .db 128 .db low(1000) .db 128,low(1000)
;coloca en la memoria de programaa partir de la dirección 0x0100 ;coloca el numero 128 en el byte bajo de la dirección 0x0100 en memoria de programa

;coloca el byte bajo de 1000 en la dirección baja de 0x0101 ;coloca 128 en el byte bajo y el byte bajo de 1000 en la dirección alta de la dirección 0x0102 en la memoria de programa

Las cadenas pueden ser colocadas en la memoria de programa con solo la directiva .db: .db "HelloWorld!" Esto rellenará 6 palabras de datos o 12 bytes. Si deseas que a la cadena se le añada un 0 al final de la misma deberás colocarla así: .db "Hello World!", 0 .dw "Palabra de Datos"; la directiva .dw trabaja como la directiva .db, pero se usará una palabra para cada valor. .org .org puede ser usada para establecer el contador de programa a un valor específico. .org 0x01 es el Vector de...
tracking img