Sunteți pe pagina 1din 9

Lic. Ing.

Sistemas Computacionales
Lic. Ing. Sistemas Computacionales

Presentación.
Unidad No 8.- Programación Del Microprocesador.

- Nombre Del Alumno: Juan Rodriguez Sierra

- Nombre Del Profesor: I.S.C Juan Carlos Gonzales.

- Asignatura: Microprocesadores.

7mo Cuatrimestre

Villahermosa, Tab. A 03 de noviembre de 2017


Unidad No 8
Programación Del Microprocesador

8.1.- Programación Modular

Los microprocesadores y microcontroladores poseen un set de instrucciones


interno, que son las órdenes que puede identificar y ejecutar directamente el
dispositivo. Cualquier orden que se intente dar y que no se encuentre en este set
de instrucciones básicas, simplemente, el micro es incapaz de comprenderla, así
que seguramente no hará absolutamente nada, aunque en el peor de los casos
podría crear un conflicto que paralizara al sistema digital. Ahora bien, como
también ya se mencionó, los microprocesadores complejos poseen varios cientos
de instrucciones básicas en este set, lo que complica bastante su programación
tratando de utilizar únicamente este juego de comandos.

Esto se soluciona con el desarrollo de los lenguajes de programación de alto nivel,


en los cuales un usuario puede escribir su programa utilizando una serie de
comandos fáciles de aprender, y una vez que el programa está hecho, se
“compila” y se pasa automáticamente a lenguaje de máquina, simplificando
considerablemente el diseño de programas para estas plataformas. Esto también
se puede hacer porque estos micros avanzados suelen estar acompañados por
grandes cantidades de espacio de almacenamiento y memoria de ejecución, así
que los diseñadores de programas pueden “darse el lujo” de escribir códigos
redundantes o poco optimizados, con la confianza de que contarán con el
hardware necesario para su ejecución.

Lenguaje de Máquina

Es el sistema de códigos directamente interpretable por un circuito micro


programable, como el microprocesador de un ordenador o el microcontrolador de
un autómata (un PIC). Este lenguaje está compuesto por un conjunto de
instrucciones que determinan acciones a ser tomadas por la máquina. Un
programa de computadora consiste en una cadena de estas instrucciones de
lenguaje de máquina (más los datos). Estas instrucciones son normalmente
ejecutadas en secuencia, con eventuales cambios de flujo causados por el propio
programa o eventos externos. El lenguaje de máquina es específico de cada
máquina o arquitectura de la máquina, aunque el conjunto de instrucciones
disponibles pueda ser similar entre ellas.
Mnemónico

En Informática un Mnemónico es una palabra que sustituye a un código de


operación (Lenguaje de máquina), con lo cual resulta más fácil la programación,
es de aquí de donde resulta el concepto de lenguaje ensamblador. Un ejemplo
común de mnemónico es la instrucción MOV, que le indica al microprocesador que
debe de mover datos de un lugar a otro. El microprocesador no entiende palabras,
sino que números binarios, por lo que es necesario la traducción del mnemónico a
código objeto.

Lenguaje Ensamblador.

Una CPU puede interpretar y ejecutar instrucciones de máquina. Estas instrucciones


son, simplemente, números binarios almacenados en el computador. Sin un
programador quisiera programar directamente en lenguaje de máquina,
necesitaría introducir los programas como datos binarios.

Considere la sencilla sentencia BASIC:

N=I+J+K

Suponga que queremos programar esta sentencia en un lenguaje de máquina y


dar a I, J y K los valores iniciales 2,3, y 4, respectivamente. La forma de hacer esto
se muestra en la figura 7.1a. El programa empieza en la posición 101 (hexadecimal).
Se reserva memoria parea las cuatro variables a partir de la posición 201. El
programa consta de cuatro instrucciones:

 Cargar el contenido de la posición 201 en el acumulador (AC).


 Sumar a AC el contenido de la posición 202.
 Suma a AC el contenido de la posición 203.
 Memorizar el contenido de AC en la posición 204.

Para que la mejora sea más significativa, podemos hacer uso de nombres
simbólicos o mnemotécnicos de las instrucciones. Cada línea sigue representando
una posición de memoria, y consta de tres campos separados por espacios. El
primer campo contiene la dirección de una posición. El segundo campo contiene
el símbolo de tres letras que representa su código de operación. Si se trata de una
instrucción que hace referencia a memoria, un tercer campo contiene la
dirección. Para memorizar un dato concreto en una posición dada, nos inventamos
una pseudoinstrucción con el símbolo DAT. Esta es meramente un indicador de que
el tercer campo de la línea contiene un número en hexadecimal a memorizar en
la posición que especifica el primer campo.

El desarrollo de los lenguajes ensambladores fue un logro importante en la


evolución de la tecnología de computadores. Fue el primer paso hacia los
lenguajes de alto nivel de hoy en día.
El uso de programas simbólicos hace la vida mucho más fácil, pero es aun
engorroso. En particular hay, hay que dar una dirección absoluta para cada
palabra. Un procedimiento mejor, es emplear direcciones simbólicas. Cada línea
sigue teniendo tres campos. El primero sigue siendo para la dirección, pero se utiliza
un símbolo en lugar de una dirección numérica absoluta. Algunas líneas carecen
de dirección, indicando que la dirección de dicha línea es uno más que la
dirección precedente. Para las instrucciones que hacen referencia a memoria, el
tercer campo contiene también una dirección simbólica.

De acuerdo a lo anterior, resulta evidente que, si se utilizará un microprocesador


simple como núcleo de un circuito de proceso lógico, es indispensable rodearlo de
elementos periféricos que lo apoyen en su labor de cálculo, ya que el procesador,
por sí mismo, es incapaz de realizar prácticamente cualquier tarea. Como bloques
indispensables para el funcionamiento del circuito, está la memoria, ya sea de
datos, de programación, o ambas de forma combinada; también se requiere un
circuito generador de reloj y uno que envíe el pulso de reset cada vez que se
encienda el sistema; además, si el micro va a interactuar con otros elementos, se
necesita por lo menos un circuito PIO que sirva como puerto de entrada y salida
de señales digitales. Existen otros bloques funcionales que, por su uso tan común,
ha originado que los fabricantes diseñen circuitos especiales para realizar dicha
labor; así, están los circuitos temporizadores o timers, los chips de comunicaciones
DART o USART (Dual Asynchronous Receiver Transmiter o Universal Synchronous
Asynchronous Receiver Transmiter), los convertidores digital-analógico o analógico-
digital (DAC o ADC), etc
8.2.- Uso Del Teclado y Pantalla

Digita el siguiente programa y nómbralo VIDEO_IO.ASM.

. MODEL SMALL

. CODE

TEST_WRITE_HEX PROC

MOV DL, 3Fh prueba con 3Fh

CALL WRITE_HEX

INT 20h

TEST_WRITE_HEX ENDP retorna al DOS MOV AH, 4Ch INT 21h

PUBLIC WRITE_HEX

; este procedimiento convierte el byte en el registro DL a hex y escribe los dos dígitos
hexadecimales en la posición corriente del cursor DL byte a ser convertido a
hexadecimal usa a: WRITE_HEX_DIGIT

WRITE_HEX PROC

PUSH CX; almacena registros usados en este procedimiento

PUSH DX

MOV DH, DL; hacemos una copia del byte

MOV CX, 4

SHR DL, CX

CALL WRITE_HEX_DIGIT; despliega el primer dígito hexadecimal

MOV DL, DH; vamos con el nibble bajo

AND DL, 0Fh; elimina el nibble alto

CALL WRITE_HEX_DIGIT; despliega al segundo dígito hexadecimal

POP DX

POP CX

RET

WRITE_HEX ENDP
PUBLIC WRITE_HEX

; este procedimiento convierte los 4 bit menos significativos de DL a un dígito


hexadecimal y lo escribe en la pantalla DL los 4 bits menos significativos contienen
el número a ser impreso usa a: WRITE_CHAR

WRITE_HEX_DIGIT PROC

PUSH DX

CPM DL, 10; ¿es el nibble <10?

JAE HEX, _LETTER; no convierte a letra

ADD DL, “0”; suma 30

JMP SHORT WRITE_DIGIT; escribe carácter

HEX_LETTER:

ADD DL, “A”-10: suma 37, convierte a letra hexadecimal

WRITE_DIGIT:

CALL WRITE_CHAR; despliega letra en la pantalla

POP DX

RET

WRITE_HEX_DIGIT ENDP

PUBLIC WRITE_CHAR

; este procedimiento imprime un carácter en la pantalla usando función del DOS


DL byte a imprimir en la pantalla

WRITE_CHAR PROC

PUSH AX

MOV AH, 2; función para sacar carácter

INT 21h; saca carácter

POP AX

RET

WRITE_CHAR ENDP
8.4.- Archivo De Disco

El ensamblador puede usar archivos fuente que contengan caracteres ASCII


estándar. Considere que no todos los procesadores de texto escriben archivos en
disco usando solamente los caracteres ASCII estándar. Antes de ensamblar un
programa verifique que esté en código ASCII.

Puede ver caracteres extraños en el programa. Muchos procesadores de texto


agregan información de formateo adicional en el archivo. El ensamblador los trata
como errores. Utilice la versión no documento de su procesador de texto. También
se requiere una línea en blanco después de la instrucción END

Para ensamblar el programa:


A>MASM PROGRAMA;

MICROSOFT ® MACRO ASSEMBLER VERSION 5.10

COPYRIGHT © MICROSOFT CORP 1981, 1988. ALL RIGHTS RESERVED

49822 + 219323 BYTES SYMBOL SPACE FREE

0 WARNING ERRORS

0 SEVERE ERRORS

A>

El ensamblador crea un archivo intermedio *.OBJ el cual contiene nuestro


programa e información adicional usada por otro programa llamado LINKER
<encadenador>.

Encadenar al archivo *.OBJ

A>LINK ARCHIVO;

Microsoft ® Overlay Linker Versión 3.64

copyright © Microsoft corp. 1983-1988. All rights reserved

LINK: warning L4021: No Stack Segment

Hemos creado nuestro archivo *.EXE. Ahora sí necesitamos crear nuestra versión

*.COM. El archivo EXE2BIN.EXE del DOS convierte un archivo EXE a un archivo

BIN.

A>EXE2BIN ARCHIVO ARCHIVO.COM

A>
Si listamos los archivos que hemos creado, obtendríamos:

A>DIR ARCHIVO. *

Volumen in drive A has no label

directory of A:\

archivo.ASM 100

archivo.OBJ 200

archivo.EXE 600

archivo.COM 50

Detalles del DEBUG.

A>DEBUG ARCHIVO.COM

-U

397F:0100 B402 MOV AH, 02

397F:0102 B22A MOV DL, 2A

397F:0104 CD21 INT 21

397F:0106 CD20 INT 20

Las dos primeras y la última línea no aparecen en el listado. Se eliminan en la versión


final del lenguaje de máquina porque son directivas y éstas son para
documentación. El ensamblador toma en cuenta esta documentación a costa de
más líneas de código.
Bibliografía

http://www.aliat.org.mx/BibliotecasDigitales/sistemas/Microprocesadores.pdf

http://www.unamerida.com/archivospdf/MIA316-U7.pdf

http://www.ittux.edu.mx/sites/default/files/MICROCOMPUTADORAS_AL_DETALLE.p
df

S-ar putea să vă placă și