6
UABC Ingeniería Electrónica FCQI - Tijuana Manual de prácticas de laboratorio de Microcontroladores Microcontroladores 1 de 6 Práctica #3. Instrucciones y programas Competencia: Identificar el funcionamiento de las instrucciones del microcontrolador, a través de la observación de los registros internos del CPU y de las localidades de memoria, para escribir programas en bajo nivel con abstracción y actitud analítica.  Tiempo Estimado: 4 horas Trabajo Previo:  Realice una lectura general de la actividad.   Recopilación de la siguiente información en el cuaderno de cada uno de los integrantes de laboratorio (utilizando como referencia libros, páginas de internet -no wikipedia ni tipo buenastareas.com):  Hablando de un microcontrolador, ¿qué es un conjunto de instrucciones? En el contexto de una instrucción, ¿qué es un ciclo de reloj? ¿qué es la longitud de una instrucción? ¿qué es un op-code? ¿Cuál es la tarea de un ensamblador? Asegurarse de que la computadora de trabajo (laptop o escritorio), tiene instalado el ambiente ST Visual Develop (revise en Bb las instrucciones para su instalación). Obtenga los programas de prueba que se van a simular de BlackBoard (sección /Documentos/Laboratorio/Práctica 3). Consulte el documento Creación de un Proyecto en STVD disponible en BlackBoard (sección /Documentos/Laboratorio/Práctica 3). Teoría: Cada fabricante asigna a su microcontrolador su propio conjunto de instrucciones ( instruction set ), de acuerdo con la arquitectura que posee, la distribución de sus secciones de memoria y con base en la manera en que opera el CPU y los periféricos. Aunque en sentido estricto se llaman mnemónicos de instrucciones , para efectos prácticos se les conoce simplemente como instrucciones  y es como nos referiremos a ellas durante el curso y durante la práctica. El CPU del microcontrolador únicamente puede decodificar y ejecutar instrucciones en forma de '0' y '1'. Pero para un ser humano, construir un programa en lenguaje de '0' y '1' sería muy tedioso y las probabilidades de cometer errores serían muy altas. Por lo tanto, se utilizan abreviaturas o palabras (generalmente en idioma inglés), que representan las diferentes operaciones y acciones que el CPU puede realizar (por ejemplo, sumar, restar, transferir datos, comparar dos operandos, etc). Para cada una de estas operaciones existe un código en binario (que el CPU puede decodificar y ejecutar) y un mnemónico de instrucción (que un usuario programador puede utilizar para construir programas). Una vez que el usuario ha construido su programa, se utiliza un ensamblador que básicamente es una aplicación que traduce las instrucciones en un código que el CPU va a ejecutar. Este código que se obtiene como resultado se conoce como código máquina o lenguaje máquina. (Si

Práctica 3_Instrucciones y programas

Embed Size (px)

Citation preview

7/29/2019 Práctica 3_Instrucciones y programas

http://slidepdf.com/reader/full/practica-3instrucciones-y-programas 1/6

UABC  Ingeniería Electrónica  FCQI - Tijuana 

Manual de prácticas de laboratorio de Microcontroladores 

Microcontroladores  1 de 6 

Práctica #3. Instrucciones y programas 

Competencia: Identificar el funcionamiento de las instrucciones del microcontrolador, a través de la

observación de los registros internos del CPU y de las localidades de memoria, para escribir 

programas en bajo nivel con abstracción y actitud analítica. 

Tiempo Estimado: 

4 horas 

Trabajo Previo: 

□  Realice una lectura general de la actividad. 

□  Recopilación de la siguiente información en el cuaderno de cada uno de los integrantes de

laboratorio (utilizando como referencia libros, páginas de internet -no wikipedia ni tipobuenastareas.com): 

□ Hablando de un microcontrolador, ¿qué es un conjunto de instrucciones?

□ En el contexto de una instrucción, ¿qué es un ciclo de reloj? ¿qué es la longitud de una

instrucción? ¿qué es un op-code?

□ ¿Cuál es la tarea de un ensamblador?

□ Asegurarse de que la computadora de trabajo (laptop o escritorio), tiene instalado el ambiente

ST Visual Develop (revise en Bb las instrucciones para su instalación).

□ Obtenga los programas de prueba que se van a simular de BlackBoard (sección

/Documentos/Laboratorio/Práctica 3).

□ Consulte el documento Creación de un Proyecto en STVD disponible en BlackBoard (sección

/Documentos/Laboratorio/Práctica 3).

Teoría: Cada fabricante asigna a su microcontrolador su propio conjunto de instrucciones ( instruction

set ), de acuerdo con la arquitectura que posee, la distribución de sus secciones de memoria y con

base en la manera en que opera el CPU y los periféricos. Aunque en sentido estricto se llaman

mnemónicos de instrucciones, para efectos prácticos se les conoce simplemente como instrucciones 

y es como nos referiremos a ellas durante el curso y durante la práctica. 

El CPU del microcontrolador únicamente puede decodificar y ejecutar instrucciones en forma

de '0' y '1'. Pero para un ser humano, construir un programa en lenguaje de '0' y '1' sería muy tediosoy las probabilidades de cometer errores serían muy altas. Por lo tanto, se utilizan abreviaturas o

palabras (generalmente en idioma inglés), que representan las diferentes operaciones y acciones que

el CPU puede realizar (por ejemplo, sumar, restar, transferir datos, comparar dos operandos, etc).

Para cada una de estas operaciones existe un código en binario (que el CPU puede decodificar y

ejecutar) y un mnemónico de instrucción (que un usuario programador puede utilizar para construir 

programas). Una vez que el usuario ha construido su programa, se utiliza un ensamblador  que

básicamente es una aplicación que traduce las instrucciones en un código que el CPU va a ejecutar.

Este código que se obtiene como resultado se conoce como código máquina o lenguaje máquina. (Si

7/29/2019 Práctica 3_Instrucciones y programas

http://slidepdf.com/reader/full/practica-3instrucciones-y-programas 2/6

UABC  Ingeniería Electrónica  FCQI - Tijuana 

Manual de prácticas de laboratorio de Microcontroladores 

Microcontroladores  2 de 6 

se revisa la zona de memoria donde queda almacenado el programa -ya ensamblado- se observarán

dígitos hexadecimales que representan cada una de las instrucciones empleadas por el usuario

programador). 

Hablando del conjunto de instrucciones del microcontrolador, existen diferentes tipos de

instrucciones: aritméticas, lógicas, de comparación, de brinco, de salto, de transferencia, de acceso a

memoria, entre otras. La combinación de estas instrucciones le ofrece la oportunidad al usuario

programador de construir sus programas y luego ensamblarlos para que sean descargados en la

memoria de programa del microcontrolador. 

En esta práctica se revisarán algunas instrucciones del microcontrolador, mismas que el

alumno deberá teclear dentro del ambiente de desarrollo ST Visual Develop para verificar su

operación y responder las preguntas indicadas. Esta actividad de laboratorio se planea para una

sesión de trabajo. Material: 

□  DataSheet_STM8S105xx_CD00200092 . 

□  RM0016_STM8 Reference manual CD00190271. 

□  UM0817_STM8S-DISCOVERY_CD00250600. 

□  Computadora con ambiente STVD. 

□  Kit de desarrollo STM8SDISCOVERY. 

□  Cable USB 

Procedimiento: 

1.  Arrancar la computadora, iniciar el ambiente STVD y crear un proyecto. 

2.  A continuación se muestra una selección de instrucciones, cada una con 4 respuestas

posibles. El equipo deberá seleccionar la respuesta correcta. Para lograr esto, se deben teclear cada

una de las instrucciones dentro del proyecto, ensamblar el programa y comenzar a simularlo desde

la primera instrucción tecleada, una por una (Si no recuerda cómo introducir las instrucciones,

ensamblar o simular el programa, o comenzar a simular a partir de la primera instrucción de su

programa, refiérase a la práctica correspondiente). 

IMPORTANTE: Es indispensable observar los registros, localidades de memoria y banderas para

lograr identificar la tarea de la instrucción. Para observar los registros del CPU, y las localidadesde memoria, consulte el documento Creación de un proyecto en STVD. Para determinar el

estado de cada una de las banderas del CCR que se activan / no se activan en cada instrucción,

observe la ventana CPU Registers. Si la bandera se activa, aparece una palomita en la cajita

correspondiente; si no se activa, la cajita permanece en blanco.Si por alguna razón no observa lo

que la instrucción realiza, puede indicarle al simulador que el programa vuelva a ejecutar la

instrucción indicada, pero antes deberá a) cerrar y abrir de nuevo el simulador o b) reiniciar el

programa (chip reset ) y reiniciar cada registro o localidad como se indica.

7/29/2019 Práctica 3_Instrucciones y programas

http://slidepdf.com/reader/full/practica-3instrucciones-y-programas 3/6

UABC  Ingeniería Electrónica  FCQI - Tijuana 

Manual de prácticas de laboratorio de Microcontroladores 

Microcontroladores  3 de 6 

Cada uno de los integrantes del equipo debe escribir la instrucción en su cuaderno con surespuesta correcta respectiva. ADEMÁS, DEBE INCLUIRSE UNA BREVE DESCRIPCIÓN QUEEXPLIQUE PORQUÉ EL EQUIPO SELECCIONÓ DICHA RESPUESTA COMO LA CORRECTA(¿Cuáles localidades / registros / banderas se observaron? ¿Cuáles cambios se registraron enesos elementos?). 

Tabla 1.- Instrucciones a ser introducidas y simuladas 

SCF

a) Complementa a 2 la bandera de acarreo 

b) Pone en ‘1’ la bandera de acarreo 

c) Pone en ‘0’ la bandera de acarreo 

d) Invierte la bandera de acarreo 

 MOV $03F0,#$D2

a) Copia el contenido de la localidad D216 a la localidad

03F016 

b) Carga el número 03F016 a la localidad D216 

c) Copia el contenido de la localidad 03F016 a la localidad

D216 

d) Carga el número D216 a la localidad 03F016 

CPL $03F0

a) Complementa a 1 el contenido de la localidad 03F016 

b) Complementa a 1 el contenido del acumulador  

c) Complementa a 1 el contenido de una localidad de

memoria. 

d) Complementa a 1 el número 03F016 

BSET $03F0,#6

a) Pone en ‘1’ el bit número 6 del contenido de la localidad

de memoria 03F016 

b) Pone en ‘0’ el bit número 6 del contenido de la localidad

de memoria 03F016 

c) Pone en ‘1’ el bit número 6 del número 03F016 

d) Pone en ‘0’ el bit número 6 del número 03F016 

EXG A,$03F0

a) Intercambia el contenido del acumulador y el del

número 03F016 

b) Carga el acumulador con el número 03F016 

c) Carga la localidad de memoria 03F016 con el contenido

del acumulador. 

d) Intercambia el contenido del acumulador y el de la

localidad de memoria 03F016 

7/29/2019 Práctica 3_Instrucciones y programas

http://slidepdf.com/reader/full/practica-3instrucciones-y-programas 4/6

UABC  Ingeniería Electrónica  FCQI - Tijuana 

Manual de prácticas de laboratorio de Microcontroladores 

Microcontroladores  4 de 6 

SWAP A 

a) Intercambia los ‘medios bytes’ (nibbles) del acumulador.

El bit 7 se intercambia con el bit 3, el bit 6 se intercambia

con el bit 2, el bit 5 se intercambia con el bit 1 y el bit 4 se

intercambia con el bit 0. 

b) Intercambia los ‘medios bytes’ (nibbles) del acumulador.

El bit 7 se intercambia con el bit 0, el bit 6 se intercambia

con el bit 1, el bit 5 se intercambia con el bit 2 y el bit 4 se

intercambia con el bit 3. 

c) Intercambia los ‘medios bytes’ (nibbles) del acumulador.

El bit 7 se intercambia con el bit 6, el bit 5 se intercambia

con el bit 4, el bit 3 se intercambia con el bit 2 y el bit 1 se

intercambia con el bit 0. 

d) Intercambia los ‘medios bits’ (nibbles) del acumulador.

El bit 7 se intercambia con el bit 4, el bit 6 se intercambia

con el bit 5, el bit 3 se intercambia con el bit 0 y el bit 2 se

intercambia con el bit 1. 

LDW X,#$1500

a) Carga en el registro índice X el contenido de la

localidad de memoria 150016. 

b) Carga en la localidad de memoria 150016 el contenido

del registro índice X. 

c) Carga en el registro índice X el número 150016. 

d) Carga en el número 150016 el contenido del registro

índice X. 

DECW X

a) Decrementa en 1 el contenido del registro índice X

parte baja. 

b) Decrementa en 1 el contenido del registro índice X. 

c) Decrementa en 1 el contenido del registro índice X

parte alta. 

d) Decrementa el contenido del registro índice X. 

CLRW X

a) Limpia (pone 000016) en el registro índice X parte alta. 

b) Limpia (pone FFFF16) en el registro índice X. 

c) Limpia (pone 000016) en el registro índice X. 

d) Limpia (pone 000016) en el registro índice X parte baja. 

7/29/2019 Práctica 3_Instrucciones y programas

http://slidepdf.com/reader/full/practica-3instrucciones-y-programas 5/6

UABC  Ingeniería Electrónica  FCQI - Tijuana 

Manual de prácticas de laboratorio de Microcontroladores 

Microcontroladores  5 de 6 

LD YL,A 

a) Carga el contenido del registro acumulador en el

registro índice Y. 

b) Intercambia el contenido del registro índice Y parte baja

con el contenido del registro acumulador. 

c) Carga el contenido del registro índice Y parte baja en elregistro acumulador. 

d) Carga el contenido del registro acumulador en el

registro índice Y parte baja. 

3. Una vez que se haya seleccionado la respuesta correcta y anotado en el cuaderno, proceda a

insertar comentarios al lado de cada una de las instrucciones tecleadas (puede copiar el texto de la

respuesta correcta del documento de la práctica). NOTA: Para insertar comentarios dentro del

archivo .ASM utilice el punto y coma “;” y luego escriba el comentario, que deberá ser iluminado de

color verde claro. 

4. Construya la siguiente tabla en su cuaderno y explique si las siguientes instrucciones puedenser válidas (utilice el manual de programación del microcontrolador para apoyarse). No es necesario

que las introduzca en el simulador. 

Tabla 2.- Ejemplos de Instrucciones. 

INSTRUCCIÓN  CORRECTA  INCORRECTA 

LD A,X

SWAPW X

INC XL ADD A,$03FF

LD $80,Y

INC A 

LDW A,$50

CCF

 MOV $05FF,#$D3CLR W 

7/29/2019 Práctica 3_Instrucciones y programas

http://slidepdf.com/reader/full/practica-3instrucciones-y-programas 6/6

UABC  Ingeniería Electrónica  FCQI - Tijuana 

Manual de prácticas de laboratorio de Microcontroladores 

Microcontroladores  6 de 6 

¿Qué se debe entregar? 

Se debe mostrar: 

  la carpeta con el proyecto creado. 

  el archivo .ASM con las instrucciones introducidas y comentadas.   las respuestas seleccionadas como correctas, anotadas en el cuaderno y la

explicación de qué fue lo que se observó en cada caso para elegirla como tal. 

  la tabla 2 construida en el cuaderno de cada integrante. 

Fecha de entrega programada de la actividad de laboratorio 

o  Grupo 651-1: Lunes 23 de septiembre de 2013. 

o  Grupo 651-2: Martes 24 de septiembre de 2013. 

Fecha de entrega del reporte* 

o  Grupo 651-1: Lunes 30 de septiembre de 2013. 

o  Grupo 651-2: Martes 1 de octubre de 2013. 

* Para el contenido del reporte de esta actividad de laboratorio, consulte la sección Documentos en el

sitio BlackBoard de la asignatura.