SlideShare una empresa de Scribd logo
1 de 42
23/07/15 Profesor Pedro Contreras Flores 1
Arranque de un Sistema Operativo
mediante Lenguaje Assembler
Universidad de Atacama
Facultad de Ingeniería
DIICC
23/07/15 Profesor Pedro Contreras Flores 2
Temario
1. Introducción
 Sistemas Operativos
 Lenguaje ensamblador y programación
2. Sectores de arranque
 Estructura
 Funcionamiento
3. Caso Práctico
4. Conclusiones
23/07/15 Profesor Pedro Contreras Flores 3
Introducción
Parte 1
23/07/15 Profesor Pedro Contreras Flores 4
Conocimientos previos
 Unidades de información
 Celdas especiales (registros), de 6 a 8 flip-flops
(almacena niveles de voltaje 0.5 volts a 5 volees ),
Bits (binary digits), nibbles (4 bits), byte (8 bits),
palabra (16 bits)
 RAM, ROM
 Sistemas numéricos
 Decimal, Binario, Hexadecimal
 Texto, digitos, punto flotante
 ASCII, Método BCD
 Arquitectura Van Newman
 Software, hardware, firmware, middleware
 Cpu y registros internos
23/07/15 Profesor Pedro Contreras Flores 5
Funcionamiento de un S.O.
Programa que supervisa el funcionamiento
de otros programas y que controla el uso del
hardware
Tareas
 Administra memoria
 Administrar CPU (procesador)
 Administrar dispositivos de ES
 Administrar información (datos)
 Administrar comunicación con operador
Tipos
 Monoprogramables, Multiprogramables,
Tiempo Compartido, Multiprocesamiento.
23/07/15 Profesor Pedro Contreras Flores 6
Integración
USUARIO
APLICACIONES
SISTEMAS OPERATIVOS
HARDWARE
Resultado Ordenes
Respuestas Requerimientos
Respuestas Instrucciones
23/07/15 Profesor Pedro Contreras Flores 7
Ejemplo de Microprocesadores Intel
 Microprocesador 4004
 Microprocesador 8008
 Microprocesador 8080
 Microprocesador 8085
 Microprocesadores 8086 y 8088
 Coprocesador matemático 8087
 Microprocesadores 80186 y 80188
 Coprocesador matemático 80C187
 Microprocesador 80286
 Coprocesador matemático 80287
 Microprocesador 80386
 Coprocesador matemático 80387
 Microprocesador 80486
 Microprocesador Pentium
23/07/15 Profesor Pedro Contreras Flores 8
Estructura del i8086
 El Microprocesador 8086 tiene catorce registros de 16 bits.
Dichos registros son:
 Registros de datos
 Registros de segmento
 Registros de punteros de pila
 Registros índices
 Registro de puntero de instrucciones
 Registro de flags de instrucciones
23/07/15 Profesor Pedro Contreras Flores 9
Banco de Registros
 Registros de Datos
 AX acumulador (AL , AH)
 BX registro base ()(
 CX registro contador
 DX registro de datos
 Punteros
 SP Puntero de pila
 BP Puntero base de pila
 SI registro índice fuente
 DI registro índice destino
 IP Contador de programa, apuntador de siguiente instrucción
 DS registro del segmento de datos
 ES registro del segmento extra
 SS registro del segmento de pila
 CS Registro del segmento de código
 NV, EI, PL, NZ, NA, PO, NC, DB
 F registro de banderas
23/07/15 Profesor Pedro Contreras Flores 10
Estructura de un programa en
ensamblador
DOSSEGDOSSEG
.MODEL SMALL.MODEL SMALL
.STACK 100H.STACK 100H
.DATA.DATA
.CODE.CODE
MOV AX, @DATAMOV AX, @DATA
MOV DS, AXMOV DS, AX
MOV AH,4CHMOV AH,4CH
INT 21HINT 21H
ENDEND
PREPARACION DEL PROGRAMA PARA
TRABAJAR CON EL MS-DOS
MODO DE CREACION DEL EJECUTABLE
DEFINICION DE LA PILA
DEFINICION DE LOS DATOS DEL PROGRAMA
INFORMACION DEL LUGAR EN EL QUE SE
ENCUENTRAN LOS DATOS
INSTRUCCIONES DEL PROGRAMA
INFORMACION AL SISTEMA OPERATIVO DE
QUE EL PROGRAMA HA FINALIZADO
FINAL DEL FICHERO FUENTE
23/07/15 Profesor Pedro Contreras Flores 11
Pasos para crear un fichero ejecutable
 Programación
 Los programas deben escribirse en un de texto ASCII u otro editor
 El nombre del fichero debe tener como extensión ASM
 Para ensamblar el fichero se debe teclear en línea de ordenes
 MASM NombreFichero.ASM
 Si no se producen errores, se debe enlazar tecleando en la línea de
órdenes:
 LINK NombreFichero.OBJ
23/07/15 Profesor Pedro Contreras Flores 12
Tipos de instrucciones
Tipo de instrucciónTipo de instrucción EfectoEfecto
Instrucciones de transferencia Mueven información entre registros,
registros y posiciones de memoria, o
entre registros y puertos de
entrada/salida
Instrucciones aritméticas Realizan operaciones aritméticas: sumas,
restas, etc.
Instrucciones de manejo de bits Realizan operaciones de desplazamiento,
rotación y lógicas sobre registros o
posiciones de memoria
Instrucciones de transferencia de control Sirven para controlar la ejecución de las
instrucciones del programa
Instrucciones de entrada y salida Mueven información entre registros y
puertos de entrada/salida
Instrucciones de manejo de cadenas Realizan operaciones entre sobre cadena
de bytes o palabras
Instrucciones de interrupción Provocan que el microprocesador realice
un servicio que se le solicita diferente a
las instrucciones que esta ejecutando
23/07/15 Profesor Pedro Contreras Flores 13
Instrucciones de transferencia de datos
•Nombre: MOV
•Formato: MOV destino, origen
•Descripción: Transfiere un byte o una palabra
desde el operando origen al operando destino.
•Ejemplos:
•MOV CX, 112h ;CX=112h
•MOV ES, AX ;ES=AX
•MOV AL, 12h ;AL=12h
•MOV PAL_MEM, BX ;PAL_MEM=BX
•Nombre: POP
•Formato: POP destino
•Descripción: Transfiere un byte o una palabra
desde la cima de la pila al operando destino y luego
decrementa la pila en 2.
•Ejemplos:
•POP BX ;Pone en BX el contenido
;de la cima de la pila
•Nombre: PUSH
•Formato: PUSH origen
•Descripción: Decrementa el puntero de la pila (SP)
en 2 y luego transfiere la palabra que se ha
especificado en el operando origen a lo alto de la
pila.
•Ejemplos:
•PUSH BX ;Pone BX en la pila
23/07/15 Profesor Pedro Contreras Flores 14
Instrucciones aritméticas (I)
•Nombre: ADD
•Formato: ADD destino, origen
•Descripción: Suma los dos operandos y el
resultado lo deja en el operando destino. Los
operandos deben ser del mismo tipo.
•Ejemplos:
•ADD CL, BL ;CL=CL+BL
•ADD AL, 12h ;AL=AL+12h
•ADD CX, DX ;CX=CX+DX
•Nombre: ADC
•Formato: ADC destino, origen
•Descripción: Suma los dos operandos más el posible
acarreo de la operación anterior. El resultado se
almacena en el operando destino. Además los
operandos deben ser del mismo tipo. Ejemplos:
•ADC CL, BL ;CL=CL+BL+CF
•ADC AL, 12h ;AL=AL+12h+CF
•ADC CX, DX ;CX=CX+DX+CF
•Nombre: SUB
•Formato: SUB destino, origen
•Descripción: Resta el operando origen del
operando destino. El resultado se almacena en el
operando destino y además, ambos operandos
deben ser del mismo tipo.
•Ejemplos:
•SUB CL, BL ;CL=CL-BL
•SUB AL, 12h ;AL=AL-12h
•SUB CX, DX ;CX=CX-DX
•Nombre: SBB
•Formato: SBB destino, origen
•Descripción: Resta el operando origen del
operando destino. Resta uno si el flag de acarreo
está activo. Los operandos deben ser del mismo
tipo. El resultado se almacena en el operando
destino.
•Ejemplos:
•SBB CX, DX ;CX=CX-DX-CF
23/07/15 Profesor Pedro Contreras Flores 15
Instrucciones aritméticas (II)
•Nombre: MUL
•Formato: MUL origen
•Descripción: Multiplica, sin considerar el signo el
acumulador (AL o AX) por el operando origen. Si el
operando origen es de tipo byte el resultado se
almacena en AX. Si es de tipo palabra se almacena
en DX (palabra superior) y AX (palabra inferior).
•Ejemplos:
• ;AX=1234h
• ;BX=1000h
•MUL BX ;DX=0123h, AX=4000h
•Nombre: IMUL
•Formato: IMUL origen
•Descripción: Multiplica, considerando el signo, el
acumulador AL o AX por el operando origen. Si el
operando fuente es un byte se almacena el resultado
en AX. Si se trata de una palabra, se almacena en DX
(palabra superior) y AX (palabra inferior).
•Ejemplos:
• ;AL=FEh=-2
• ;BL=12h=18
•IMUL BX ;AX=FFDCh=-36
•Nombre: DIV
•Formato: DIV origen
•Descripción: Divide, sin considerar el signo, el
acumulador (AL o AX) y su extensión (AH o DX) por
el operando origen. El resultado se almacena en AL
o AX, según el operando sea de un byte o de una
palabra. El resto se almacena en la extensión del
acumulador AH o DX.
•Ejemplos:
• ;AX=0013h=19
• ;BL=02h=2
•DIV BL ;AH=1, AL=9
•Nombre: IDIV
•Formato: IDIV origen
•Descripción: Divide, considerando el signo, el
acumulador AL o AX y su extensión (AH o DX) por
el operando origen. El resultado se almacena en AL
o AX, según el operando sea de un byte o de una
palabra. El resto se almacena en la extensión del
acumulador AH o DX.
•Ejemplos:
• ;AX=FFEDh=-19
• ;BL=02h=2
•IDIV BL ;AH=1, AL=F7h=-9
23/07/15 Profesor Pedro Contreras Flores 16
Instrucciones aritméticas (III)
•Nombre: INC
•Formato: INC destino
•Descripción: Suma una unidad al operando
destino. El operando puede ser de tipo byte o
palabra.
•Ejemplos:
• ;AX=1234h
•INC AX ;AX=1235h
•INC AH ;AH=13h
•Nombre: DEC
•Formato: DEC destino
•Descripción: Resta una unidad al operando
destino. El operando puede ser de tipo byte o
palabra.
•Ejemplos:
• ;AX=1234h
•DEC AX ;AX=1233h
•DEC AH ;AH=11h
•Nombre: NEG
•Formato: NEG destino
•Descripción: Cambia de signo mediante el
complemento a 2 del operando destino. Deja el
resultado en el operando destino. El operando
puede ser de tipo byte o palabra.
•Ejemplos:
•NEG AL ;Si AL=F2h antes de la operación,
después AL=0Eh
23/07/15 Profesor Pedro Contreras Flores 17
Editores-Compiladores-Enlazadores
Editores-Compiladores-EnlazadoresEditores-Compiladores-Enlazadores Sistema OperativoSistema Operativo
Debug de windows Windows
MASM32 V8, Macro Assembler Microsoft Windows
Batronix Prog-Studio 5.2 Windows
MPL V 1.02.00 Windows
Negatory Assembly Studio 2.0 (ml, link y rc) Windows
MiniIDE V1.16 Windows/Linux
VNBasm4 Windows
Turbo Assembler Windows
Power Assembler 32 1.2 Windows
Small Memory Footprint Editor 3.0b Windows
G C C 3.3.3 Linux
Xebot 0.8.00 Linux
23/07/15 Profesor Pedro Contreras Flores 18
Primer programa
 Este ejemplo realizara una suma de dos valores que se
introducirá directamente desde el programa
 Pasos:
 Debug
 Comando “a”, indica inicio de assembler
 Solo se comprueba valor de inicio (0100H) de aplicación .COM por
lo tanto se omite ingreso
 Luego se puede comenzar a ingresar las instrucciones , después de
ingresar “a0100” al debug
 “int 20” no es una instrucción propia de assembler sino de la cpu
23/07/15 Profesor Pedro Contreras Flores 19
Guardar y editar Primer Programa
 “h 10a 100” obtiene la
suma y resta de
direcciones, donde 10a
es la direccion final y 100
es la direccion inicial
 “n prueba.com” permite
colocar el nombre al
programa
 “rcx” permite cambiar el
tamaño del programa en
registro CX a 00a (10
bytes) (resta de
direcciones)
 “w” escribe programa en
el disco, indicando
tamaño escrito.
23/07/15 Profesor Pedro Contreras Flores 20
Condiciones, ciclos y bifurcaciones
loop
23/07/15 Profesor Pedro Contreras Flores 21
Condiciones, ciclos y bifurcaciones
jnz
23/07/15 Profesor Pedro Contreras Flores 22
Condiciones, ciclos y bifurcaciones
jcxz y jmp
23/07/15 Profesor Pedro Contreras Flores 23
Interrupciones
 Las interrupciones son
mensajes que los
dispositivos de e/s
envían a la CPU
indicando un estado y la
necesidad de un recurso
 Tipos de interrupciones
 Internas de hw
 Externas de hw
 De sw
 Cada interrupción tiene
diferentes funciones
23/07/15 Profesor Pedro Contreras Flores 24
Sector de Arranque de un
S.O.
Parte 2
23/07/15 Profesor Pedro Contreras Flores 25
Arranque de SO
 Existen 2 maneras de arrancar el sistema: en
frío o en caliente.
 En Frío: está apagado y lo arrancamos con el
'ON'. Cachea los dispositivos de entrada y de
salida, teclado, monitor, discos duros,
disquetes, memoria (RAM), etc. Después
busca el S.O. y lo carga, primero mira en la
disquetera y si hay disquete con sistema
operativo lo arranca; después mira el disco
duro.
 En Caliente: Se ejecuta apagando el
ordenador con el botón reset o con
Ctrl+Alt+Supr. No se hacen todos los test
anteriores y se carga directamente del S.O.,
suele emplearse tras caídas del sistema
operativo o bloqueo del ordenador.
23/07/15 Profesor Pedro Contreras Flores 26
Estructura del disco
23/07/15 Profesor Pedro Contreras Flores 27
Estructura de MBR
 MBR – Master Boot Record
 Sector físico de 512 bytes almacenado en el cilindro 0, cabeza 0,
sector 1.
 Sólo se ejecuta el MBR del Primary Master Disk. De este disco se
realiza el booteo.
 Se diferencian dos partes del MBR:
 Master Boot Code (MBC)
 Tabla de particiones
 Sólo puede modificarse con determinados utilitarios (fdisk,
Partition Magic, fips,etc).
 Como se utiliza el MBR
 Como última acción, el BIOS lee el primer sector de la unidad de
booteo, lo valida y ejecuta.
 Si es un diskette, este sector es un PBS (Partition Boot Sector).
 Si es un HD, el sector es un MBR. Luego:
 Se ejecuta el MBC: busca una partición marcada como booteable
(activa).
 Si la ejecución es exitosa, salta al cilindro, cabeza y sector de esa
partición y carga el PBS en memoria, lo valida y ejecuta.
23/07/15 Profesor Pedro Contreras Flores 28
Particiones
 Límite de 4 particiones primarias.
 Es posible crear más de 4 utilizando particiones
extendidas:
 Simula una unidad física
 Posee su propia tabla de particiones LOGICAS
 Las particiones lógicas se almacenan en forma
contigua (enlazadas)
 Límite de 15 particiones para discos SCSI y 63 para
discos IDE
23/07/15 Profesor Pedro Contreras Flores 29
Gestores de arranque (bootloader)
 Es una programa que se encuentra en el sector de
arranque de la partición primaria que esta activa o
en el MBR
 Gestores de arranque populares en GNU/Linux
:LILO (LInux LOader), GRUB(Grand Unified
Bootloader)
 Otros ejemplos de bootloaders son BootMagic,
BootStar, Ranish Partition Manager, etc.
 LILO puede arrancar otros SO aparte de GNU/Linux
 LILO puede instalarse en un sector de arranque de
una partición extendida
23/07/15 Profesor Pedro Contreras Flores 30
Partes de MBR
 Master Boot Code
 Los primeros bytes del MBR corresponden al MBC.
 Es un pequeño código que permite la carga del sistema operativo.
 Incluye los siguientes mensajes de error:
 Error loading operating system
 Missing operating system
 Tabla de particiones
 Se ubica a partir del byte 446 dentro del MBR.
 Es de 64 bytes. A continuación se dispone de dos bytes más.
 Cada entrada es de 16 bytes. Los campos reelevantes en cada entrada
son:
 Indicador de booteo
 comienzo de la partición
 ID de sistema
 final de la partición
 Otros
23/07/15 Profesor Pedro Contreras Flores 31
Partition Boot Sector
 Generalmente de 512 bytes.
 Situado en el primer sector de
cada partición.
 Si reside en una partición
booteable, contiene los datos
necesarios para cargar el SO.
 Depende del SO
 Su estructura es similar al MBR.
Mantiene un código ejecutable
e información de la partición.
 Almacena los siguientes
errores:
 Non-system disk or disk
error
 Replace and press any key
when ready
23/07/15 Profesor Pedro Contreras Flores 32
Caso Practico: Arranque de
SO en disquete
Parte 3
23/07/15 Profesor Pedro Contreras Flores 33
Caso Práctico
 Compilar con MASM 5.0, luego el LINK y ejecuta el
fichero.exe obtenido.
 Este programa es para diskette y puede ser adaptado a
disco duro
 Este ejemplo protege el disco duro en todo momento
para no perder la información
 El sistema de archivos que utiliza es FAT
23/07/15 Profesor Pedro Contreras Flores 34
Caso Práctico
23/07/15 Profesor Pedro Contreras Flores 35
Caso Práctico
23/07/15 Profesor Pedro Contreras Flores 36
Caso Práctico
23/07/15 Profesor Pedro Contreras Flores 37
Caso Práctico
 … y más codigo…
 Resultados
23/07/15 Profesor Pedro Contreras Flores 38
Caso Práctico
 Resultados
23/07/15 Profesor Pedro Contreras Flores 39
Conclusiones
Parte 4
23/07/15 Profesor Pedro Contreras Flores 40
Conclusiones
 Ventajas
 Conocimiento a fondo del computador
 Control total del computador
 Aplicaciones más rápidas, compactas
 Optimización en tamaño y ejecución de programas
 Desventajas
 Difícil de conocer todas las instrucciones existentes
 Aumenta el tiempo de programación
 Problemas de compatibilidad con el hardware
 Modificaciones de instrucciones según compilador
23/07/15 Profesor Pedro Contreras Flores 41
Conclusiones
 Limitaciones
 Primer paso solo arranca desde diskette
 Dependencia de Sistema de archivos
 Trabajos futuros
 Realizar modificaciones para arranque desde HD
 Definir sistema de archivos independiente
 Comenzar definir procesos (kernel)
23/07/15 Profesor Pedro Contreras Flores 42
Arranque de un Sistema Operativo
mediante Lenguaje Assembler
Universidad de Atacama
Facultad de Ingeniería
DIICC

Más contenido relacionado

La actualidad más candente

Lenguaje ensamblador
Lenguaje ensambladorLenguaje ensamblador
Lenguaje ensambladorjoseruiz_66
 
Técnicas de programación en ensamblador pic16f877a repertorio 35 instrucciones
Técnicas de programación en ensamblador pic16f877a repertorio 35 instrucciones Técnicas de programación en ensamblador pic16f877a repertorio 35 instrucciones
Técnicas de programación en ensamblador pic16f877a repertorio 35 instrucciones Anllel Cardenas Yllanes
 
Lenguaje ensamblador
Lenguaje ensamblador   Lenguaje ensamblador
Lenguaje ensamblador duvalin02
 
Manual Ensamblaje PCS-ACTIVIDAD 2_Microprocesador
 Manual Ensamblaje PCS-ACTIVIDAD 2_Microprocesador Manual Ensamblaje PCS-ACTIVIDAD 2_Microprocesador
Manual Ensamblaje PCS-ACTIVIDAD 2_MicroprocesadorJohn Nelson Rojas
 
Montagem manutenção de computadores
Montagem manutenção de computadoresMontagem manutenção de computadores
Montagem manutenção de computadoressetilsonadobmov
 
Aula07 - Arquitetura e Manutenção de Computadores
Aula07 - Arquitetura e Manutenção de ComputadoresAula07 - Arquitetura e Manutenção de Computadores
Aula07 - Arquitetura e Manutenção de ComputadoresJorge Ávila Miranda
 
Aula Introdução a Arquitetura e Organização de Computadores
Aula Introdução a Arquitetura e Organização de ComputadoresAula Introdução a Arquitetura e Organização de Computadores
Aula Introdução a Arquitetura e Organização de ComputadoresGilvan Latreille
 
Examen Arquitectura de Computadoras
Examen Arquitectura de ComputadorasExamen Arquitectura de Computadoras
Examen Arquitectura de ComputadorasErika Santos Reyes
 
Arquitectura de computadoras II-Codigo de Operaciones y Campo de Direccionami...
Arquitectura de computadoras II-Codigo de Operaciones y Campo de Direccionami...Arquitectura de computadoras II-Codigo de Operaciones y Campo de Direccionami...
Arquitectura de computadoras II-Codigo de Operaciones y Campo de Direccionami...Mari Cruz
 
ArquiteturaRisc_GabiCoelho
ArquiteturaRisc_GabiCoelhoArquiteturaRisc_GabiCoelho
ArquiteturaRisc_GabiCoelhoGabriela Coelho
 
RANURAS DE EXPANSION "TARJETA MADRE"
RANURAS DE EXPANSION "TARJETA MADRE"RANURAS DE EXPANSION "TARJETA MADRE"
RANURAS DE EXPANSION "TARJETA MADRE"mariah8
 
Evaluacion ensamble pc
Evaluacion ensamble pcEvaluacion ensamble pc
Evaluacion ensamble pclinajimenez30
 

La actualidad más candente (20)

Lenguaje ensamblador
Lenguaje ensambladorLenguaje ensamblador
Lenguaje ensamblador
 
Técnicas de programación en ensamblador pic16f877a repertorio 35 instrucciones
Técnicas de programación en ensamblador pic16f877a repertorio 35 instrucciones Técnicas de programación en ensamblador pic16f877a repertorio 35 instrucciones
Técnicas de programación en ensamblador pic16f877a repertorio 35 instrucciones
 
Lenguaje ensamblador
Lenguaje ensamblador   Lenguaje ensamblador
Lenguaje ensamblador
 
Manual Ensamblaje PCS-ACTIVIDAD 2_Microprocesador
 Manual Ensamblaje PCS-ACTIVIDAD 2_Microprocesador Manual Ensamblaje PCS-ACTIVIDAD 2_Microprocesador
Manual Ensamblaje PCS-ACTIVIDAD 2_Microprocesador
 
Montagem manutenção de computadores
Montagem manutenção de computadoresMontagem manutenção de computadores
Montagem manutenção de computadores
 
CISC e RISC
CISC e RISCCISC e RISC
CISC e RISC
 
La tarjeta madre
La tarjeta madreLa tarjeta madre
La tarjeta madre
 
ARQUITECTURA CISC
ARQUITECTURA CISCARQUITECTURA CISC
ARQUITECTURA CISC
 
1.2. El procesador y sus registros internos
1.2. El procesador y sus registros internos1.2. El procesador y sus registros internos
1.2. El procesador y sus registros internos
 
Aula07 - Arquitetura e Manutenção de Computadores
Aula07 - Arquitetura e Manutenção de ComputadoresAula07 - Arquitetura e Manutenção de Computadores
Aula07 - Arquitetura e Manutenção de Computadores
 
Aula Introdução a Arquitetura e Organização de Computadores
Aula Introdução a Arquitetura e Organização de ComputadoresAula Introdução a Arquitetura e Organização de Computadores
Aula Introdução a Arquitetura e Organização de Computadores
 
Examen Arquitectura de Computadoras
Examen Arquitectura de ComputadorasExamen Arquitectura de Computadoras
Examen Arquitectura de Computadoras
 
Cheat sheet Mips 32 bits
Cheat sheet Mips 32 bitsCheat sheet Mips 32 bits
Cheat sheet Mips 32 bits
 
La bios
La biosLa bios
La bios
 
Arquitectura de computadoras II-Codigo de Operaciones y Campo de Direccionami...
Arquitectura de computadoras II-Codigo de Operaciones y Campo de Direccionami...Arquitectura de computadoras II-Codigo de Operaciones y Campo de Direccionami...
Arquitectura de computadoras II-Codigo de Operaciones y Campo de Direccionami...
 
El procesador o microprocesador
El procesador o microprocesadorEl procesador o microprocesador
El procesador o microprocesador
 
ArquiteturaRisc_GabiCoelho
ArquiteturaRisc_GabiCoelhoArquiteturaRisc_GabiCoelho
ArquiteturaRisc_GabiCoelho
 
RANURAS DE EXPANSION "TARJETA MADRE"
RANURAS DE EXPANSION "TARJETA MADRE"RANURAS DE EXPANSION "TARJETA MADRE"
RANURAS DE EXPANSION "TARJETA MADRE"
 
El microprocesador
El microprocesadorEl microprocesador
El microprocesador
 
Evaluacion ensamble pc
Evaluacion ensamble pcEvaluacion ensamble pc
Evaluacion ensamble pc
 

Similar a Arranque de Sistema Operativo con Assembler

Instrucciones lenguaje assembler
Instrucciones lenguaje assemblerInstrucciones lenguaje assembler
Instrucciones lenguaje assemblerANDREA
 
Lenguaje ensamblador (assembler)
Lenguaje ensamblador (assembler)Lenguaje ensamblador (assembler)
Lenguaje ensamblador (assembler)Carlos Guillén
 
Microcomputadoras al detalle
Microcomputadoras al detalleMicrocomputadoras al detalle
Microcomputadoras al detalledsolana
 
Microcomputadoras al detalle
Microcomputadoras al detalleMicrocomputadoras al detalle
Microcomputadoras al detalleLupiita Paniagua
 
Microcomputadoras al detalle
Microcomputadoras al detalleMicrocomputadoras al detalle
Microcomputadoras al detallePTA Records
 
Mis preguntas del blog y las ultimas .l.
Mis preguntas del blog y las ultimas .l.Mis preguntas del blog y las ultimas .l.
Mis preguntas del blog y las ultimas .l.Mauricio Velasquez
 
Comparativa Intel 8086 Motorola 68000
Comparativa Intel 8086   Motorola 68000Comparativa Intel 8086   Motorola 68000
Comparativa Intel 8086 Motorola 68000guest0f5365
 
Lenguajes de interfaz
Lenguajes de interfazLenguajes de interfaz
Lenguajes de interfazXavi Flores
 
Unidadi. lenguajes de interfaz
Unidadi.   lenguajes de interfazUnidadi.   lenguajes de interfaz
Unidadi. lenguajes de interfazLuiS YmAY
 
Organizacion de la unidad central de procesamiento
Organizacion de la unidad central de procesamientoOrganizacion de la unidad central de procesamiento
Organizacion de la unidad central de procesamientoHarold Torres
 
Organizacion-de-la-unidad-central-de-procesamiento
Organizacion-de-la-unidad-central-de-procesamientoOrganizacion-de-la-unidad-central-de-procesamiento
Organizacion-de-la-unidad-central-de-procesamientoJosé Luis Olivares
 
Registros del procesador 01
Registros del procesador 01Registros del procesador 01
Registros del procesador 01Isaias Castro
 
Registros Basicos del CPU.pptx
Registros Basicos del CPU.pptxRegistros Basicos del CPU.pptx
Registros Basicos del CPU.pptxEdwin Jaramillo
 
Clase10 2-lenguaje ensamblador
Clase10 2-lenguaje ensambladorClase10 2-lenguaje ensamblador
Clase10 2-lenguaje ensambladorInfomania pro
 

Similar a Arranque de Sistema Operativo con Assembler (20)

Instrucciones lenguaje assembler
Instrucciones lenguaje assemblerInstrucciones lenguaje assembler
Instrucciones lenguaje assembler
 
Lenguaje ensamblador
Lenguaje ensambladorLenguaje ensamblador
Lenguaje ensamblador
 
Lenguaje ensamblador (assembler)
Lenguaje ensamblador (assembler)Lenguaje ensamblador (assembler)
Lenguaje ensamblador (assembler)
 
Microcomputadoras al detalle
Microcomputadoras al detalleMicrocomputadoras al detalle
Microcomputadoras al detalle
 
Microcomputadoras al detalle
Microcomputadoras al detalleMicrocomputadoras al detalle
Microcomputadoras al detalle
 
Microcomputadoras al detalle
Microcomputadoras al detalleMicrocomputadoras al detalle
Microcomputadoras al detalle
 
Microcomputadoras al detalle
Microcomputadoras al detalleMicrocomputadoras al detalle
Microcomputadoras al detalle
 
Mis preguntas del blog y las ultimas .l.
Mis preguntas del blog y las ultimas .l.Mis preguntas del blog y las ultimas .l.
Mis preguntas del blog y las ultimas .l.
 
Comparativa Intel 8086 Motorola 68000
Comparativa Intel 8086   Motorola 68000Comparativa Intel 8086   Motorola 68000
Comparativa Intel 8086 Motorola 68000
 
asm_mododir2.pdf
asm_mododir2.pdfasm_mododir2.pdf
asm_mododir2.pdf
 
Asm mododir2
Asm mododir2Asm mododir2
Asm mododir2
 
Esamblador8086
Esamblador8086Esamblador8086
Esamblador8086
 
Lenguajes de interfaz
Lenguajes de interfazLenguajes de interfaz
Lenguajes de interfaz
 
Unidadi. lenguajes de interfaz
Unidadi.   lenguajes de interfazUnidadi.   lenguajes de interfaz
Unidadi. lenguajes de interfaz
 
Organizacion de la unidad central de procesamiento
Organizacion de la unidad central de procesamientoOrganizacion de la unidad central de procesamiento
Organizacion de la unidad central de procesamiento
 
Organizacion-de-la-unidad-central-de-procesamiento
Organizacion-de-la-unidad-central-de-procesamientoOrganizacion-de-la-unidad-central-de-procesamiento
Organizacion-de-la-unidad-central-de-procesamiento
 
Curso c++
Curso c++Curso c++
Curso c++
 
Registros del procesador 01
Registros del procesador 01Registros del procesador 01
Registros del procesador 01
 
Registros Basicos del CPU.pptx
Registros Basicos del CPU.pptxRegistros Basicos del CPU.pptx
Registros Basicos del CPU.pptx
 
Clase10 2-lenguaje ensamblador
Clase10 2-lenguaje ensambladorClase10 2-lenguaje ensamblador
Clase10 2-lenguaje ensamblador
 

Más de Pedro Contreras Flores

Servicio de información para bibliotecas
Servicio de información para bibliotecasServicio de información para bibliotecas
Servicio de información para bibliotecasPedro Contreras Flores
 
Business intelligence (bi) y big data0
Business intelligence (bi) y big data0Business intelligence (bi) y big data0
Business intelligence (bi) y big data0Pedro Contreras Flores
 
Sistemas y servicios de informacion intro
Sistemas y servicios de informacion introSistemas y servicios de informacion intro
Sistemas y servicios de informacion introPedro Contreras Flores
 
Hormigas arfificiales - Mauro San Martín
Hormigas arfificiales - Mauro San MartínHormigas arfificiales - Mauro San Martín
Hormigas arfificiales - Mauro San MartínPedro Contreras Flores
 

Más de Pedro Contreras Flores (20)

El dilema de las redes sociales
El dilema de las redes sociales El dilema de las redes sociales
El dilema de las redes sociales
 
Tipos de sistemas de información
Tipos de sistemas de informaciónTipos de sistemas de información
Tipos de sistemas de información
 
Text Analytics - JCC2014 Kimelfeld
Text Analytics - JCC2014 KimelfeldText Analytics - JCC2014 Kimelfeld
Text Analytics - JCC2014 Kimelfeld
 
Servicio de información para bibliotecas
Servicio de información para bibliotecasServicio de información para bibliotecas
Servicio de información para bibliotecas
 
Gestión del conocimiento
Gestión del conocimientoGestión del conocimiento
Gestión del conocimiento
 
Business intelligence (bi) y big data0
Business intelligence (bi) y big data0Business intelligence (bi) y big data0
Business intelligence (bi) y big data0
 
Bibliotecas moviles y calidad
Bibliotecas moviles y calidadBibliotecas moviles y calidad
Bibliotecas moviles y calidad
 
Sistemas y servicios de informacion intro
Sistemas y servicios de informacion introSistemas y servicios de informacion intro
Sistemas y servicios de informacion intro
 
Plataforma de Digitalización
Plataforma de DigitalizaciónPlataforma de Digitalización
Plataforma de Digitalización
 
Red de transporte urbano
Red de transporte urbanoRed de transporte urbano
Red de transporte urbano
 
Packing
PackingPacking
Packing
 
Hormigas arfificiales - Mauro San Martín
Hormigas arfificiales - Mauro San MartínHormigas arfificiales - Mauro San Martín
Hormigas arfificiales - Mauro San Martín
 
Tecnologías de la información
Tecnologías de la informaciónTecnologías de la información
Tecnologías de la información
 
Modelamiento y simulación
Modelamiento y simulaciónModelamiento y simulación
Modelamiento y simulación
 
Java 3D
Java 3DJava 3D
Java 3D
 
Complementos de programación
Complementos de programaciónComplementos de programación
Complementos de programación
 
4 memoria dinamica
4 memoria dinamica4 memoria dinamica
4 memoria dinamica
 
3 recursividad
3 recursividad3 recursividad
3 recursividad
 
2 punteros y lenguaje c
2 punteros y lenguaje c2 punteros y lenguaje c
2 punteros y lenguaje c
 
Programación grafica en lenguaje c
Programación grafica en lenguaje cProgramación grafica en lenguaje c
Programación grafica en lenguaje c
 

Último

Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMidwarHenryLOZAFLORE
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxAlexander López
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfjeondanny1997
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
Presentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia ArtificialPresentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia Artificialcynserafini89
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxGESTECPERUSAC
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxtjcesar1
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfedepmariaperez
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
Excel (1) tecnologia.pdf trabajo Excel taller
Excel  (1) tecnologia.pdf trabajo Excel tallerExcel  (1) tecnologia.pdf trabajo Excel taller
Excel (1) tecnologia.pdf trabajo Excel tallerValentinaTabares11
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptJavierHerrera662252
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son241514984
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOnarvaezisabella21
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúCEFERINO DELGADO FLORES
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 

Último (20)

Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptx
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
Presentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia ArtificialPresentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia Artificial
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptx
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdf
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
Excel (1) tecnologia.pdf trabajo Excel taller
Excel  (1) tecnologia.pdf trabajo Excel tallerExcel  (1) tecnologia.pdf trabajo Excel taller
Excel (1) tecnologia.pdf trabajo Excel taller
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 

Arranque de Sistema Operativo con Assembler

  • 1. 23/07/15 Profesor Pedro Contreras Flores 1 Arranque de un Sistema Operativo mediante Lenguaje Assembler Universidad de Atacama Facultad de Ingeniería DIICC
  • 2. 23/07/15 Profesor Pedro Contreras Flores 2 Temario 1. Introducción  Sistemas Operativos  Lenguaje ensamblador y programación 2. Sectores de arranque  Estructura  Funcionamiento 3. Caso Práctico 4. Conclusiones
  • 3. 23/07/15 Profesor Pedro Contreras Flores 3 Introducción Parte 1
  • 4. 23/07/15 Profesor Pedro Contreras Flores 4 Conocimientos previos  Unidades de información  Celdas especiales (registros), de 6 a 8 flip-flops (almacena niveles de voltaje 0.5 volts a 5 volees ), Bits (binary digits), nibbles (4 bits), byte (8 bits), palabra (16 bits)  RAM, ROM  Sistemas numéricos  Decimal, Binario, Hexadecimal  Texto, digitos, punto flotante  ASCII, Método BCD  Arquitectura Van Newman  Software, hardware, firmware, middleware  Cpu y registros internos
  • 5. 23/07/15 Profesor Pedro Contreras Flores 5 Funcionamiento de un S.O. Programa que supervisa el funcionamiento de otros programas y que controla el uso del hardware Tareas  Administra memoria  Administrar CPU (procesador)  Administrar dispositivos de ES  Administrar información (datos)  Administrar comunicación con operador Tipos  Monoprogramables, Multiprogramables, Tiempo Compartido, Multiprocesamiento.
  • 6. 23/07/15 Profesor Pedro Contreras Flores 6 Integración USUARIO APLICACIONES SISTEMAS OPERATIVOS HARDWARE Resultado Ordenes Respuestas Requerimientos Respuestas Instrucciones
  • 7. 23/07/15 Profesor Pedro Contreras Flores 7 Ejemplo de Microprocesadores Intel  Microprocesador 4004  Microprocesador 8008  Microprocesador 8080  Microprocesador 8085  Microprocesadores 8086 y 8088  Coprocesador matemático 8087  Microprocesadores 80186 y 80188  Coprocesador matemático 80C187  Microprocesador 80286  Coprocesador matemático 80287  Microprocesador 80386  Coprocesador matemático 80387  Microprocesador 80486  Microprocesador Pentium
  • 8. 23/07/15 Profesor Pedro Contreras Flores 8 Estructura del i8086  El Microprocesador 8086 tiene catorce registros de 16 bits. Dichos registros son:  Registros de datos  Registros de segmento  Registros de punteros de pila  Registros índices  Registro de puntero de instrucciones  Registro de flags de instrucciones
  • 9. 23/07/15 Profesor Pedro Contreras Flores 9 Banco de Registros  Registros de Datos  AX acumulador (AL , AH)  BX registro base ()(  CX registro contador  DX registro de datos  Punteros  SP Puntero de pila  BP Puntero base de pila  SI registro índice fuente  DI registro índice destino  IP Contador de programa, apuntador de siguiente instrucción  DS registro del segmento de datos  ES registro del segmento extra  SS registro del segmento de pila  CS Registro del segmento de código  NV, EI, PL, NZ, NA, PO, NC, DB  F registro de banderas
  • 10. 23/07/15 Profesor Pedro Contreras Flores 10 Estructura de un programa en ensamblador DOSSEGDOSSEG .MODEL SMALL.MODEL SMALL .STACK 100H.STACK 100H .DATA.DATA .CODE.CODE MOV AX, @DATAMOV AX, @DATA MOV DS, AXMOV DS, AX MOV AH,4CHMOV AH,4CH INT 21HINT 21H ENDEND PREPARACION DEL PROGRAMA PARA TRABAJAR CON EL MS-DOS MODO DE CREACION DEL EJECUTABLE DEFINICION DE LA PILA DEFINICION DE LOS DATOS DEL PROGRAMA INFORMACION DEL LUGAR EN EL QUE SE ENCUENTRAN LOS DATOS INSTRUCCIONES DEL PROGRAMA INFORMACION AL SISTEMA OPERATIVO DE QUE EL PROGRAMA HA FINALIZADO FINAL DEL FICHERO FUENTE
  • 11. 23/07/15 Profesor Pedro Contreras Flores 11 Pasos para crear un fichero ejecutable  Programación  Los programas deben escribirse en un de texto ASCII u otro editor  El nombre del fichero debe tener como extensión ASM  Para ensamblar el fichero se debe teclear en línea de ordenes  MASM NombreFichero.ASM  Si no se producen errores, se debe enlazar tecleando en la línea de órdenes:  LINK NombreFichero.OBJ
  • 12. 23/07/15 Profesor Pedro Contreras Flores 12 Tipos de instrucciones Tipo de instrucciónTipo de instrucción EfectoEfecto Instrucciones de transferencia Mueven información entre registros, registros y posiciones de memoria, o entre registros y puertos de entrada/salida Instrucciones aritméticas Realizan operaciones aritméticas: sumas, restas, etc. Instrucciones de manejo de bits Realizan operaciones de desplazamiento, rotación y lógicas sobre registros o posiciones de memoria Instrucciones de transferencia de control Sirven para controlar la ejecución de las instrucciones del programa Instrucciones de entrada y salida Mueven información entre registros y puertos de entrada/salida Instrucciones de manejo de cadenas Realizan operaciones entre sobre cadena de bytes o palabras Instrucciones de interrupción Provocan que el microprocesador realice un servicio que se le solicita diferente a las instrucciones que esta ejecutando
  • 13. 23/07/15 Profesor Pedro Contreras Flores 13 Instrucciones de transferencia de datos •Nombre: MOV •Formato: MOV destino, origen •Descripción: Transfiere un byte o una palabra desde el operando origen al operando destino. •Ejemplos: •MOV CX, 112h ;CX=112h •MOV ES, AX ;ES=AX •MOV AL, 12h ;AL=12h •MOV PAL_MEM, BX ;PAL_MEM=BX •Nombre: POP •Formato: POP destino •Descripción: Transfiere un byte o una palabra desde la cima de la pila al operando destino y luego decrementa la pila en 2. •Ejemplos: •POP BX ;Pone en BX el contenido ;de la cima de la pila •Nombre: PUSH •Formato: PUSH origen •Descripción: Decrementa el puntero de la pila (SP) en 2 y luego transfiere la palabra que se ha especificado en el operando origen a lo alto de la pila. •Ejemplos: •PUSH BX ;Pone BX en la pila
  • 14. 23/07/15 Profesor Pedro Contreras Flores 14 Instrucciones aritméticas (I) •Nombre: ADD •Formato: ADD destino, origen •Descripción: Suma los dos operandos y el resultado lo deja en el operando destino. Los operandos deben ser del mismo tipo. •Ejemplos: •ADD CL, BL ;CL=CL+BL •ADD AL, 12h ;AL=AL+12h •ADD CX, DX ;CX=CX+DX •Nombre: ADC •Formato: ADC destino, origen •Descripción: Suma los dos operandos más el posible acarreo de la operación anterior. El resultado se almacena en el operando destino. Además los operandos deben ser del mismo tipo. Ejemplos: •ADC CL, BL ;CL=CL+BL+CF •ADC AL, 12h ;AL=AL+12h+CF •ADC CX, DX ;CX=CX+DX+CF •Nombre: SUB •Formato: SUB destino, origen •Descripción: Resta el operando origen del operando destino. El resultado se almacena en el operando destino y además, ambos operandos deben ser del mismo tipo. •Ejemplos: •SUB CL, BL ;CL=CL-BL •SUB AL, 12h ;AL=AL-12h •SUB CX, DX ;CX=CX-DX •Nombre: SBB •Formato: SBB destino, origen •Descripción: Resta el operando origen del operando destino. Resta uno si el flag de acarreo está activo. Los operandos deben ser del mismo tipo. El resultado se almacena en el operando destino. •Ejemplos: •SBB CX, DX ;CX=CX-DX-CF
  • 15. 23/07/15 Profesor Pedro Contreras Flores 15 Instrucciones aritméticas (II) •Nombre: MUL •Formato: MUL origen •Descripción: Multiplica, sin considerar el signo el acumulador (AL o AX) por el operando origen. Si el operando origen es de tipo byte el resultado se almacena en AX. Si es de tipo palabra se almacena en DX (palabra superior) y AX (palabra inferior). •Ejemplos: • ;AX=1234h • ;BX=1000h •MUL BX ;DX=0123h, AX=4000h •Nombre: IMUL •Formato: IMUL origen •Descripción: Multiplica, considerando el signo, el acumulador AL o AX por el operando origen. Si el operando fuente es un byte se almacena el resultado en AX. Si se trata de una palabra, se almacena en DX (palabra superior) y AX (palabra inferior). •Ejemplos: • ;AL=FEh=-2 • ;BL=12h=18 •IMUL BX ;AX=FFDCh=-36 •Nombre: DIV •Formato: DIV origen •Descripción: Divide, sin considerar el signo, el acumulador (AL o AX) y su extensión (AH o DX) por el operando origen. El resultado se almacena en AL o AX, según el operando sea de un byte o de una palabra. El resto se almacena en la extensión del acumulador AH o DX. •Ejemplos: • ;AX=0013h=19 • ;BL=02h=2 •DIV BL ;AH=1, AL=9 •Nombre: IDIV •Formato: IDIV origen •Descripción: Divide, considerando el signo, el acumulador AL o AX y su extensión (AH o DX) por el operando origen. El resultado se almacena en AL o AX, según el operando sea de un byte o de una palabra. El resto se almacena en la extensión del acumulador AH o DX. •Ejemplos: • ;AX=FFEDh=-19 • ;BL=02h=2 •IDIV BL ;AH=1, AL=F7h=-9
  • 16. 23/07/15 Profesor Pedro Contreras Flores 16 Instrucciones aritméticas (III) •Nombre: INC •Formato: INC destino •Descripción: Suma una unidad al operando destino. El operando puede ser de tipo byte o palabra. •Ejemplos: • ;AX=1234h •INC AX ;AX=1235h •INC AH ;AH=13h •Nombre: DEC •Formato: DEC destino •Descripción: Resta una unidad al operando destino. El operando puede ser de tipo byte o palabra. •Ejemplos: • ;AX=1234h •DEC AX ;AX=1233h •DEC AH ;AH=11h •Nombre: NEG •Formato: NEG destino •Descripción: Cambia de signo mediante el complemento a 2 del operando destino. Deja el resultado en el operando destino. El operando puede ser de tipo byte o palabra. •Ejemplos: •NEG AL ;Si AL=F2h antes de la operación, después AL=0Eh
  • 17. 23/07/15 Profesor Pedro Contreras Flores 17 Editores-Compiladores-Enlazadores Editores-Compiladores-EnlazadoresEditores-Compiladores-Enlazadores Sistema OperativoSistema Operativo Debug de windows Windows MASM32 V8, Macro Assembler Microsoft Windows Batronix Prog-Studio 5.2 Windows MPL V 1.02.00 Windows Negatory Assembly Studio 2.0 (ml, link y rc) Windows MiniIDE V1.16 Windows/Linux VNBasm4 Windows Turbo Assembler Windows Power Assembler 32 1.2 Windows Small Memory Footprint Editor 3.0b Windows G C C 3.3.3 Linux Xebot 0.8.00 Linux
  • 18. 23/07/15 Profesor Pedro Contreras Flores 18 Primer programa  Este ejemplo realizara una suma de dos valores que se introducirá directamente desde el programa  Pasos:  Debug  Comando “a”, indica inicio de assembler  Solo se comprueba valor de inicio (0100H) de aplicación .COM por lo tanto se omite ingreso  Luego se puede comenzar a ingresar las instrucciones , después de ingresar “a0100” al debug  “int 20” no es una instrucción propia de assembler sino de la cpu
  • 19. 23/07/15 Profesor Pedro Contreras Flores 19 Guardar y editar Primer Programa  “h 10a 100” obtiene la suma y resta de direcciones, donde 10a es la direccion final y 100 es la direccion inicial  “n prueba.com” permite colocar el nombre al programa  “rcx” permite cambiar el tamaño del programa en registro CX a 00a (10 bytes) (resta de direcciones)  “w” escribe programa en el disco, indicando tamaño escrito.
  • 20. 23/07/15 Profesor Pedro Contreras Flores 20 Condiciones, ciclos y bifurcaciones loop
  • 21. 23/07/15 Profesor Pedro Contreras Flores 21 Condiciones, ciclos y bifurcaciones jnz
  • 22. 23/07/15 Profesor Pedro Contreras Flores 22 Condiciones, ciclos y bifurcaciones jcxz y jmp
  • 23. 23/07/15 Profesor Pedro Contreras Flores 23 Interrupciones  Las interrupciones son mensajes que los dispositivos de e/s envían a la CPU indicando un estado y la necesidad de un recurso  Tipos de interrupciones  Internas de hw  Externas de hw  De sw  Cada interrupción tiene diferentes funciones
  • 24. 23/07/15 Profesor Pedro Contreras Flores 24 Sector de Arranque de un S.O. Parte 2
  • 25. 23/07/15 Profesor Pedro Contreras Flores 25 Arranque de SO  Existen 2 maneras de arrancar el sistema: en frío o en caliente.  En Frío: está apagado y lo arrancamos con el 'ON'. Cachea los dispositivos de entrada y de salida, teclado, monitor, discos duros, disquetes, memoria (RAM), etc. Después busca el S.O. y lo carga, primero mira en la disquetera y si hay disquete con sistema operativo lo arranca; después mira el disco duro.  En Caliente: Se ejecuta apagando el ordenador con el botón reset o con Ctrl+Alt+Supr. No se hacen todos los test anteriores y se carga directamente del S.O., suele emplearse tras caídas del sistema operativo o bloqueo del ordenador.
  • 26. 23/07/15 Profesor Pedro Contreras Flores 26 Estructura del disco
  • 27. 23/07/15 Profesor Pedro Contreras Flores 27 Estructura de MBR  MBR – Master Boot Record  Sector físico de 512 bytes almacenado en el cilindro 0, cabeza 0, sector 1.  Sólo se ejecuta el MBR del Primary Master Disk. De este disco se realiza el booteo.  Se diferencian dos partes del MBR:  Master Boot Code (MBC)  Tabla de particiones  Sólo puede modificarse con determinados utilitarios (fdisk, Partition Magic, fips,etc).  Como se utiliza el MBR  Como última acción, el BIOS lee el primer sector de la unidad de booteo, lo valida y ejecuta.  Si es un diskette, este sector es un PBS (Partition Boot Sector).  Si es un HD, el sector es un MBR. Luego:  Se ejecuta el MBC: busca una partición marcada como booteable (activa).  Si la ejecución es exitosa, salta al cilindro, cabeza y sector de esa partición y carga el PBS en memoria, lo valida y ejecuta.
  • 28. 23/07/15 Profesor Pedro Contreras Flores 28 Particiones  Límite de 4 particiones primarias.  Es posible crear más de 4 utilizando particiones extendidas:  Simula una unidad física  Posee su propia tabla de particiones LOGICAS  Las particiones lógicas se almacenan en forma contigua (enlazadas)  Límite de 15 particiones para discos SCSI y 63 para discos IDE
  • 29. 23/07/15 Profesor Pedro Contreras Flores 29 Gestores de arranque (bootloader)  Es una programa que se encuentra en el sector de arranque de la partición primaria que esta activa o en el MBR  Gestores de arranque populares en GNU/Linux :LILO (LInux LOader), GRUB(Grand Unified Bootloader)  Otros ejemplos de bootloaders son BootMagic, BootStar, Ranish Partition Manager, etc.  LILO puede arrancar otros SO aparte de GNU/Linux  LILO puede instalarse en un sector de arranque de una partición extendida
  • 30. 23/07/15 Profesor Pedro Contreras Flores 30 Partes de MBR  Master Boot Code  Los primeros bytes del MBR corresponden al MBC.  Es un pequeño código que permite la carga del sistema operativo.  Incluye los siguientes mensajes de error:  Error loading operating system  Missing operating system  Tabla de particiones  Se ubica a partir del byte 446 dentro del MBR.  Es de 64 bytes. A continuación se dispone de dos bytes más.  Cada entrada es de 16 bytes. Los campos reelevantes en cada entrada son:  Indicador de booteo  comienzo de la partición  ID de sistema  final de la partición  Otros
  • 31. 23/07/15 Profesor Pedro Contreras Flores 31 Partition Boot Sector  Generalmente de 512 bytes.  Situado en el primer sector de cada partición.  Si reside en una partición booteable, contiene los datos necesarios para cargar el SO.  Depende del SO  Su estructura es similar al MBR. Mantiene un código ejecutable e información de la partición.  Almacena los siguientes errores:  Non-system disk or disk error  Replace and press any key when ready
  • 32. 23/07/15 Profesor Pedro Contreras Flores 32 Caso Practico: Arranque de SO en disquete Parte 3
  • 33. 23/07/15 Profesor Pedro Contreras Flores 33 Caso Práctico  Compilar con MASM 5.0, luego el LINK y ejecuta el fichero.exe obtenido.  Este programa es para diskette y puede ser adaptado a disco duro  Este ejemplo protege el disco duro en todo momento para no perder la información  El sistema de archivos que utiliza es FAT
  • 34. 23/07/15 Profesor Pedro Contreras Flores 34 Caso Práctico
  • 35. 23/07/15 Profesor Pedro Contreras Flores 35 Caso Práctico
  • 36. 23/07/15 Profesor Pedro Contreras Flores 36 Caso Práctico
  • 37. 23/07/15 Profesor Pedro Contreras Flores 37 Caso Práctico  … y más codigo…  Resultados
  • 38. 23/07/15 Profesor Pedro Contreras Flores 38 Caso Práctico  Resultados
  • 39. 23/07/15 Profesor Pedro Contreras Flores 39 Conclusiones Parte 4
  • 40. 23/07/15 Profesor Pedro Contreras Flores 40 Conclusiones  Ventajas  Conocimiento a fondo del computador  Control total del computador  Aplicaciones más rápidas, compactas  Optimización en tamaño y ejecución de programas  Desventajas  Difícil de conocer todas las instrucciones existentes  Aumenta el tiempo de programación  Problemas de compatibilidad con el hardware  Modificaciones de instrucciones según compilador
  • 41. 23/07/15 Profesor Pedro Contreras Flores 41 Conclusiones  Limitaciones  Primer paso solo arranca desde diskette  Dependencia de Sistema de archivos  Trabajos futuros  Realizar modificaciones para arranque desde HD  Definir sistema de archivos independiente  Comenzar definir procesos (kernel)
  • 42. 23/07/15 Profesor Pedro Contreras Flores 42 Arranque de un Sistema Operativo mediante Lenguaje Assembler Universidad de Atacama Facultad de Ingeniería DIICC

Notas del editor

  1. http://www.hackemate.com.ar/hacking/esp/part_00.htm#toc4 http://fusionhack.iespana.es/fusionhack/Cracking/Documentos/Crack1.htm http://bibliotecainformatica.iespana.es/bibliotecainformatica/programacion/ice.htm
  2. http://mipagina.cantv.net/porrasgarcia/her.html
  3. http://www.hackemate.com.ar/hacking/esp/part_00.htm#toc4 http://fusionhack.iespana.es/fusionhack/Cracking/Documentos/Crack1.htm http://bibliotecainformatica.iespana.es/bibliotecainformatica/programacion/ice.htm