4. Notación posicional En esta notación el dígito de más a la izquierda (an-1) el que “pesa” más se denomina dígito más significativo En esta notación el dígito más a la derecha (a-m), es decir, el que “pesa” menos se le llama dígito menos significativo
9. RAM Se puede usar para leer y escribir datos en ella Contador del programa ROM Sirve para la lectura de datos solamente Puertos Sirven para la entrada o salida de datos Aumenta el contador del programa Leva las direcciones de los registros Control Convierte los datos de instrucción en código para que el procesador lo reconozca Oscilador o reloj del procesador Hace las pulsaciones para que el procesador haga operaciones Memoria principal ALU Arithmetic Logic Unit
10. ¿Que es la gestión de memoria? La parte del sistema operativo que administra la memoria se llama administrador de memoria y su labor consiste llevar un registro de las partes de memoria que se estén utilizando y aquellas que no, con el fin de asignar espacio en memoria a los procesos cuando estos lo necesiten y liberándola cuando terminen.
11. Direcciones lógicas y direcciones físicas El concepto de espacio de direcciones lógicas vinculado a un espacio de direcciones físicas separado es crucial para una buena gestión de memoria Dirección lógica : es la dirección que genera el proceso; también se conoce como dirección virtual
12. Traducción de direcciones . Cuando un proceso es asignada al estado de ejecución, un registro base es cargado con la dirección física de inicio del proceso .Un registro limite es cargado con la dirección física final .Cuando una dirección relativa es encontrada es relacionada al registro base y comparada con el registro limite
13. Registro base: determina la dirección física donde se comienza el espacio de memoria del proceso Registro limite: establece la dirección donde se determina el espacio de memoria del proceso en relación al registro base
14. A QUE SE LE LLAMA PROGRAMACION DE SISTEMAS 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.
16. PRIMERA GENERACIÓN Lo constituyen los lenguajes maquina. Estos se consideran como de bajo nivel por que no existe un programa de codificación menos complicado que el que utiliza los símbolos binarios 1 y 0. ASCII, utiliza ceros y unos para representar letras del alfabeto.
17. SEGUNDA GENERACIÓN lenguaje ensamblador. Los lenguajes ensambladores usan códigos como: a para agregar subwf restara una cantidad mvc para mover btfss comparar y así sucesivamente. Los programas de software de sistemas tales como los sistemas operativos y los programas de utilidad se escriben con frecuencia en un lenguaje ensamblador.
18. TERCERA GENERACIÓN Son relativamente independientes del hardware. el programa se puede utilizar en computadoras diferentes Primeros lenguajes de alto nivel Cobol(Common Business Oriented Language)1958 Algol (Algorithmic Language) 1960 Apl (A Programming Language)1961 Basic(Beginners All purpose Symbolic Instruction Code) 1964 C 1970 Pascal()
20. Ensambladores Se llaman ensambladores los programas encargados de traducir los programas escritos en ensamblador a código binario.
21. Compiladores El compilador es un programa que traduce el código de alto nivel a código binario. Es, por tanto, parecido al ensamblador, pero mucho más complejo, ya que las diferencias entre los lenguajes de alto nivel y el código binario son muy grandes.
22. Intérpretes El intérprete es un programa que traduce el código de alto nivel a código binario pero, a diferencia del compilador, lo hace en tiempo de ejecución. Es decir, no se hace un proceso previo de traducción de todo el programa fuente a binario, sino que se va traduciendo y ejecutando instrucción por instrucción.
23. Compiladores frente a intérpretes Un intérprete Un compilador facilita la búsqueda de errores, pues la ejecución de un programa puede interrumpirse en cualquier momento para estudiar el entorno. El programa puede modificarse sobre la marcha, sin necesidad de volver a comenzar la ejecución. permite utilizar funciones y operadores más potentes, como por ejemplo ejecutar código contenido en una variable en forma de cadenas de caracteres. suele generar programas más rápidos y eficientes, ya que el análisis del lenguaje fuente se hace una sola vez, durante la generación del programa equivalente. Cualquier lenguaje puede ser ejecutado tanto vía intérprete o vía compilador, pero algunos lenguajes suelen asociarse más a una vía que a la otra, y por esto son llamados "lenguajes interpretados" o "lenguajes compilados" respectivamente.
24. LIGADORES Un ligador es un programa de sistema que combina dos o mas programas objeto separados y permite que se hagan referencias unos a otros, o sea, que cada uno de estos programas pueden hacer referencia a código ó variables de los otros programas con los que está enlazado.
25. CARGADOR Un cargador es un programa que coloca en la memoria para su ejecución, el programa guardado en algún dispositivo de almacenamiento secundario. El cargador consiste en un juego de instrucciones que permiten al dispositivo de entrada ( teclado ó unidad de cinta ) asignar la dirección de inicio de la memoria y asegurar que el computador leerá el programa y lo cargara byte a byte.
26. La información que hace que el hardware de la computadora realice una determinada actividad se llama instrucción Se denomina lenguaje máquina a la serie de datos que la parte física de la computadora o hardware, es capaz de interpretar. Las instrucciones así formadas equivalen a acciones elementales de la máquina Lenguaje de bajo nivel La segunda parte de la instrucción es el operando, que indica la computadora dónde hallar o almacenar los datos y otras instrucciones que se van a manipular. El lenguaje máquina de una computadora consta de cadenas de números binarios (ceros y unos) La primera es el comando u operación, que dice a la computadora cuál es la función que va a realizar.
27. Apareció a principios de los 50 con el fin de facilitar la labor de los programadores Uno de los primeros pasos para mejorar el proceso de preparación de programas fue sustituir los códigos de operaciones numéricos del lenguaje de máquina por símbolos alfabéticos LENGUAJE ENSAMBLADOR se desarrollaron códigos nemotécnicos para las operaciones y direcciones simbólicas. ESTRUCTURA Bucle Librerías Inicio Código Fin Etiquetas
28. Las instrucciones más importantes que podemos manejar son las que proporciona el fabricante de un microprocesador para su producto. Directriz EQU Sirve para “igualar” la posición de cualquier registro a un nombre personalizado que le hayamos dado nosotros Directriz ORG Esta directriz dice al ensamblador a partir de que posición de memoria se situarán las siguientes instrucciones. Directriz INCLUDE Esta instrucción índica qué archivos deberán tomarse en cuenta a la hora de compilar el código. Directriz END Esta debe ir incluida una sola vez en todo el programa. En concreto, esta debe situarse al final, para indicar al ensamblador que el programa ha finalizado. DIRECTRICES DEL ENSAMBLADOR Directriz LISTEste comando sirve para que el compilador tenga en cuenta sobre qué procesador se está trabajando. Este comando debe estar en todo proyecto, situado debajo del “include”, con la siguiente sintaxis. LIST P=16F627A Directriz #DEFINEDefine se usa para crear pequeñas macros. Con estas macros podremos poner nombres a pequeños fragmentos de código que nos facilitarán la realización y comprensión del algoritmo. Directriz TITLEEsta directriz no sirve de mucho, pero será útil para aquellos que quieran que el compilador tenga en cuenta el título que le ha puesto a su código. Directriz TITLEEsta directriz no sirve de mucho, pero será útil para aquellos que quieran que el compilador tenga en cuenta el título que le ha puesto a su código.
29. Para utilizar una macro, primero hay que declararla. En la declaración se establece el nombre que se le dará a la macro y el conjunto de instrucciones que representará. El programador escribirá el nombre de la macro en cada uno de los lugares donde se requiera la aplicación de las instrucciones por ella representadas. La declaración se realiza una sola vez, pero la utilización o invocación a la macro (macro llamada) puede hacerse cuantas veces sea necesario. Con el fin de evitar al programador la tediosa repetición de partes idénticas de un programa, los ensambladores y compiladores cuentan con macro procesadores que permiten definir una abreviatura para representar una parte de un programa y utilizar esa abreviatura cuantas veces sea necesario. La utilización de macros posibilita la reducción del tamaño del código fuente, aunque el código objeto tiende a ser mayor que cuando se utilizan funciones. MACROZ EN PROGRAMACION Es tan común el empleo de macroinstrucciones que se les considera como una extensión de los lenguajes. El macro procesador se encarga, en una primera pasada, de registrar todas las declaraciones de macros y de rastrear el programa fuente para detectar todas las macro llamadas. El macro procesador elabora dos tablas para el manejo de las
30. Sintaxis de una macro La declaración de la macro se lleva a cabo de la siguiente forma: NombreMacro MACRO [parametro1, parametro2...] Aunque se tiene la funcionalidad de los parametros es posible crear una macro que no los necesite. Las partes que componen a una macro son: *Declaración de la macro *código de la macro *Directiva de terminación de la macro La directiva de terminación de la macro es: ENDM Posicion MACRO Fila, ColumnaPUSH AXPUSH BXPUSH DXMOV AH, 02HMOV DH, FilaMOV DL, ColumnaMOV BH, 0INT 10HPOP DXPOP BXPOP AXENDM
34. Procesar las directrices al ensamblador (las directrices son instrucciones o comandos dirigidos al ensamblador, que éste procesa y ejecuta al hallarlos en el programa en lenguaje de ensamblador; estas directrices no se traducen a lenguaje de máquina, si no que el ensamblador ejecuta alguna acción, como reservar memoria para variables, entre otras
37. Macroensambladores Son ensambladores que permiten el uso de macroinstrucciones (macros). Debido a su potencia, normalmente son programas robustos que no permanecen en memoria una vez generado el programa objeto. Ensambladores de una fase. Estos ensambladores leen una línea del programa fuente y la traducen directamente para producir una instrucción en lenguaje máquina o la ejecuta si se trata de una pseudoinstrucción. También va construyendo la tabla de símbolos a medida que van apareciendo las definiciones de variables, etiquetas, etc. Ensambladores Cruzados (Cross-Assembler). Se denominan así los ensambladores que se utilizan en una computadora que posee un procesador diferente al que tendrán las computadoras donde va a ejecutarse el programa objeto producido. TIPOS DE ENSAMBLADORES Ensambladores residentes. Son aquellos que permanecen en la memoria principal de la computadora y cargan, para su ejecución, al programa objeto producido. Micro-ensambladores El programa que ayuda a realizar este microprograma se llama micro-ensamblador. Existen procesadores que permiten la modificación de sus microprogramas, para lo cual se utilizan micro-ensambladores. Ensambladores de dos fases. Los ensambladores de dos fases se denominan así debido a que realizan la traducción en dos etapas. En la primera fase, leen el programa fuente y construyen una tabla de símbolos; de esta manera, en la segunda fase, vuelven a leer el programa fuente y pueden ir traduciendo totalmente, puesto que conocen la totalidad de los símbolos utilizados y las posiciones que se les ha asignado. Estos ensambladores son los más utilizados en la actualidad.