PROGRAMACION BASICA

Description

Mind Map on PROGRAMACION BASICA, created by lunag_101 on 10/06/2014.
lunag_101
Mind Map by lunag_101, updated more than 1 year ago
lunag_101
Created by lunag_101 almost 10 years ago
173
0

Resource summary

PROGRAMACION BASICA
  1. El término ensamblador se refiere a un tipo de programa informático que se encarga de traducir un fichero fuente escrito en un lenguaje ensamblador, a un fichero objeto que contiene código máquina, ejecutable directamente por el microprocesador. El programa lee el fichero escrito en lenguaje ensamblador y sustituye cada uno de los códigos nemotécnicos que aparecen por su código de operación correspondiente en sistema binario para la plataforma que se eligió como destino en las opciones específicas del ensamblador.
    1. Podemos distinguir entre dos tipos de ensambladores:
      1. Ensambladores modulares 32-bits o de alto nivel . Son ensambladores que aparecieron como respuesta a una nueva arquitectura de procesadores de 32 bits, muchos de ellos teniendo compatibilidad hacia atrás pudiendo trabajar con programas con estructuras de 16 bits. Además de realizar la misma tarea que los anteriores, permitiendo también el uso de macros, permiten utilizar estructuras de programación más complejas propias de los lenguajes de alto nivel.
        1. Ensambladores básicos. Son de muy bajo nivel, y su tarea consiste básicamente en ofrecer nombres simbólicos a las distintas instrucciones, parámetros y cosas tales como los modos.
        2. Ciclos Numéricos
          1. Un ciclo, conocido también como iteración, es la repetición de un proceso un cierto número de veces hasta que alguna condición se cumpla. En estos ciclos se utilizan los brincos "condicionales" basados en el estado de las banderas. Por ejemplo la instrucción jnz que salta solamente si el resultado de una operación es diferente de cero y la instrucción jz que salta si el resultado de la operación es cero
          2. Saltos
            1. El salto sin condiciones, con el que podremos cambiarel control a cualquier punto del programa. Sería como el "Goto" del Basic, simplemente transferir el control a otro punto del programa. La orden esJMP (de Jump, salto) Si se recuerdan los registros CS:IP, se podrá ver qué es lo que hace realmente la instrucción, y no es más que incrementar o decrementar IP para llegar a la zona del programa a la que queremos transferir el control (IP es el Offset que indica la zona de memoria que contiene la siguiente instrucción a ejecutar, y CS el segmento). El formato más sencillo para el salto sería JMP 03424h, lo que saltaría a esa zona. Pero es algo complejo calcular en qué dirección va a estar esa instrucción, con lo que utilizaremos etiquetas.
              1. Los saltos podrían resumirse en un modo "Basic" de la manera IF-THEN-GOTO de forma que cuando se cumple una condición se salta a un sitio determinado. He aquí los tipos de saltos condicionales (las letras en mayúsculas son las instrucciones): JO: Jump if overflow. Salta si el flag de desbordamiento está a uno JNO: Jump if not overflow. Salta si el flag de desbordamiento está a cero. JC, JNAE, JB: Los tres sirven para lo mismo. Significan: Jump if Carry, Jump if Not Above or Equal y Jump if Below. Saltan por lo tanto si al haber una comparación el flag de acarreo se pone a 1; es entonces equivalente a < en una operación sin signo. JNC, JAE, JNB: Otros tres que valen exactamente para lo mismo. Jump if not Carry, Jump if Above or Equal y Jump if Not Below. Saltan por tanto si al haber una comparación el flag de acarreo vale 0, o sea, es equivalente al operador >=
            2. Ciclos Condicionales
              1. Las instrucciones de saltos condicional hacen que el control de flujo del programa salte a la instruccion cuya direccion esta especificada por su operando si cumple una condicion dada. Jcond direccion Cambia la direccion de la siguiente instruccion a ser ejecutada dependiendo del valor de ciertas banderas.
              2. Incremento y Decremento
                1. Son las mas básicas a la hora de hacer operaciones con registros INC: incrementar el valor de un registro o de cualquier posición en memoria, en una unidad y DEC lo decrementa. INC Ax Incrementa en una el valor de Ax DEC Ax Decrementa Ax, le resta uno.
                2. Instrucciones Aritmeticas
                  1. Suma y Resta 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). Cada instruccion add tiene la forma: add destino,fuente sub destino,fuente
                    1. Multiplicacion y Division Estas operaciones multiplican al acumulador por el operando indicado. Si el operando es de 8 bits (1byte), el acumulador es Al si el operando es de 16 bits, el acumulador de Ax. El resultado se almacena en Ax o en el par Dx-Ax respectivamente, si el operando es de 8 bits o de 16 bits. Para la division, el dividiendo ha de estar en Ax, y ser 16 bits por tanto. El divisor se indica en el operando, por ejemplo en Div Bl, este divisor estaria en Bl, se dividira Ax entre Bl y el resultado quedaria en Al, quedando el resto en Ah.
                    2. Manipulacion de la pila
                      1. La pila es un grupo de localidades de memoria que reservan con la finalidad de proporcionar un espacio para el almacenamiento temporal de informacion. La pila de los programas es del tipo LIFO (Last In First Out, ultimo en entrar primero en salir). Para controlar la pila el microprocesador cuenta con dos instrucciones basicas: Push "Meter", Pop "Sacar". cuando se ejecuta la instruccion Push, el contenido del operando se almacena en la ultima posicion de la pila.
                      2. Captura y Almacenamiento de datos.
                        1. Permiten la opcion de meter o introducir algun numero en un programa deceado, en el cual dando las instrucciones necesarias se pueden ademas de ser capturadas almacenarlas dentro del programa.
                        2. Ensamblador (y ligador) a utilizar
                          1. Un ligador, es un programa que enlaza todos los programas o módulos obteniendo lo que denominamos programa ejecutable. Es un programa que enlaza distintos módulos o programas que poseen subprogramas. Además incorporan las denominadas rutinas de librerías en caso de solicitarlas el propio programa.
                            1. Sus principales funciones son:
                              1. Enlazar código intermedio compilado independientemente en un solo módulo de carga resolviendo las diferencias entre Tokens. Incorpora las denominadas rutinas de librerías en caso de solicitarlas el propio programa. Su función es reducir procedimientos traducidos por separado y enlazarlos para que se ejecuten como una unidad llamada programa binario ejecutable.
                          2. Obtención de cadena con representación decimal
                            1. La representación del número decimal 1; 527 en los tres formatos decimales: . ASCII 31 35 32 37 (cuatro bytes) . BCD desempaquetado 01 05 02 07 (cuatro bytes) . BCD empaquetado 15 27 (dos bytes) El procesador realiza aritmética en valores ASCII y BCD un dígito a la vez. Ya que los datos son ingresados desde un teclado signican que están en formato ASCII, la representación en memoria de un número decimal ingresado tal como 1234 es 31323334H. Pero realizar aritmetica sobre tal número implica un tratamiento especial. Las instrucciones AAA y AAS realizan aritmética de manera directa sobre números ASCCI
                            2. Captura y almacenamiento de datos numéricos
                              1. en el lenguaje ensamblador nos permite la opción de meter o introducir algún numero en un programa deceado , en el cual dando las instrucciones necesarias se pueden además de ser capturadas almacenarlas dentro del programa. Para la introducción de los datos ya sea numéricos o carácter es necesario la interaccion a través de un dispositivo como : teclado, raton, monitor,etc. Cuando un programa tiene mas variables que registros, el compilador almacena las variables mas utilizadas en los registros, y las restantes en memoria: derramar registros (spilling) Solo las instrucciones de carga y almacenamiento acceden a memoria , según los cálculos efectuados sobre valores en los registros. alineación: una cantidad esta alineada si su dirección de memoria es un múltiplo de su tamaño en bytes. casi todas las instrucciones de carga y almacenamiento operan solo sobre datos alineados. instrucciones para alinear datos o alineados son : lwl , lwr, swl y swr.
                              2. Operaciones básicas sobre archivos de disco
                                Show full summary Hide full summary

                                Similar

                                Estructura selectiva múltiples switch() case
                                gloria sánchez
                                RA 1.1 Identifica los elementos y las características de un programa desarrollado en lenguaje C, de acuerdo con estándares internacionales.
                                gloria patricia sánchez sánchez
                                Fundamentos teóricos de programación
                                Knigth Masters
                                SEGURIDAD DE DATOS GRUPO:18
                                Miguel Angel Vaz9177
                                Evaluación RA 1.1 Identifica los elementos y las características de un programa desarrollado en lenguaje C, de acuerdo con estándares internacionales.
                                gloria sánchez
                                Estructura repetitiva for ()
                                gloria sánchez
                                Examen de Programación Visual, primer ordinario
                                alejarellator
                                Ejemplo de estructura if () doble
                                gloria sánchez
                                Estructura repetitiva while ()
                                gloria sánchez
                                Computadora
                                llaca1