Desarrollar un proyecto nuevo que contenga las siguientes instrucciones.
LDA #$55 ADD #$AA ORA #$12 AND #$D7 Entregar reporte que contenga la ventana DEBUG (ltima imagen) con el programa ejecutado.
Practica 2 Reporte El reporte de la prctica consiste en presentar impresa la codificacin de cada uno de los programas, tambin la ventana DEBUG mientras el programa se ejecuta, anexar tambin, las respuestas a cada una de las preguntas planteadas. 1. Modo inmediato Planteamiento Cargar el acumulador A, el valor $F0 y despus sume al acumular A, el valor $0D. Cargar en el registro ndice H:X el valor $1234. Determine a) Cul es el valor resultante en el acumulador A? El valor resultante en A es FD, que es la suma de F0 y 0D b) Cul es el valor en el byte menos significativo del registro ndice H:X? El valor resultante en H:X es 1234, que es valor que se dio de alta para cargarlo en el mismo ndice. NOTA: La codificacion se presenta al final, para asi solo mostrar 2 imgenes con todas codificaciones de cada programa,ya que se realizaron en un mismo archivo .asm
2. Modo inherente o implcito Planteamiento El siguiente programa borrara el valor albergado en el acumulador A, despus lo complementa (niega), e incrementar el registro ndice H:X. Determine: a) Cul es el valor resultante en el acumulador A? El valor resultante es FF, ya que se limpi el acumulador (00) y se complement ese valor b) Cul es el valor resultante en el registro ndice H:X? El valor resultante es 1235, ya que el ejemplo anterior se tena 1234 y se increment en 1 este valor. NOTA: La codificacion se presenta al final, para asi solo mostrar 2 imgenes con todas codificaciones de cada programa,ya que se realizaron en un mismo archivo .asm
3. Modo directo En el siguiente programa se cargara el acumulador A con el contenido de la direccin $0080, se suma el contenido de la direccin $0081 y el resultado se deposita en la direccin $0084. Nota: Antes de correr este programa escribir los siguientes datos en las direcciones indicadas. $0080 45 $0081 DA Determine: a) Cul fue el resultado de la suma binaria de los valores anteriores? El resultado de la suma binaria es 1 0001 1111 que en hexadecimal es 11F b) Qu valor se almaceno en la direccin $0084 1F c) Por qu la diferencia? Porque al sumarlos se genera un acarro de un bit, que no puede ser mostrado por que el acumulador A solo puede manejar 8 bits, este acarreo se muestra en el registro STATUS.
NOTA: La codificacion se presenta al final, para asi solo mostrar 2 imgenes con todas codificaciones de cada programa,ya que se realizaron en un mismo archivo .asm
4. Modo extendido Planteamiento Cargar en el acumulador A, el contenido de la direccin $0100, restarle el contenido de la direccin $0101 y el resultado depositarlo en la direccin $0102. Nota antes de correr este programa escribir los siguientes datos en las direcciones indicadas: $0100 D0 $0101 4F Determine a) Cul fue el resultado de la resta depositado en la direccin $0102 El valor depositado en $0102 es 81, donde se genera un acarreo de un bit que indica que el nmero es positivo; el resultado verdadero de la resta es 181 (129 decimal) NOTA: La codificacion se presenta al final, para asi solo mostrar 2 imgenes con todas codificaciones de cada programa,ya que se realizaron en un mismo archivo .asm
5. Modo indexado Planteamiento Sumar dos palabras de un byte cada una. Utilizar el modo indexado. $0100 + $0101 = $0102 Nota: Antes de correr este programa escribir los siguientes datos en las direcciones indicadas: $0100 D0 $0101 8A Determine: a) Cul fue el resultado de la suma? El valor verdadero de la suma debe ser 15A b) Qu valor quedo depositado en la direccin $0102? 5A, esto debido a que no se muestra el acarreo generado por la suma. NOTA: La codificacin se presenta al final, para as solo mostrar 2 imgenes con todas codificaciones de cada programa, ya que se realizaron en un mismo archivo .asm
6. Modo inmediato, relativo, indexado e inherente. Planteamiento Programa para borrar una tabla (bloque de memoria), de la direccin $0100 hasta la $017F Nota. Verificar que los contenidos de las direcciones $0100 hasta $017F sean cero. NOTA: La codificacin se presenta al final, para as solo mostrar 2 imgenes con todas codificaciones de cada programa, ya que se realizaron en un mismo archivo .asm
Practica 2 Reporte Codificacin programas
Practica 3 Reporte El reporte de la prctica consiste en presentar impresa la codificacin de cada uno de los programas y tambin la ventana del DEBUG mientras el programa se ejecuta. 1. Programa para intercambiar los nibles (grupo de 4 bits) de un byte. NOTA: La codificacin se presenta al final, para as solo mostrar 2 imgenes con todas codificaciones de cada programa, ya que se realizaron en un mismo archivo .asm
2. Programa para multiplicar por 4 una palabra de 24 bits, utilizando corrimientos y rotaciones. La palabra esta en las siguientes 3 direcciones: $0110 0A MSB $0111 B7 $0112 EF LSB Al multiplicar por 4, el resultado ser: $0110 2A MSB $0111 DF $0112 BC LSB NOTA: La codificacin se presenta al final, para as solo mostrar 2 imgenes con todas codificaciones de cada programa, ya que se realizaron en un mismo archivo .asm
3. Programa para hacer que el bit 5 del contenido de la direccin $0100 se haga 1. Utilizar las instrucciones BSET y BCLR. NOTA: La codificacin se presenta al final, para as solo mostrar 2 imgenes con todas codificaciones de cada programa, ya que se realizaron en un mismo archivo .asm
4. Programa para hacer que el bit 5 del contenido de la direccin $0100 se haga 0. Utilizar las instrucciones de BSET y BCLR. NOTA: La codificacin se presenta al final, para as solo mostrar 2 imgenes con todas codificaciones de cada programa, ya que se realizaron en un mismo archivo .asm
Practica 3 Reporte Codificacin programas
Practica 4 Reporte El reporte de la practica consiste en presentar impresa la codificacin de cada uno de los programa, tambin la ventana del DEBUG mientras el programa se ejecuta. 1. Realizar un programa que suma 128 palabras de 2 bytes cada una. Las palabras empiezan en la direccin $0100 y terminan en la direccin $01FF. En esta prctica, debido a que no se pudo realizar el trabajo solicitado, se hizo un programa similar pero con palabras de un byte.
2. Realizar un programa que cuente cuantos nmeros positivos, cuantos negativos y cuantos son cero, en una tabla.
3. Realiza un programa para realizar un retardo pasivo de 10 seg. Se tom en cuenta que se est utilizando un oscilador de 4MHz y que por lo tanto cada ciclo maquina es equivalente a 1us. Por lo tanto para tener 10 seg es necesario un programa que genere 10, 000,000 de ciclos de mquina para poder implementar el retardo correctamente.
Por lo tanto se realiz un ciclo que tiene un lazo de 5 ciclos mquina que se repite 100 veces que a su vez ese ciclo se repite 100 veces que a su vez se repite 200 veces. Donde esto da como resultado 5*100*100*200=10, 000,000 ciclos mquina.
Como se puede observar en la ventana DEBUG al empezar el ciclo donde se realiza el lazo de 200 veces, en este instante los ciclos maquina son de 51,217, que al multiplicarse por 200, dan un aproximado cercano a 10, 000,000.
Con esto se toma por correcto el cdigo para realizar el retraso pasivo de 10 seg.
UNIVERSIDAD AUTONOMA DE NUEVO LEON
FACULTAD DE INGENIERIA MECANICA Y ELECTRICA
Laboratorio Electrnica Digital 3 Practica #1 Introduccin al CodeWarrior para el HCS08