Escolar Documentos
Profissional Documentos
Cultura Documentos
DISEÑO YY PROGRAMACIÓN
DISEÑO PROGRAMACIÓN
DE SISTEMAS
DE SISTEMAS
Principio de funcionamiento del Software de Sistemas
ANÁLISIS,
DISEÑO YY PROGRAMACIÓN
DISEÑO PROGRAMACIÓN
DE SISTEMAS
DE SISTEMAS
Principio de funcionamiento del Software de Sistemas
ISBN 970764803-1
CONTENIDO
1 INTRODUCCIÓN 7
3
nrh
4 MACROPROCESADORES 171
4
______________________________________________________________________________
Introducción/ Historia
ANALISIS, DISEÑO Y PROGRAMACIÓN DE SISTEMAS
5
ANALISIS, DISEÑO Y PROGRAMACIÓN DE SISTEMAS
1 Introducción
EL OBJETIVO GENERAL DE ESTE TEXTO ES COMPRENDER, EN UN NIVEL OPERATIVO, LOS
PRINCIPIOS DE FUNCIONAMIENTO DE LAS COMPUTADORAS BASADAS EN EL MODELO DE VON
NEWMANN Y ARQUITECTURAS DE HARVARD. ENTENDER Y MANEJAR LAS DIVERSAS
MODALIDADES Y MECANISMOS DE ENSAMBLADO, CARGA, MACROPROCESAMIENTO Y EJECUCIÓN
DE PROGRAMAS, LOS OBJETIVOS ESPECÍFICOS SON EXPRESADOS EN CADA MÓDULO DEL
CONTENIDO
Antes de entrar de lleno al contenido propio de la materia hay que aclarar que dicha
materia pertenece a la academia “SOFTWARE DE SISTEMAS”, pero ¿que significan estos
conceptos?, empecemos….
La informática es la ciencia que se recuperación. La programación tiene como
encarga de la automatización del manejo de objetivo el tratamiento de la información
la información. La informática, por su rapidez correctamente, con lo que se espera que un
de crecimiento y expansión, ha venido programa de el resultado correcto y no uno
transformando rápidamente las sociedades erróneo. Así que cada aplicación debe
actuales. La computadora, a diferencia de funcionar según lo esperado en términos de
otras herramientas que en general apoyan el programación, esta pretende que sus
esfuerzo físico de los humanos, fue inventada programas sean útiles y eficientes
para facilitar el trabajo intelectual.
Un sistema es un conjunto de
El lenguaje de programación es el componentes que interaccionan entre si para
medio de comunicación entre el hombre y la lograr un objetivo común. Las personas se
máquina. Sistema de símbolos y reglas que comunican con el lenguaje, que es un sistema
permite la construcción de programas con los muy desarrollado formado por palabras y
que la computadora puede operar así como símbolos que tienen significado que tienen
resolver problemas de manera eficaz. Estos significado para el que habla y para quienes lo
contienen un conjunto de instrucciones que escuchan, lo mismo es para las computadoras
nos permiten realizar operaciones de entrada las cuales tienen sistemas y se comunican por
/ salida, calculo, manipulación de textos, medio de computadoras.
lógica / comparación y almacenamiento /
7
nrh
La programación es el proceso de Por lo tanto la Programación de
convertir las especificaciones a grandes Sistemas se refiere a la creación de
rasgos de los sistemas en instrucciones de programas cuya finalidad es servir a otros
máquina que produzcan los resultados programas (software): ejemplos:
deseados. Ensambladores, Cargadores y Ligadores,
Compiladores, Intérpretes.
El Software de Sistemas es el software que controla y coordina la operación del equipo
que existe en un sistema computacional. El tipo más importante de Software de Sistema es el
Sistema Operativo. Este supervisa y controla todas las actividades de entrada/salida y
procesamiento de un sistema de computación. Además todo el hardware y software se controla
por medio de un sistema operativo.
Llamamos Software de sistemas al conjunto de programas que se encargan de controlar el
funcionamiento de los programas que se ejecutan y de la gestión interna de los recursos físicos de
la computadora. Como es natural, el sistema operativo forma parte del software de sistema.
El Software es un conjunto de programas, documentos, procedimientos, y rutinas
asociados con la operación de un sistema de cómputo. Distinguiéndose de los componentes físicos
llamados hardware. El hardware por si solo no puede hacer nada, pues es necesario que exista el
software.
El software de manera general, podemos clasificarlo en:
8
______________________________________________________________________________
Introducción/ Historia
ANALISIS, DISEÑO Y PROGRAMACIÓN DE SISTEMAS
El trabajo de un programador de sistemas es seleccionar, modificar y mantener el complejo
software del sistema operativo. Por lo tanto, los programadores de sistemas desempeñan una
función de apoyo al mantener el ambiente del software del sistema operativo en el que trabajan
los programadores de aplicaciones y los operadores de las computadoras. También participan en
las decisiones relativas a reducciones o ampliaciones de hardware y/o software. Programación de
Sistemas Conceptos y Aplicaciones Se entiende por programación de sistemas el conjunto de
programas necesario para que una computadora de una imagen coherente y monolítica ante sus
usuarios. Es un área especializada dentro de las ciencias de la computación. Así, mediante la
programación de sistemas, no solo se manejan las computadoras por medio del lenguaje maquina
(0 y 1) sino por otros sistemas operativos, sin lo cual sería muy difícil la interacción con la maquina.
9
ANALISIS, DISEÑO Y PROGRAMACIÓN DE SISTEMAS
1. ESTRUCTURA DE LA COMPUTADORA
OBJETIVO: ENTENDER CON DETALLE LOS PROCESOS LOGICOS QUE SUCEDEN EN UNA
COMPUTADORA PARA QUE PUEDA EJECUTAR UN PROGRAMA EN LENGUAJE MAQUINA DE UNA
PLATAFORMA QUE YA ESTA DEFINIDA.
1.1.Historia
Podemos definir a la computadora como un dispositivo electrónico capaz de recibir un
conjunto de instrucciones y ejecutarlas realizando cálculos sobre los datos numéricos, o
compilando y correlacionando otros tipos de información para obtener otro conjunto de datos o
información como respuesta. La informática, por su rapidez de crecimiento y expansión, ha venido
transformando rápidamente las sociedades actuales.
1.1.1. 3000 AC – ÁBACO CHINA
Desarrollada por los chinos y utilizado por civilizaciones
griegas y romanas. Este dispositivo es muy sencillo, consta de un
marco rectangular de madera ensartado de varillas en las que se
desplazaban bolas agujereadas de izquierda a derecha. Al
desplazar las cuentas (bolas) sobre las varillas, sus posiciones
representan valores almacenados, y es mediante estas posiciones
que se representa y almacena datos. A este dispositivo no se le
puede llamar computadora pues carece de un elemento
fundamental: programa. Ilustración 1 Abaco
1.1.2. Siglo XVII – REGLA DE CÁLCULO – NAPIER, GUNTHER, PASCAL, LEIBNIZ
El creciente interés en Europa por la logaritmos permitiendo que los resultados de
astronomía y la navegación, impulsó a complicadas multiplicaciones se redujeran a
simplificar los cálculos, en ese entonces se un proceso simple de suma; Edmund Gunther
encontraba en uso "la regla del cálculo", se encarga de enmarcar los logaritmos de
calculadora basada en las invenciones de y Napier en líneas, por su parte Bissaker coloca
Napier, Gunther Bissaker. las líneas de ambos sobre un pedazo de
madera, creando de esta manera la regla del
En 1614, el escocés Napier había
cálculo.
anunciado el descubrimiento de los
11
ANALISIS, DISEÑO Y PROGRAMACIÓN DE SISTEMAS
1.5.Conjunto de registros y modelo de programación
1.5.1. Conceptos de modelo de programación
45
ANALISIS, DISEÑO Y PROGRAMACIÓN DE SISTEMAS
2. ENSAMBLADORES
Objetivo: ENTENDER Y MANEJAR LOS DIFERENTES ESQUEMAS DE ENSAMBLADO. DISEÑAR UN
ENSAMBLADOR DE 2 PASOS.
2.1.Relación Arquitectura de máquinas y ensamblador
La evolución de los sistemas comienza con un ENSAMBLADOR, se sigue con los
CARGADORES que es el modulo 3 para nuestro caso de estudio, MACROPROCESADORES que es el
modulo 4, COMPILADORES y SISTEMAS OPERATIVOS.
Al inicio de los tiempos, el se introdujo el concepto de MNEMONICO,
programador tenía que interpretar el que sustituye al conjunto de UNOS y CEROS,
fundamento de la instrucción, se escribían y al conjunto de estos mnemónicos LENGUAJE
una serie de unos y ceros (lenguaje maquina) ENSAMBLADOR. La entrada de dicho
y se grababan en la memoria del dispositivo, programa se le llama PROGRAMA FUENTE y a
entonces el dispositivo interpretaba como la salida PROGRAMA OBJETO (que es la
esto como una instrucción. Los traducción de dichas instrucciones a lenguaje
programadores encontraban esta tarea (leer maquina.
o escribir en la memoria) muy lenta, así que
Por lo tanto, los ensambladores son Lenguaje ensamblador es el lenguaje
programas que procesan los enunciados del simbólico que se utiliza para codificar los
programa origen en lenguaje ensamblador y programas origen que se procesan por el
los traducen en archivos en lenguaje máquina ensamblador es llamado lenguaje
que son ejecutados por un microprocesador o ensamblador. Este lenguaje es una colección
un micro controlador, estos permiten que los de símbolos mnemónicos que representan:
programas origen se escriban y se editen en operaciones (mnemónicos de instrucciones
una computadora para generar un código para la máquina o de directrices para el
ejecutable en otra computadora. El archivo en ensamblador), nombres simbólicos,
lenguaje objeto ejecutable resultante se carga operadores y símbolos especiales. El lenguaje
(CARGADOR) y se ejecuta en el sistema ensamblador proporciona códigos de
destino. operación de los mnemónicos para todas las
instrucciones de la máquina contenidas en la
lista de instrucciones.
67
ANALISIS, DISEÑO Y PROGRAMACIÓN DE SISTEMAS
.Ejemplos
Un ensamblador es un programa que traduce las instrucciones a lenguaje maquina, estos
deben ser escritos conforme a las especificaciones del ensamblador. Un programa consiste en
declaraciones (llamadas línea código) línea por línea. Su sintaxis es la siguiente: nombre del
campo, operacion del campo, operando del campo, sintaxis del campo, ejemplo:
69
ANALISIS, DISEÑO Y PROGRAMACIÓN DE SISTEMAS
direccionamientos, no todos son podrían ser las mismas, se enuncian
aplicables a los micros. de diferente manera, es decir:
MNEMONICO: las
instrucciones aunque en concepto
….. y así podríamos seguir enumerando encontrando las características que hacen exclusivo al
micro.
2.1.2. Características Independientes de la maquina.
Las características independientes de la máquina son aquellas relacionadas más bien con
el tipo de implementación del programa y sus estructuras de datos que con la máquina objeto.
…. De igual manera podríamos seguir numerando características globales para los micros
DIRECTIVAS: Las directivas de ensamblador controlan acciones auxiliares que se realizan
durante el proceso de ensamblado, tales como reservar posiciones de memoria, inicializar
posiciones de memoria a un determinado valor, definir etiquetas, indicar el inicio y el final del
75
nrh
programa, o definir macros. Las directivas no son traducibles a código máquina. Nota: las
directivas NO tienen código maquina.
Especificar el punto en el cual se comienza a ensamblar una sección de código. Esta
ORG directiva debe utilizarse siempre antes de comenzar a declarar código o zonas de
memoria.
Especifica el fin de un archivo en código fuente ensamblador. Esta directiva deber
END ser incluida obligatoriamente al final de cada archivo. Cualquier expresión declarada
después de esta directiva será ignorada.
START Especificación del comienzo de una sección de código ensamblado a dirección $0.
Equ Sustituye un identificador por una cadena de texto previamente especificada en
cualquier parte del programa por el valor declarado. Esto permite una gran
versatilidad a la hora de declarar constantes y posiciones de memoria de especial
interés para el programador.
contloc LINEA DE PROGRAMA COP
E1 EQU $800
ORG $4000
4000 JMP E1 06 0800
END
Las directivas DB y DW permiten declarar o reservar zonas de memoria, tanto para
DC.B valores numéricos como para cadenas de texto. Estas directivas poseen una amplia
sintaxis que permite una gran flexibilidad a la hora de definir áreas de memoria. Los
elementos definidos mediante las directivas DB y DW deben ir separados por
comas. Para reservar espacio en la memoria sin especificar un valor concreto, se
DC.W puede emplear el signo de interrogación.
La especificación de cadenas de texto debe hacerse mediante la expresión literal de
la cadena entre comillas.
76
______________________________________________________________________________
ENSAMBLADORES/ Relación Arquitectura de máquinas y ensamblador
ANALISIS, DISEÑO Y PROGRAMACIÓN DE SISTEMAS
2.5.Diseño y programación del ensamblador de dos pasos
Los lenguajes son sistemas de 2. Codificación del mismo: consiste en
comunicación. Un lenguaje de programación escribir el programa en algún
consiste en todos los símbolos, caracteres y lenguaje de programación; en este
reglas de uso que permiten a las personas caso específico en ensamblador,
"comunicarse" con las computadoras. tomando como base la solución
Existen por lo menos varios cientos de propuesta en el paso anterior.
lenguajes y dialectos de programación 3. Traducción a lenguaje máquina, es
diferentes. Algunos se crean para una la creación del programa objeto, esto
aplicación especial, mientras que otros son es, el programa escrito como una
herramientas de uso general más flexibles secuencia de ceros y unos que pueda
que son apropiadas para muchos tipos de ser interpretado por el procesador.
aplicaciones. En todo caso los lenguajes de 4. La prueba del programa: verificar
programación deben tener instrucciones que que el programa funcione sin
pertenecen a las categorías ya familiares de errores, o sea, que haga lo que tiene
entrada/salida, cálculo/manipulación de que hacer.
textos, lógica / comparación y 5. Depuración La última etapa es la
almacenamiento / recuperación. eliminación de las fallas detectadas
en el programa durante la fase de
Los lenguajes de programación se
prueba . La corrección de una falla
dividen en 4 principales paradigmas:
normalmente requiere la repetición
imperativo, funcional, orientado a objetos y
de los pasos comenzando desde el
lógico.
primero o el segundo.
101
nrh
106
______________________________________________________________________________
ENSAMBLADORES/ Diseño y programación del ensamblador de dos pasos
ANALISIS, DISEÑO Y PROGRAMACIÓN DE SISTEMAS
107
nrh
2.5.3. Formato de Archivo objeto.
Un archivo de salida de Motorola es un archivo tipo ASCII, Motorola maneja 3 tipos:
S19 para direccionamiento de 16 bits
S2 para direccionamiento de 24 bits
S3 para direccionamiento de 32 bits
Estos archivos son una opcional tabla de información, con datos específicos para ser
cargados en memoria:
Modulo de registro este es opcional, contiene el nombre del modulo.
Registro de símbolos en caso de ser necesario un símbolo re‐calculable.
Registro de encabezado S0
Registro de dato
o S1 (2 bytes) dato
o S2 (3 bytes) dato
o S3 (4 bytes) dato
Registro de término
o S7 archivo de 32 bits de dirección
o S8 archivo de 24 bits de dirección
o S9 archivo de 16 bits de dirección
Recordemos que este es solo un formato para el cargador del simulador, para facilitar la
vida del programador, lo único exacto y sin varianza deberá ser el COP resultante. Para nuestro
caso del HC12 de Motorola el formato de salida será un S19 con las siguientes características:
LARGO DE LA FILA,
DATO (
REPRESENTADO
DATO (2 BYTES)
DIRECCION DEL
TIPO DE DATO
el tamaño es
NUMERO DE
DATOS A LO
POR 1 BYTE
checksum
variable)
S0
S1
.
S1
S9
ORDEN DE CALCULO COMO SIGUE
1 4 2 3 5
120
______________________________________________________________________________
ENSAMBLADORES/ Diseño y programación del ensamblador de dos pasos
ANALISIS, DISEÑO Y PROGRAMACIÓN DE SISTEMAS
2. Mediante el algoritmo de 2 pasos, obtenga el formato de salida S19, del siguiente
programa en lenguaje ensamblador:
1.asm
ORG $4000
1=31 (ascii, hexadecimal) ver
JMP INI anexos
INI JMP ‐4,Y
Retorno de carro=13H
JMP 4,‐Y
JMP 40,Y
ORG $4012
JMP ‐40,Y TABSIM
JMP A,Y
INI=$4003
END
PASO 1, SE RESEVA LOCALIDADES DE MEMORIA PASO 2: SE OBTIENE EL COP Y SE GENERA EL
Y SE GENERA LA TABSIM EN SU CASO FORMATO DE SALIDA S19
Eje1.asm Eje1.asm
contloc Cop ORG $4000 contloc cop ORG $4000
4000 06 hh ll JMP INI 4000 06 4003 JMP INI
4003 05 xb INI JMP ‐4,Y 4003 05 5C INI JMP ‐4,Y
4005 05 xb JMP 4,‐Y 4005 05 6C JMP 4,‐Y
4007 05 xb ff JMP 40,Y 4007 05 E8 28 JMP 40,Y
400ª ORG $4012 400A ORG $4012
4012 05 xb ff JMP ‐40,Y 4012 05 E9 D8 JMP ‐40,Y
4015 05 xb JMP A,Y 4015 05 EC JMP A,Y
4017 END 4017 END
4000 El código “hhll” se sustituye por el por el valor de la variable que se encuentra declarada
en la tabla de simbolos
4003 El código “xb” se sustituye de acuerdo al modulo anterior (1.6.5 Modo de
direccionamiento indexado) por la formula: rr0nnnnn, donde:
123
nrh
r r 0 n n n n n
y ‐4
0 1 1 1 1 0 0
5 C
4005 El código “xb” se sustituye de acuerdo al modulo anterior (1.6.5 Modo de
direccionamiento indexado) por la formula: rr1pnnnn, donde p=posición del signo pre=0,
mientras que el signo del registro (para cuestiones de cálculo se toma para el
desplazamiento:
r r 1 p n n n n
y ‐4
0 1 0 1 1 0 0
6 C
4007 De igual manera que las anteriores: xb se sustituye por 111rr0zs, donde z es el tamaño del
operador, siendo 0 cuando su tamaño es de 1 byte, y s representa el signo del operador,
siendo s=0 cuando este es positivo, por lo tanto el operador 40 es la variable ff
1 1 1 r r 0 z S
y 1 BYTE POSITIVO
0 1 0 0
E 8
4012 Es el mismo formato anterior, solo que aquí el operador es negativo asi que nos resultara
s=1, por lo tanto el COP resultante para ‐40,y seria E9 D8.
400D Ahora el 1er operador es el registro interno “A”, por lo tanto les como sigue:
1 1 1 r r 1 a a
y A
0 1 0 0
E C
124
______________________________________________________________________________
ENSAMBLADORES/ EJEMPLOS
ANALISIS, DISEÑO Y PROGRAMACIÓN DE SISTEMAS
FORMATO DE SALIDA S19 “1.s19”
125
ANALISIS, DISEÑO Y PROGRAMACIÓN DE SISTEMAS
3. CARGADOR LIGADOR
Objetivo: ENTENDER EL FUNCIONAMIENTO DE LOS ESQUEMAS MAS IMPORTANTES DE LA CARGA
Y LIGA DE MODULOS OBJETO.
3.1.Clases de cargador
En informática, un cargador es la parte de compensar las variaciones en la cual la
un sistema operativo que es responsable de memoria disponible de la aplicación empieza.
cargar programas en memoria. El cargador es
Las computadoras que necesitan de los
usualmente una parte del núcleo del sistema
cargadores relocalizables son aquellos en los
operativo y es cargado al iniciar el sistema y
cuales los punteros son direcciones absolutas
permanece en memoria hasta que el sistema
en vez de compensaciones de direcciones
es reiniciado o apagado. Algunos sistemas
base del programa. Un ejemplo muy conocido
operativos que tienen un núcleo paginable
está en los mainframes IMB Sistema 360 y sus
pueden tener el cargador en una parte
descendientes, incluyendo la serie de los
paginable de la memoria, entonces a veces el
sistemas Z9. Los ligadores dinámicos son otro
cargador intercambia de memoria.
tipo de cargador que carga y liga librerías
Los sistemas operativos que soportan dinámicas (como dll's).
la carga de programas tienen cargadores.
Muchos cargadores permiten al usuario
Algunos sistemas operativos empotrados de
especificar opciones que modificar el
computadoras altamente especializadas
procesamiento estándar descrito. Algunas
corren un único programa y no existen
veces existe un archivo independiente de
capacidades de carga de programas, por lo
entrada al cargador que contiene esas
tanto no usan cargadores. Ejemplos de estos
proposiciones de control o esas mismas
sistemas embebidos se encuentran en
proposiciones también pueden estar
equipos de audio para automóviles. En los
intercaladas en el flujo primario de entrada
sistemas Unix, el cargador es el manejador
entre los programas objeto. En ciertos
para la llamada del sistema execve(). Algunas
sistemas el programador puede incluso
computadoras necesitan cargadores
introducir proposiciones de control del
relocalizables, los cuales ajustan direcciones
cargador en el programa fuente, y el
de memoria (punteros) en un ejecutable para
137
ANALISIS, DISEÑO Y PROGRAMACIÓN DE SISTEMAS
3.5.Diseño y programación de un Cargador
Algoritmo de cargador
1. colocar un programa objeto en la memoria
2. Iniciar su ejecución.
3. Si tenemos un cargador que no necesita realizar las funciones de ligado y
relocalización de programas, su operación es simple pues todas las funciones se
realizan en un solo paso.
4. Se revisa el registro de encabezamiento para comprobar si se ha presentado el
programa correcto para la carga (entrando en la memoria disponible).
5. A medida que lee cada registro de texto, el código objeto que contiene pasa a
dirección de la memoria indicada.
6. Cuando se encuentra el registro de fin, el cargador salta a la dirección especificada
para iniciar la ejecución del programa cargado.
3.5.1. Cargador absoluto (ejemplo)
Hay dos aspectos del programa contiene la dirección de un byte de memoria.
cargador que requieren una mayor Inicialmente, esta variable se asigna igual a la
explicación: la variable dir_byte y el campo constante DIR_CARGA.En cada iteración del
dir_ini. El proceso de carga absoluta del lazo while, a la posición de memoria
siguiente cargador es: La variable dir_byte identificada por dir_byte se le asigna el
que se declara como apuntador a un carácter siguiente byte del archivo ejecutable; después
o sea es la dirección de un carácter. Es se incrementa en uno el valor de dir_byte. De
razonable suponer que se almacena un esta manera, el contenido del archivo
carácter usando un byte de memoria y que, ejecutable se copia a posiciones consecutivas
por consiguiente, la variable dir_byte de la memoria a partir de DIR_CARGA.
/***definir la estructura del registro encabezado***/
struct enc_ejec
{unsigned int dir_ini;
/* las otras partes del encabezado del archivo ejecutable */
159
ANALISIS, DISEÑO Y PROGRAMACIÓN DE SISTEMAS
4 MACROPROCESADORES
Objetivo: Entender el funcionamiento de las diversas modalidades del macro procesamiento.
171
ANALISIS, DISEÑO Y PROGRAMACIÓN DE SISTEMAS
Reserva de localidades de memoria con una Macro
M1 MACRO M1 MACRO
LDAA [1,X] LDAA [1,X]
LDAA [2,X] LDAA [2,X]
LDAA [3,X] LDAA [3,X]
1ER PASO
LDAA [4,X] LDAA [4,X]
ENDM ENDM
ORG $4000 ORG $4000
M1 4000 M1
ET1 JMP ET1 4010 06 hh ll ET1 JMP ET1
M1 4013 M1
END 4023 END
Reserva de localidades de memoria con una Rutina
ORG $4000 ORG $4000
JSR M1 4000 16 hhll JSR M1
ET1 JMP ET1 4003 06 hhll ET1 JMP ET1
JSR M1 4006 16 hhll JSR M1
JMP FIN 4009 06 hhll JMP FIN
M1 LDAA [1,X] 400C 05 xb eeff M1 LDAA [1,X]
… como se puede apreciar, el tamaño del COP resultante es mayor el de la Macro que el de la
Rutina, a su vez la Macro tiene menor tiempo de ejecución.
175
nrh
4.1.Importancia teórica de macroexpresiones y usos de un macro
procesador
______________________________________________________________________________
176
MACROPROCESADORES/ Importancia teórica de macro‐expresiones y usos de un macro‐
procesador
ANALISIS, DISEÑO Y PROGRAMACIÓN DE SISTEMAS
4.3.1. Ejemplos
1. MEDIANTE EL ALGORITMO DE 2 PASOS, OBENGA EL FORMATO DE SALIDA DEL SIGUIENTE
PROGRAMA EN LENGUAJE ENSAMBLADOR, TOME EN CUENTA QUE EL RETORNO DE
CARRO ES 13H.
183
nrh
2. MEDIANTE EL ALGORITMO DE 2 PASOS, OBENGA EL FORMATO DE SALIDA DEL SIGUIENTE
PROGRAMA EN LENGUAJE ENSAMBLADOR, TOME EN CUENTA QUE EL RETORNO DE
CARRO ES 13H. ESTE EJERCICIO DENOTA EL USO DE LA DIRECTIVA “LOCAL”
1ER PASO
LDAA #1 LDAA #1 M1
ENDM ENDM
ORG $4000 ORG $4000 TABDEF
M1 4000 M1 06 hh ll
E2 LDAA #2 4008 86 ii E2 LDAA #2 06 hh ll
M1 400A M1 86 ii
END 4012 END
…. Recuerda el concepto de expansión? La MACRO, se expansiona y se ve reflejada en el formato
de salida S19.
PD. He omitido el nombre del archivo, por cuestiones prácticas pero, definitivamente es un dato
requerido.
S0
S1 13 4000 06 4000 06 4008 86 01 86 02 06 400A 06 4008 6B
S1 05 4010 86 01 23
S9 03 4012 AA
NOTA:
La 1er parte (06 4000 06 4008 86 01) pertenece a la 1er llamada a la macro (la que se encuentra
en la localidad 4000, la 2da llamada a la macro es aquel código mostrado en letra cursiva (06 400A
06 4008 86 01).
184
______________________________________________________________________________
MACROPROCESADORES/ Incorporación del procesador de macros al ensamblador
ANALISIS, DISEÑO Y PROGRAMACIÓN DE SISTEMAS
5. ANEXOS
5.1.CODIGO ASCII
El código ASCII (acrónimo inglés de American Standard Code for Information Interchange
— Código Estadounidense Estándar para el Intercambio de Información), pronunciado
generalmente [áski], es un código de caracteres basado en el alfabeto latino tal como se usa en
inglés moderno y en otras lenguas occidentales. Fue creado en 1963 por el Comité Estadounidense
de Estándares (ASA, conocido desde 1969 como el Instituto Estadounidense de Estándares
Nacionales, o ANSI) como una refundición o evolución de los conjuntos de códigos utilizados
entonces en telegrafía. Más tarde, en 1967, se incluyeron las minúsculas, y se redefinieron algunos
códigos de control para formar el código conocido como US‐ASCII.
El código ASCII define una relación entre caracteres específicos y secuencias de bits;
además de reservar unos cuantos códigos de control para el procesador de textos, y no define
ningún mecanismo para describir la estructura o la apariencia del texto en un documento; estos
asuntos están especificados por otros lenguajes como los lenguajes de etiquetas.
ASCII Hex Símbolo ASCII Hex Símbolo ASCII Hex Símbolo ASCII Hex Símbolo
ASCII Hex Símbolo ASCII Hex Símbolo ASCII Hex Símbolo ASCII Hex Símbolo
64 40 @ 80 50 P 96 60 ` 112 70 p
65 41 A 81 51 Q 97 61 a 113 71 q
66 42 B 82 52 R 98 62 b 114 72 r
67 43 C 83 53 S 99 63 c 115 73 s
68 44 D 84 54 T 100 64 d 116 74 t
69 45 E 85 55 U 101 65 e 117 75 u
70 46 F 86 56 V 102 66 f 118 76 v
71 47 G 87 57 W 103 67 g 119 77 w
72 48 H 88 58 X 104 68 h 120 78 x
73 49 I 89 59 Y 105 69 i 121 79 y
74 4A J 90 5A Z 106 6A j 122 7A z
75 4B K 91 5B [ 107 6B k 123 7B {
76 4C L 92 5C \ 108 6C l 124 7C |
77 4D M 93 5D ] 109 6D m 125 7D }
78 4E N 94 5E ^ 110 6E n 126 7E ~
79 4F O 95 5F _ 111 6F o 127 7F
189
nrh
5.2.SECCIONES DEL MANUAL DE REFERENCIA DEL HC12
5.2.1. MODELO DE PROGRAMACION
El modelo de programación de cualquier dispositivo lo obtenemos del mismo proveedor, quien
nos lo hace saber por medio de su manual de referencia.
190
______________________________________________________________________________
ANEXOS/ SECCIONES DEL MANUAL DE REFERENCIA DEL HC12
ANALISIS, DISEÑO Y PROGRAMACIÓN DE SISTEMAS
5.2.2. MODOS DE DIRECCIONAMIENTO DEL HC12
191
nrh
5.2.3. TABLA DE OPERACIONES INDEXADAS
192
______________________________________________________________________________
ANEXOS/ SECCIONES DEL MANUAL DE REFERENCIA DEL HC12
ANALISIS, DISEÑO Y PROGRAMACIÓN DE SISTEMAS
5.2.4. HOJA DE DATOS DE INSTRUCCIÓN
5.2.5. INSTRUCCIÓN ABREVIADA
193
nrh
5.4.TABLA DE ILUSTRACIONES
Ilustración 1 Abaco ______________________________________________________________________ 11
Ilustración 2 Maquina de Pascal ____________________________________________________________ 12
Ilustración 3 Maquina diferencial ___________________________________________________________ 13
Ilustración 4 Tarjetas perforadas ___________________________________________________________ 13
Ilustración 5 MARK I _____________________________________________________________________ 14
Ilustración 6 ENIAC ______________________________________________________________________ 14
Ilustración 7 JOHNN VON NEUMANN _______________________________________________________ 15
Ilustración 8 EDVAC _____________________________________________________________________ 15
Ilustración 9 Abstracción de la computadora __________________________________________________ 20
Ilustración 10 Diagrama a bloques de un CPU simple ___________________________________________ 27
Ilustración 11 Memoria __________________________________________________________________ 29
Ilustración 12 Esquema de Arquitectura Von Neumann _________________________________________ 34
Ilustración 13 Esquema de la Arquitectura Harvard ____________________________________________ 35
Ilustración 14 Modos de direccionamiento aplicables al HC12 ____________________________________ 50
Ilustración 15 Formulario indexados ________________________________________________________ 57
Ilustración 16 Registro de segmento ________________________________________________________ 82
Ilustración 17 Jerarquía de memorias _______________________________________________________ 97
Ilustración 18 Asignación de direcciones en compilación ________________________________________ 97
Ilustración 19 Asignación de direcciones en carga ______________________________________________ 98
Ilustración 20 Asignación de dirección en ejecución ____________________________________________ 98
Ilustración 21 Espacios de memoria lógicos y físicos ____________________________________________ 99
Ilustración 22 Solapamiento en ensamblador ________________________________________________ 100
Ilustración 23 Diagrama de flujo de un Ensamblador de 2 pasos PASO 1 ___________________________ 106
Ilustración 24 Diagrama de flujo de un Ensamblador de 2 pasos PASO 2 ___________________________ 107
Ilustración 25 Ligador ___________________________________________________________________ 151
Ilustración 26 Editor de ligado ____________________________________________________________ 152
Ilustración 27 Problema de liga de objetos __________________________________________________ 154
Ilustración 28 Cargado y llamada de una subrutina (ligado dinámico) _____________________________ 157
Ilustración 29 Tabla ASCII ________________________________________________________________ 190
Ilustración 30 Tabla de modos de direccionamiento del HC12 ___________________________________ 191
Ilustración 31 Formulario indexados _______________________________________________________ 192
196
______________________________________________________________________________
ANEXOS/ TABLA DE ILUSTRACIONES
ANALISIS, DISEÑO Y PROGRAMACIÓN DE SISTEMAS
6. REFERENCIAS
Bibliografía
9 SYSTEM PROGRAMMING JOHN DONOVAN
9 CPU12 REFERENCE MANUAL MOTOROLA.COM/SEMICONDUCTORS
9 COMPILADORES :Principios, técnicas y Aho, Sethi & Ullman, Ed. Addison‐,
herramientas iberoamericana
9 MODERN COMPILER IMPLEMENTATION IN Appel, Andrew W. Ed. Cambridge
C Basic techniques
9 The Intel Microprocessors 8086/8088, BREY, BARRY B. 6a. edición, New Jersey,
80186/80188, 80286, 80386, 80486, Pentium, Merril, 2002.
and Pentium Pro Processor Architecture,
Programming, and Inter‐ facing
9 Microcomputer system BYRD, Joseph S.; Pettus, Robert O. New
Jersey, Prentice Hall, 1993
9 Introduction to Embedded Microcomputer VALVANO, Jonathan W. Motorola
Systems 6811/6812 Simulations, USA , Thomson,
2003
9 Manuales técnicos de microcomputadores
comerciales, HC11, PIC´s, HC08, etc
9 Microprocesadores avanzados de Intel Barry Brey, Prentice‐Hall
9 Software de Sistema Beck, Leland,.Addison‐Wesley
9 Diseño de Programación de Sistemas Norma Ramírez Hernández ‐ 2008
9 www.n‐ramirez.com
9
9
197