Академический Документы
Профессиональный Документы
Культура Документы
SOFTWARE DE
SISTEMAS
LICENCIATURA EN INFORMATICA
ALUMNO: FERNANDO VALENZUELA RAMOS
DOCENTE I.S.C. EDUARDO LPEZ DE LOS SANTOS
13/12/2014
DIAGRAMACIN
Una vez que sabemos cmo resolver el problema, pasamos a dibujar grficamente la lgica de la
alternativa seleccionada. Eso es precisamente un Diagrama de Flujo: la representacin grfica de
una secuencia lgica de pasos a cumplir por el computador para producir un resultado esperado.
La experiencia nos ha demostrado que resulta muy til trasladar esos pasos lgicos planteados en
el diagrama a frases que indiquen lo mismo; es decir, hacer una codificacin del programa pero
utilizando instrucciones en Espaol. Como si le estuviramos hablando al computador. Esto es lo
que denominaremos Algoritmo o Pseudocdigo.
Cuando logremos habilidad para desarrollar programas, es posible que no elaboremos el diagrama
de flujo; en su lugar podremos hacer directamente el pseudocdigo del programa.
PRUEBA DE ESCRITORIO
Para cerciorarnos de que el diagrama (y/o el pseudocdigo) esta bien, y, para garantizar que el
programa que codifiquemos luego tambin funcione correctamente, es conveniente someterlo a
una Prueba de Escritorio. Esta prueba consiste en que damos diferentes datos de entrada al
programa y seguimos la secuencia indicada en el diagrama, hasta obtener los resultados. El anlisis
de estos nos indicar si el diagrama esta correcto o si hay necesidad de hacer ajustes (volver al
paso 4). Se recomienda dar diferentes datos de entrada y considerar todos los posibles casos, aun
los de excepcin o no esperados, para asegurarnos de que el programa no producir errores en
ejecucin cuando se presenten estos casos.
CODIFICACIN
Una vez que hayamos verificado el diagrama mediante las pruebas de escritorio, codificamos el
programa en el lenguaje de computador seleccionado. Esto es, colocamos cada paso del diagrama
en una instruccin o sentencia, utilizando un lenguaje que el computador reconoce.
Todos los lenguajes de programacin proveen facilidades para incluir lneas de comentarios en los
programas. Estos comentarios aclaran lo que se ordena al computador y facilitan entender el
programa. Puesto que estos comentarios no son tenidos en cuenta como instrucciones, y
aparecen en los listados del programa, resulta muy conveniente agregar abundantes comentarios
a todo programa que codifiquemos. Esto es lo que se denomina Documentacin Interna.
TRANSCRIPCIN
El programa codificado es necesario que lo llevemos a un medio que sea aceptado como entrada
por el computador: lo perforamos en tarjetas, lo grabamos en un disco flexble o lo grabamos en
un disco duro. Este programa es el que se conoce como Programa Fuente (Source).
COMPILACIN
Utilizamos ahora un programa de computador llamado Compilador o Traductor, el cal analiza
todo el programa fuente y detecta errores de sintaxis ocasionados por fallas en la codificacin o en
la transcripcin. Las fallas de lgica que pueda tener nuestro programa fuente no son detectadas
por el compilador. Cuando no hay errores graves en la compilacin, el compilador traduce cada
instruccin del programa fuente a instrucciones propias de la mquina (Lenguaje de Maquina),
creando el Programa Objeto.
Algunos computadores utilizan Interpretadores, (Generalmente para el Lenguaje Basic), en
reemplazo de programas compiladores. La diferencia consiste en que el interpretador recibe,
desde una terminal, slo una instruccin a la vez, la analiza y, si esta bien, la convierte al formato
propio de la maquina. Si la instruccin tiene algn error, el interpretador llama la atencin de la
persona para que corrija dicha instruccin.
Como resultado de la corrida del compilador, podemos obtener varios listados:
Listado del programa fuente
Listado de los errores detectados
Listado de campos utilizados, etc.
Los errores los debemos corregir sobre el mismo programa fuente, ya sea reemplazando las
tarjetas mal perforadas o regrabando en el disco flexible o en el disco duro. Este paso de la
compilacin lo repetimos hasta eliminar todos los errores y obtener el programa ejecutable.
PRUEBAS DE COMPUTADOR
Cuando tenemos el programa ejecutable (en lenguaje de maquina), ordenamos al computador
que lo ejecute, para lo cual suministramos datos de prueba, como lo hicimos en la prueba de
escritorio (paso 5). Los resultados obtenidos los analizamos, luego de lo cual puede ocurrir
cualquiera de estas situaciones:
a.- La lgica del programa est bien, pero hay errores sencillos, los cuales los corregimos
modificando algunas instrucciones o incluyendo unas nuevas; el proceso debemos repetirlo desde
el paso 6 .
b.- Hay errores ocasionados por fallas en la lgica, lo que nos obliga a regresar a los pasos 4 y 5
para revisin y modificacin del diagrama.
c.- Hay errores muy graves y lo ms aconsejable es que regresemos al paso 2 para analizar
nuevamente el problema, y repetir todo el proceso.
d.- No hay errores y los resultados son los esperados. En este caso, el programa lo podemos
guardar permanentemente en una librera o biblioteca del computador, para sacarlo de all
cuando necesitemos ejecutarlo nuevamente.
DOCUMENTACIN EXTERNA
Cuando el programa ya se tiene listo para ejecutar, es conveniente que hagamos su
documentacin externa siguiendo las normas de la instalacin o las recomendaciones indicadas
por el profesor. Una buena documentacin incluye siempre:
-Enunciado del problema -Diagrama de pasada -Narrativo con la descripcin de la solucin Relacin de las variables o campos utilizados en el programa, cada uno con su respectiva funcin Diagrama del programa -Listado de la ltima compilacin -Resultados de la ejecucin del
programa.
1.4 EDITORES
Un editor de texto es un programa que permite crear y modificar archivos digitales compuestos
nicamente por texto sin formato, conocidos comnmente como archivos de texto o texto plano.
El programa lee el archivo e interpreta los bytes ledos segn el cdigo de caracteres que usa el
editor. Hoy en da es comnmente de 7- 8-bits en ASCII o UTF-8, rara vez EBCDIC.
Por ejemplo, un editor ASCII de 8 bits que lee el nmero binario 0110 0001 (decimal 97
hexadecimal 61) en el archivo lo representar en la pantalla por la figura a, que el usuario
reconoce como la letra "a" y ofrecer al usuario las funciones necesarias para cambiar el nmero
binario en el archivo.
Editores de Carcter:
El uso de logos u otros tems para ser usados en cualquier documento se puede volver engorroso
con los mtodos tradicionales.
Recomendacin
Windows XP tiene una caracterstica que permite personalizar logos o cualquier otro tem para ser
utilizado en cualquier documento. El Editor de Caracteres Privados (Private Character Editor) se
puede acceder en digitando Eudcedit sin las comillas en la ruta Inicio/Ejecutar
Una vez haya construido y guardado el diseo de su seleccin, puede accederlo a travs del Mapa
de Caracteres, al cual se llega por la ruta
Inicio/Todos los programas/Accesorios/Mapa de caracteres.
Editores de Lnea:
El editor de lneas se usa para crear o editar la Tabla de Definicin de Campos y la Tabla de
Seleccin de Campos Estas tablas estn formadas por una o ms lneas, cada una de las cuales
representa un elemento descriptivo. Aunque cada tabla tiene una estructura propia de sus
elementos, los comandos del editor de lneas en ambos casos son idnticos. Para cada nuevo
elemento de la tabla creado, el editor de lneas presenta un rengln en el que se muestra la
posicin y longitud de cada campo con lneas de subrayado (en coincidencia con el encabezado de
la tabla presentado en la parte de arriba de la pantalla, y que contiene los nombres
correspondientes a cada campo), y posiciona el cursor en el primer campo donde se van a teclear
los datos.
Editores de Pantalla:
El editor ms frecuente en Unix es vi. Es un editor que trabaja lnea a lnea y que muestra una
pantalla de texto a la vez.
Para iniciar una sesin de edicin, se ejecuta el programa vi seguido del nombre del archivo a
editar, y dado el caso tambin la trayectoria. Por ejemplo, para editar el arvhivo /tmp/borrame,
basta con dar vi /tmp/borrame, o para editar un archivo en el directorio actual: vi brrame.
Si el archivo no existe vi lo crea. De igual manera, podemos simplemente invocar a vi, comenzar a
escribir y despus nombrar el archivo al momento de salvarlo.
Al ser ejecutado vi, presenta una pantalla con el texto del archivo, y las lneas despus del final del
archivo aparecen con el carcter ~ para indicar que a partir de ah el archivo est vaco.
Obviamente, si comenzamos a editar un archivo nuevo, todas las lneas aparecern con ste
carcter.
Tiene tres modos de trabajo. El modo de insercin, el de edicin y el de comandos.
10
11
C# Qu es? C# es un lenguaje de propsito general orientado a objetos creado por Microsoft para
su plataforma .NET. Su sintaxis bsica deriva de C/C++ y utiliza el modelo de objetos de la
plataforma .NET el cual es similar al de Java aunque incluye mejoras derivadas de otros lenguajes.
C# fue diseado para combinar el control a bajo nivel de lenguajes como C y la velocidad de
programacin de lenguajes como Visual Basic.
AJAX Qu es? AJAX no es un lenguaje exactamente su nombre viene dado por el acrnimo de
Asynchronous Java Script And XML y es posiblemente la mayor novedad en cuanto a programacin
web en estos ltimos aos. El corazn de Ajax es el objeto XML Http Request? que nos permite
realizar una conexin al servidor y al enviarle una peticin y recibir la respuesta que procesaremos
en nuestro cdigo Javascript, estamos hablando del verdadero motor de Ajax, por ejemplo gracias
a este objeto podemos desde una pgina HTML leer datos de una web o enviar datos de un
formulario sin necesidad de recargar la pgina.
Java Script Qu es? Se trata de un lenguaje de programacin del lado del cliente, porque es el
navegador el que soporta la carga de procesamiento. Gracias a su compatibilidad con la mayora
de los navegadores modernos, es el lenguaje de programacin del lado del cliente ms utilizado.
Ruby y Ruby on Rails Qu es? Ruby on Rails, tambin conocido como RoR o Rails es un framework
de aplicaciones web de cdigo abierto escrito en el lenguaje de programacin Ruby. Ruby apareci
en el ao 1995 y creo que su principal problema haba sido la falta de documentacin en otro
idioma que no sea japons. Eso se ha ido solucionando y crece la popularidad del lenguaje. Su
aplicacin insignia, por decirlo de algn modo parece ser RoR. Su mecanismo de gem se me parece
al CPAN de Perl y al Pear de PHP.
ASP Qu es? Active Server Pages (ASP) y ASP.NET es un intendo de Microsoft para introducirse en
el mercado del desarrollo Web, y viene a ser como su estandar para su servidor Web, ISS. Asp ha
sido atacado por la comunidad open source desde que este apareci, y dan numerosas razones
para ello: El propietario, una nica plataforma, la lentitud
Edgar Ursulo Garcia ABAP (Advanced Business Application Programming) es un lenguaje de cuarta
generacin, propiedad de SAP, que se utiliza para programar dentro de R/3. Utiliza sentencias de
Open SQL para conectarse con prcticamente cualquier base de datos. Cuenta con miles de
funciones para el manejo de archivos, bases de datos, fechas, etc Permite conexiones RFC
(Remote Function Calls) para conectar a R/3 con cualquier otro sistema o lenguaje de
programacin. ABC es un lenguaje de programacin de alto nivel desarrollado por Leo Geurts y
Lambert Meertens a principios de los 80 en el CWI (Centrum voor Wiskunde en Informtica).
Inicialmente fue pensado como sustituto del lenguaje BASIC. Este lenguaje sirvi de inspiracin a
Guido van Rossum para desarrollar el lenguaje Python. Ada es un lenguaje de programacin
estructurado y fuertemente tipado de forma esttica que fue diseado por Jean Ichbiah de CII
Honeywell Bull por encargo del Departamento de Defensa de los Estados Unidos. Es un lenguaje
12
13
listas asociadas (es decir, listas indexados por cadenas clave), y expresiones regulares. El poder,
brevedad y limitaciones de los programas de AWK y los guiones de sed inspiraron a Larry Wall a
escribir Perl. Debido a su densa notacin, todos estos lenguajes son frecuentemente usados para
escribir programas de una lnea.
B B fue el nombre de un lenguaje de programacin desarrollado en los Bell Labs, predecesor del
lenguaje de programacin C. Fue mayoritariamente un trabajo de Ken Thompson con
contribuciones de Dennis Ritchie. Apareci primero sobre el ao 1969.
BASIC es una familia de lenguajes de programacin. Fue originalmente ideado como una
herramienta de enseanza, se disemin entre los microcomputadores caseros en la dcada de
1980, y sigue siendo popular hoy en da en muchos dialectos bastante distintos del original. BASIC
es el acrnimo de Beginners All-purpose Symbolic Instruction Code*1+ (en espaol cdigo de
instrucciones simblicas de propsito general para principantes) y est ligado al nombre de un
trabajo sin publicar del coinventor del lenguaje, Thomas Kurtz (el nombre no est relacionado con
la serie de C. K. Ogden, Basic English).
BCPL es un acrnimo ingls de Basic Combined Programming Language (Lenguaje de Programacin
Bsico Combinado). Fue diseado por Martin Richards de la Universidad de Cambridge en 1966
debido a las dificultades experimentadas con el lenguaje de programacin CPL durante los aos
60. El primer compilador implementado fue escrito en 1967 mientras Richards visitaba el MIT. El
lenguaje fue descrito por primera vez en un proyecto presentado en una conferencia informtica
en 1969. Aos despus, Dennis Ritchie lo utiliz como base para desarrollar B (que a su vez, ms
tarde dara lugar al popular lenguaje de programacin C). Befunge es un lenguaje de programacin
esotrico, funge-oide, reflexivo y basado en pila. Difiere de los lenguajes convencionales en que
los programas estn dispuestos en una parrilla bidimensional. Las instrucciones flecha dirigen el
control de flujo hacia arriba, abajo, izquierda o derecha, y los bucles se construyen dirigiendo el
control de flujo en crculo.
Delphi es un entorno de desarrollo de software diseado para la programacin de propsito
general con nfasis en la programacin visual. En Delphi se utiliza como lenguaje de programacin
una versin moderna de Pascal llamada Object Pascal. Es producido comercialmente por la
empresa estadounidense Code Gear?. En sus diferentes variantes, permite producir archivos
ejecutables para Windows, Linux y la plataforma .NET.
Visual Basic es un lenguaje de programacin desarrollado por Alan Cooper para Microsoft. El
lenguaje de programacin es un dialecto de BASIC, con importantes aadidos. Su primera versin
fue presentada en 1991 con la intencin de simplificar la programacin utilizando un ambiente de
desarrollo completamente grfico que facilitara la creacin de interfaces grficas y en cierta
medida tambin la programacin misma.
Visual Fox Pro es un lenguaje de programacin orientado a objetos y procedural, un Sistema
14
Gestor de Bases de datos o Database Management System (DBMS), y desde la versin 7.0, un
Sistema administrador de bases de datos relacionales, producido por Microsoft.
Lua es un lenguaje de extensin, suficientemente compacto para usarse en diferentes
plataformas. En lua las variables no tienen tipo, slo los datos y pueden ser lgicos, enteros,
nmeros con punto flotante o cadenas. Estructuras de datos como matrices, conjuntos, tablas
hash, listas y registros pueden ser representadas utlizando la nica estructura de datos de Lua: la
tabla. La semntica de Lua puede ser extendida y modificada redefiniendo funciones de las
estructuras de datos utilizando metatablas. Lua ofrece soporte para funciones de orden superior,
colector de basura. Combinando todo lo anterior, es posible utilizar Lua en programacin
orientada a objetos.
15
16
Una caracterstica distintiva, por ejemplo, que convierte a C en un lenguaje de medio nivel y al
Pascal en un lenguaje de alto nivel es que en el primero es posible manejar las letras como si
fueran nmeros (en Pascal no), y por el contrario en Pascal es posible concatenar las cadenas de
caracteres con el operador suma y copiarlas con la asignacin (en C es el usuario el responsable de
llamar a las funciones correspondientes).
Lenguaje de bajo nivel
Un lenguaje de programacin de bajo nivel es el que proporciona poca o ninguna abstraccin del
microprocesador de un ordenador. Consecuentemente es fcilmente trasladado a lenguaje de
mquina.
La palabra bajo no implica que el lenguaje sea inferior a un lenguaje de alto nivel; se refiere a la
reducida abstraccin entre el lenguaje y el hardware. Uso: ventajas e inconvenientes.
En general se utiliza este tipo de lenguaje para programar controladores (drivers).
La programacin en un lenguaje de bajo nivel como el lenguaje de la mquina o el lenguaje
simblico tiene ciertas ventajas:
Mayor adaptacin al equipo.
Posibilidad de obtener la mxima velocidad con mnimo uso de memoria.
Pero tambin tiene importantes inconvenientes:
Imposibilidad de escribir cdigo independiente de la mquina.
Mayor dificultad en la programacin y en la comprensin de los programas.
Primera generacin
El lenguaje de programacin de primera generacin (por sus siglas en ingls, 1GL), es el lenguaje
de cdigo mquina. Es el nico lenguaje que un microprocesador entiende de forma nativa. El
lenguaje mquina no puede ser escrito o ledo usando un editor de texto, y por lo tanto es raro
que una persona lo use directamente.
Segunda generacin
El lenguaje de programacin de segunda generacin (por sus siglas en ingls, 2GL), es el lenguaje
ensamblador. Se considera de segunda generacin porque, aunque no es lenguaje nativo del
microprocesador, un programador de lenguaje ensamblador debe entender la arquitectura del
microprocesador (cosas como sus registros e instrucciones).
17
18
19
Un intrprete es un traductor de lenguaje, igual que un compilador, pero difiere de ste en que
ejecuta el programa fuente inmediatamente, en vez de generar un cdigo objeto que se ejecuta
despus de que se completa la traduccin. En principio, cualquier lenguaje de programacin se
puede interpretar o compilar, pero se puede preferir un intrprete a un compilador dependiendo
del lenguaje que se est usando y de la situacin en la cual se presenta la traduccin.
20
21
Actualmente quizs el uso del lenguaje ensamblador pueda parecer a simple vista carente de uso e
importancia, pero en un anlisis ms concienzudo se puede ver que es de hecho un lenguaje que
sirve de base para comprender la programacin de alto y medio nivel, si bien ser raro
encontrarme con aplicaciones reales que exijan una programacin rigurosa en ensamblador, el
entendimiento del mismo ayuda a ver de una manera ms clara el comportamiento que tiene un
lenguaje de programacin con un microprocesador.
El lenguaje ensamblador brinda tambin la posibilidad de ver de una manera ms clara como
funciona un procesador y como interacta realmente con un ser humano y con las instrucciones
que este le brinda a travs de un lenguaje de alto nivel que eventualmente se transforma en
lenguaje ensamblador.
Al ser el lenguaje ensamblador un leguaje que se ejecuta directamente sobre el procesador nos
proporciona a nosotros como estudiantes un mejor entendimiento del funcionamiento del mismo.
El lenguaje ensamblador nos permite adems tener un control absoluto sobre la computadora, los
programas en ensamblador son adems rpidos y ultra ligeros, adems ocupan casi nada de
espacio en memoria ya que no requieren la carga de libreras complejas adicionales.
Adems el lenguaje ensamblador posee la caracterstica de poder controlar completamente las
funcionalidades de la mquina, mientras que los lenguajes de alto nivel ofrecen severas limitantes
en este sentido.
El lenguaje ensamblador permite al programador realizar tareas muy tcnicas que resultaran muy
difciles si no es que imposibles mediante el uso de lenguajes de alto nivel.
22
Administrador de memoria:
Su tarea consiste en llevar un registro de las partes de memoria que se estn utilizando y las que
no, con el fin de asignar espacio en memoria a los procesos cuando stos la necesiten y
liberndola cuando terminen, as como administrar el intercambio entre la memoria principal y el
disco.
Los sistemas de administracin de memoria se pueden clasificar en dos tipos: los que desplazan los
procesos de la memoria principal al disco y viceversa durante la ejecucin y los que no.
El propsito principal de una computadora es el de ejecutar programas, estos programas, junto
con la informacin que accedan deben de estar en la memoria principal (al menos parcialmente)
durante la ejecucin.
Para optimizar el uso del CPU y de la memoria, el sistema operativo debe de tener varios procesos
a la vez en la memoria principal, para lo cual dispone de varias opciones de administracin tanto
del procesador como de la memoria. la seleccin de uno de ellos depende principalmente del
diseo del hardware para el sistema. a continuacin se observarn los puntos correspondientes a
la administracin de la memoria.
Aspectos generales
Memoria real
La memoria real o principal es en donde son ejecutados los programas y procesos de una
computadora y es el espacio real que existe en memoria para que se ejecuten los procesos. por lo
general esta memoria es de mayor costo que la memoria secundaria, pero el acceso a la
informacin contenida en ella es de ms rpido acceso. solo la memoria cache es ms rpida que
la principal, pero su costo es a su vez mayor.
23
Memoria virtual
El trmino memoria virtual se asocia a dos conceptos que normalmente a parecen unidos:
El uso de almacenamiento secundario para ofrecer al conjunto de las aplicaciones la ilusin de
tener ms memoria RAM de la que realmente hay en el sistema. Esta ilusin de existe tanto a nivel
del sistema, es decir, teniendo en ejecucin ms aplicaciones de las que realmente caben en la
memoria principal, sin que por ello cada aplicacin individual pueda usar ms memoria de la que
realmente hay o incluso de forma ms general, ofreciendo a cada aplicacin ms memoria de la
que existe fsicamente en la mquina.
Ofrecer a las aplicaciones la ilusin de que estn solas en el sistema, y que por lo tanto, pueden
usar el espacio de direcciones completo. Esta tcnica facilita enormemente la generacin de
cdigo, puesto que el compilador no tiene por qu preocuparse sobre dnde residir la aplicacin
cuando se ejecute.
24
2.3 DIRECCIONAMIENTO
Los llamados modos de direccionamiento son las diferentes maneras de especificar en informtica
un operando dentro de una instruccin en lenguaje ensamblador.
Un modo de direccionamiento especifica la forma de calcular la direccin de memoria efectiva de
un operando mediante el uso de la informacin contenida en registros y / o constantes, contenida
dentro de una instruccin de la mquina o en otra parte.
Diferentes arquitecturas de computadores varan mucho en cuanto al nmero de modos de
direccionamiento que ofrecen desde el hardware. Eliminar los modos de direccionamiento ms
complejos podra presentar una serie de beneficios, aunque podra requerir de instrucciones
adicionales, e incluso de otro registro. Se ha comprobado que el diseo de CPUs segmentadas es
mucho ms fcil si los nicos modos de direccionamiento que proporcionan son simples.
La mayora de las mquinas RISC disponen de apenas cinco modos de direccionamiento simple,
mientras que otras mquinas CISC tales como el DEC VAX tienen ms de una docena de modos de
direccionamiento, algunos de ellos demasiado complejos. El mainframe IBM System/360 dispona
nicamente de tres modos de direccionamiento; algunos ms fueron aadidos posteriormente
para el System/390.
Cuando existen solo unos cuantos modos, estos van codificados directamente dentro de la propia
instruccin (Un ejemplo lo podemos encontrar en el IBM/390, y en la mayora de los RISC). Sin
embargo, cuando hay demasiados modos, a menudo suele reservarse un campo especfico en la
propia instruccin, para especificar dicho modo de direccionamiento. El DEC VAX permita
mltiples operandos en memoria en la mayora de sus instrucciones, y reservaba los primeros bits
de cada operando para indicar el modo de direccionamiento de ese operando en particular.
25
26
Cualquiera sea el proceso utilizado y aplicado al desarrollo del software (RUP, FDD, XP, etc), y
casi independientemente de l, siempre se debe aplicar un modelo de ciclo de vida.6
Se estima que, del total de proyectos software grandes emprendidos, un 28% fracasan, un 46%
caen en severas modificaciones que lo retrasan y un 26% son totalmente exitosos. 7
Cuando un proyecto fracasa, rara vez es debido a fallas tcnicas, la principal causa de fallos y
fracasos es la falta de aplicacin de una buena metodologa o proceso de desarrollo. Entre otras,
una fuerte tendencia, desde hace pocas dcadas, es mejorar las metodologas o procesos de
desarrollo, o crear nuevas y concientizar a los profesionales de la informtica a su utilizacin
adecuada. Normalmente los especialistas en el estudio y desarrollo de estas reas (metodologas)
y afines (tales como modelos y hasta la gestin misma de los proyectos) son los ingenieros en
software, es su orientacin. Los especialistas en cualquier otra rea de desarrollo informtico
(analista, programador, Lic. en informtica, ingeniero en informtica, ingeniero de sistemas, etc.)
normalmente aplican sus conocimientos especializados pero utilizando modelos, paradigmas y
procesos ya elaborados.
Es comn para el desarrollo de software de mediano porte que los equipos humanos involucrados
apliquen metodologas propias, normalmente un hbrido de los procesos anteriores y a veces
con criterios propios.
El proceso de desarrollo puede involucrar numerosas y variadas tareas,6 desde lo administrativo,
pasando por lo tcnico y hasta la gestin y el gerenciamiento. Pero, casi rigurosamente, siempre
se cumplen ciertas etapas mnimas; las que se pueden resumir como sigue:
Captura, e licitacin, especificacin y anlisis de requisitos (ERS)
Diseo
Codificacin
Pruebas (unitarias y de integracin)
Instalacin y paso a produccin
Mantenimiento
En las anteriores etapas pueden variar ligeramente sus nombres, o ser ms globales, o
contrariamente, ser ms refinadas; por ejemplo indicar como una nica fase (a los fines
documentales e interpretativos) de anlisis y diseo; o indicar como implementacin lo que
est dicho como codificacin; pero en rigor, todas existen e incluyen, bsicamente, las mismas
tareas especficas.
27
28
2.6 INSTRUCCIONES
Los microprocesadores Intel 80x86 disponen de las instrucciones add y sub para realizar sumas y
restas respectivamente, estas instrucciones pueden trabajar sobre operandos de longitud byte
(8bits),Word (16bits), double-word (32bits) y quad-word (64bits). Los operandos pueden ser
nmeros consigno o sin signo, en caso de ser nmeros con signo stos son almacenados en su
forma de complemento a 2. Se debe observar que estas instrucciones realizan cambios en los bits
del registro de banderas, algunas banderas modificadas segn el resultado de la operacin son las
banderas SF, ZF, OF, CF, PF y DF.
Cada instruccin add tiene la forma:
Add destino, fuente
Cuando esta instruccin es ejecutada el valor que se encuentra en fuente es sumado al valor que
se encuentra en destino, sobrescribiendo el valor que originalmente se encontraba en destino
Por el nuevo valor resultado de la adicin.
Cada instruccin sub tiene la forma:
Sub destino, fuente
Cuando esta instruccin es ejecutada el valor que se encuentra en fuente es restado del valor que
se encuentra en destino, sobrescribiendo el valor que originalmente se encontraba en destino
por el nuevo valor resultado de la sustraccin. Debe observar que tanto para la suma como para la
resta el valor de destino es cambiado por el valor resultado de la operacin, a diferencia del valor
de fuente que permanece inalterado.
29
30
Si se trata de un registro doble, se decrementa el de orden bajo y, si esto hace que pase a valer
255 (FFh), se decrementa tambin el de orden alto.
Si el registro incrementado o decrementado es de 8 bits, resultan afectados los indicadores del
registro "F".
COMPARACIONES:
Estas instrucciones permiten comparar el contenido del acumulador con un nmero. Para ello, se
resta el nmero del contenido del acumulador, pero el resultado no se almacena en ninguna
parte, simplemente, se alteran determinados flags del registro "F", lo que nos indica si el nmero
era menor, igual o mayor que el contenido del acumulador. Si era igual, se pone a "1" el flag "Z"
(indicador de "cero"). Si el nmero era mayor, se pone a "1" el flag "S" (indicador de "signo").
AJUSTE DECIMAL:
Esta instruccin realiza un ajuste del contenido del acumulador para que, en vez de estar
comprendido entre "00h" y "FFh", lo est entre "00h" y "99h". Si se produce acarreo, se indica
mediante el flag correspondiente. Para realizar esta operacin se toma en cuenta el estado de los
indicadores de "acarreo" (C) y "semi-acarreo" (H). Su finalidad es la de permitir realizar
operaciones en "BCD" (Decimal Codificado en Binario).
COMPLEMENTO:
Consiste en realizar un "complemento a 1" del acumulador, es decir, cambiar los "unos" por
"ceros" y los "ceros" por "unos".
NEGACIN:
Consiste en realizar un "complemento a 2" del acumulador, es decir, realizar un "complemento a
1" y, luego, sumarle "1". Lo que se obtiene es el "negativo" del nmero que tenamos en el
acumulador. El efecto es el mismo que si restramos el acumulador de "cero".
EL FLAG DE ACARREO:
Existen dos instrucciones que afectan al indicador de acarreo del registro "F", es posible ponerlo a
"1" o "complementarlo" (ponerlo a "1" si era "0" y viceversa). No se ha previsto una instruccin
para poner a "0" el flag de acarreo, dado que esto se puede conseguir haciendo un "AND" o un
"OR" del acumulador consigo mismo.
31
32
Instruccin
Descripcin
jne etiqueta
jg etiqueta
jng etiqueta
jge etiqueta
jnl etiqueta
jle etiqueta
Salto negativo
33
34
2.7 MACROS
Una de las principales desventajas de la programacin en lenguaje ensamblador es la repeticin
constante de ciertos grupos de instrucciones. Por ejemplo el siguiente conjunto de instrucciones
nos permite imprimir una variable de tipo cadena en la pantalla:
La mejor solucin en estos casos es el uso de las MACROS. Una macro es un conjunto de
instrucciones que se agrupan bajo un nombre descriptivo (macroinstruccin) y que slo es
necesario declarar una vez (macrodefinicin).
Una vez que la macro ha sido declarada, slo es necesario indicar su nombre en el cuerpo del
programa y el ensamblador se encargara de reemplazar la macroinstruccin por las instrucciones
de la macro (expansin de la macro).
.MACRO Imprime_Cad(Cadena)
Lea DX,Cadena
Mov Ah,09h
35
Int 21h
ENDM
Parmetros y etiquetas
Dentro de las propiedades ms importantes de las macros se deben destacar la posibilidad de
utilizar parmetros y etiquetas.
Los parmetros permiten que una misma macro pueda ser usada bajo diferentes condiciones, por
ejemplo, se puede crear una macro para posicionar el cursor en diferentes coordenadas de la
pantalla e indicar sus coordenadas por medio de parmetros.
Tambin existen situaciones en las que los parmetros no son necesarios, es por esta razn que
los parmetros son opcionales en la declaracin de la macro.
Esta macro realiza una pausa en el programa hasta que una tecla es ;presionada. Es el equivalente
del readkey en Pascal.
.MACRO tecla
mov ah,10h
int 16h
ENDM
Por otro lado, las etiquetas tambin son tiles dentro de las macros. Suponga que se desea crear
una macro que imprima una cadena un numero n de veces, esta macro podra ser declarada de la
siguiente forma:
36
ENDM
Ensamble de macros
Como ya se mencion antes, una macro es declarada una sola vez y puede ser llamada cuantas
veces sea necesario dentro del cuerpo del programa.
Cada vez que el ensamblador encuentra un macroinstruccin, verifica si sta fue declarada; si esta
verificacin es exitosa, el ensamblador toma las instrucciones del cuerpo de la macro y las
reemplaza en el lugar donde la macro fue llamada.
Ventajas y desventajas
Si bien es cierto que las macros proporcionan mayor flexibilidad a la hora de programar, tambin
es cierto que tienen algunas desventajas.
La siguiente es una lista de las principales ventajas y desventajas del uso de las macros.
Ventajas:
Desventajas:
Las macros deben ser bien planeadas para evitar la redundancia de cdigo.
37
2.8 INTERRUPCIONES
Una interrupcin es el rompimiento en la secuencia de un programa para ejecutar un programa
especial llamando una rutina deservicio cuya caracterstica principal es que al finalizar regresa al
punto donde se interrumpi el programa.
Dentro de una computadora existen dos clases de interrupciones:
Interrupciones por software: Son aquellas programadas por el usuario, es decir, el usuario decide
cuando y donde ejecutarlas, generalmente son usadas para realizar entrada y salida.
Interrupciones por hardware: Son aquellas que son provocadas por dispositivos externos al
procesador su caracterstica principal es que no son programadas, esto es, pueden ocurrir en
cualquier momento en el programa. Existen dos clases de interrupciones de este tipo:
Interrupciones por hardware enmascarables: Aquellas en las que el usuario decide si quiere o no
ser interrumpido.
38
39