el ms-dos y el ensamblador

27
TEMA 1: EL MS-DOS Y EL ENSAMBLADOR 1 Departamento de Automática UNIVERSIDAD DE ALCALÁ 2004 - 2005 EL MS-DOS Y EL ENSAMBLADOR Funciones de un sistema operativo Nucleo de un sistema operativo El MS-DOS. Comandos básicos Necesidad de un lenguaje ensamblador Fases en el ciclo de desarrollo de un programa Estructura de un código en ensamblador Obtención del fichero objeto: el programa ensamblador Obtención del ejecutable: el programa de enlazado Depuración del código: el depurador

Upload: robert-yaev

Post on 14-Oct-2014

60 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: El Ms-dos y El Ensamblador

TEMA 1: EL MS-DOS Y EL ENSAMBLADOR 1

Departamento de AutomáticaUNIVERSIDAD DE ALCALÁ

2004 - 2005

EL MS-DOS Y EL ENSAMBLADOR• Funciones de un sistema operativo

• Nucleo de un sistema operativo

• El MS-DOS. Comandos básicos

• Necesidad de un lenguaje ensamblador

• Fases en el ciclo de desarrollo de un programa

• Estructura de un código en ensamblador

• Obtención del fichero objeto: el programa ensamblador

• Obtención del ejecutable: el programa de enlazado

• Depuración del código: el depurador

Page 2: El Ms-dos y El Ensamblador

TEMA 1: EL MS-DOS Y EL ENSAMBLADOR 2

Departamento de AutomáticaUNIVERSIDAD DE ALCALÁ

2004 - 2005

FUNCIONES DE LOS S.O.

• Definir la interfaz de usuario

• Compartir el hardware entre usuarios

• Compartir datos entre usuarios

• Planificar recursos

• Facilitar la entrada-salida

• Recuperarse de errores

Page 3: El Ms-dos y El Ensamblador

TEMA 1: EL MS-DOS Y EL ENSAMBLADOR 3

Departamento de AutomáticaUNIVERSIDAD DE ALCALÁ

2004 - 2005

NIVELES DE UN S.O.• Un sistema operativo está estratificado en capas para facilitar su comprensión y reducir su complejidad

• Las diferentes capas se comunican entre sí mediante petición-realización de servicios

Page 4: El Ms-dos y El Ensamblador

TEMA 1: EL MS-DOS Y EL ENSAMBLADOR 4

Departamento de AutomáticaUNIVERSIDAD DE ALCALÁ

2004 - 2005

COMANDOS BASICOSSISTEMA DE FICHEROS

• SE DIVIDE EN UNIDADES LOGICAS INDEPENDIENTES

• CADA UNIDAD SE ORGANIZA EN DIRECTORIOS Y SUBDIRECTORIOS

• PERMISOS DE ACCESO Y MODIFICACIÓN LIMITADOS

Page 5: El Ms-dos y El Ensamblador

TEMA 1: EL MS-DOS Y EL ENSAMBLADOR 5

Departamento de AutomáticaUNIVERSIDAD DE ALCALÁ

2004 - 2005

SISTEMA DE FICHEROSCOMANDOS BASICOS

• FORMAT

– FORMAT volumen [/FS:sist_arch] [/V:etiqueta] [/Q] [/A:tamaño] [/C] [/X]

– FORMAT volumen [/V:etiqueta] [/Q] [/F:tamaño]

– FORMAT unidad: [/V: etiqueta] [/Q] [/T: pistas /N: sectores]

– FORMAT unidad: [/V: etiqueta] [/Q] [/1] [/4]

• CHKDSK Comprueba un disco y muestra un informe de estado

– CHKDSK [volumen[[ruta]archivo]]] [/F] [/V] [/R] [/X] [/I] [/C] [/L[:tamaño]]

• SUBST. Asocia una ruta de acceso a una letra de unidad

– SUBST [unidad1: [unidad2:]ruta]

– SUBST unidad1: /D

Page 6: El Ms-dos y El Ensamblador

TEMA 1: EL MS-DOS Y EL ENSAMBLADOR 6

Departamento de AutomáticaUNIVERSIDAD DE ALCALÁ

2004 - 2005

COMANDOS BASICOSOPERACIONES SOBRE DIRECTORIOS

• CHDIR / CD. Cambiar de directorio

– CHDIR [/D][unidad:][ruta] CD [/D] [unidad:][ruta]

– CHDIR [/D][..] CD [/D][..]

• MD / MKDIR. Crear un directorio

– MKDIR [unidad:]ruta MD [unidad:]ruta

• RD /RMDIR. Borrar un directorio vacío ([/S][/Q] en W2000)

– RMDIR [/S][/Q][unidad:]ruta RD [/S][/Q][unidad:]ruta

• DELTREE. Borra un directorio y todo su contenido (No válido W2000)

– DELTREE [/Y] [unidad:]ruta

Page 7: El Ms-dos y El Ensamblador

TEMA 1: EL MS-DOS Y EL ENSAMBLADOR 7

Departamento de AutomáticaUNIVERSIDAD DE ALCALÁ

2004 - 2005

COMANDOS BASICOSOPERACIONES SOBRE DIRECTORIOS

• TREE. Presenta de forma gráfica la estructura de directorios

– TREE [unidad:][ruta] [/F] [/A]

• DIR. Muestra el contenido de un directorio

– DIR [unidad:][ruta][archivo] [/A[[:]atributos]] [/B] [/C] [/D] [/L] [/N]

– [/O[:]orden]] [/P] [/Q] [/S] [/T[[:]fecha]] [/W] [/X] [/4]

Page 8: El Ms-dos y El Ensamblador

TEMA 1: EL MS-DOS Y EL ENSAMBLADOR 8

Departamento de AutomáticaUNIVERSIDAD DE ALCALÁ

2004 - 2005

COMANDOS BASICOS

• ATTRIB. Cambia los atributos de un fichero

– ATTRIB [+R|-R] [+A|-A] [+S|-S] [+H|-H] [[unidad:][ruta]nombrearchivo] [/S][/D]

• TYPE. Presenta el contenido de un archivo de texto

– TYPE [unidad:][ruta]nombrearchivo

• MORE. Presenta información de salida, pantalla a pantalla

– MORE [/E [/C] [/P] [/S] [/Tn] [+n]] < [unidad:][ruta]archivo

• SORT. Ordena líneas de un fichero

– SORT [/R] [/+n] [/M kilobytes] [/RE bytesregistrados] [[unidad1:][ruta1]nombre_archivo1]

[/T [unidad2:] [ruta2]] [/O [unidad3:][ruta3] nombre_archivo3]

OPERACIONES CON FICHEROS

Page 9: El Ms-dos y El Ensamblador

TEMA 1: EL MS-DOS Y EL ENSAMBLADOR 9

Departamento de AutomáticaUNIVERSIDAD DE ALCALÁ

2004 - 2005

COMANDOS BASICOSOPERACIONES CON FICHEROS

• COPY. Copia o combina uno o más ficheros en un directorio– COPY [/Y|/-Y] [/N] [/A|/B] origen [/A|/B] [+ origen [/A|/B][+ ...]] [destino [/A|/B]][/V]

• XCOPY.Copia archivos y directorios

– XCOPY origen [destino] [/A|/M] [/D:fecha] [/P] [/S[/E]] [/V] [/W] [/C] [/I] [/Q]

[/F] [/L] [/H] [/R] [/T] [/U] [/K] [/N] [/O] [/X] [/Y] [/-Y] [/Z]

[/EXCLUDE:archivo1[+archivo2][+archivo3]...]

• RENAME / REN. Cambia el nombre de un archivo

– RENAME [unidad:][ruta]nombrearchivo1 nombrearchivo2

– REN [unidad:][ruta]nombrearchivo1 nombrearchivo2

Page 10: El Ms-dos y El Ensamblador

TEMA 1: EL MS-DOS Y EL ENSAMBLADOR 10

Departamento de AutomáticaUNIVERSIDAD DE ALCALÁ

2004 - 2005

COMANDOS BASICOSOPERACIONES CON FICHEROS

• REPLACE. Reemplaza ficheros del destino con archivos del origen

– REPLACE [unidad1:][ruta1]nombrearchivo [unidad2:][ruta2] [/A] [/P] [/R] [/W]

– REPLACE [unidad1:][ruta1]nombrearchivo [unidad2:][ruta2] [/P] [/R] [/S] [/W] [/U]

• MOVE. Mueve ficheros al lugar especificado

– MOVE [/Y|/-Y] [unidad:][ruta]nombrearchivo[,[unidad:][ruta]nombrearchivo[...]]

destino

• DEL / ERASE. Borrar ficheros

– DEL [unidad:][ruta]nombrearchivo [/P]

– ERASE [unidad:][ruta]nombrearchivo [/P]

Page 11: El Ms-dos y El Ensamblador

TEMA 1: EL MS-DOS Y EL ENSAMBLADOR 11

Departamento de AutomáticaUNIVERSIDAD DE ALCALÁ

2004 - 2005

COMANDOS BASICOSOPERACIONES CON FICHEROS

• VERIFY. Especifica que se verifique que se copia correctamente

– VERIFY [ON|OFF]

• FIND. Busca una cadena texto en un archivo

– FIND [/V] [/C] [/N] [/I] "cadena" [[unidad:][ruta]nombrearchivo[...]]

• FC. Compara dos archivos

– FC [/A][/C][/L][/LBn][/N][/T][/U][/W] [/nnnn][unidad1:][ruta1]nombrearchivo1

[unidad2:][ruta2]nombrearchivo2

– FC /B [unidad1:][ruta1]nombrearchivo1 [unidad2:][ruta2]nombrearchivo2

Page 12: El Ms-dos y El Ensamblador

TEMA 1: EL MS-DOS Y EL ENSAMBLADOR 12

Departamento de AutomáticaUNIVERSIDAD DE ALCALÁ

2004 - 2005

Necesidad de un lenguaje ensamblador

• El computador maneja unos y ceros

• El código a ejecutar es una secuencia de unos y ceros almacenada en memoria

• La utilización de mnemónicos simplifica la escritura y depuración

• Existe una relación única entre el ensamblador y el código ejecutable

• El código ensamblador es muy dependiente de la máquina

• El código ensamblador no es ejecutable

Page 13: El Ms-dos y El Ensamblador

TEMA 1: EL MS-DOS Y EL ENSAMBLADOR 13

Departamento de AutomáticaUNIVERSIDAD DE ALCALÁ

2004 - 2005

Fases en el ciclo de desarrollo de un programa

Editor de textos

.ASM

MASM

Errores de ensamblaje

.OBJ

Colocar en librería

LINK

.EXE

Convertir a .COM

CODEVIEW

Errores lógicos

Otros.OBJ

.LIB

FicherosINCLUDE

LIB

EXE2BIN

.COM

.LIB

.MAP

Otros.OBJ o .LIB

LISTFILE

.LST .CRF

.REF

CREF

NO

SI

NO

SI

SI

NO

NO

SI

Page 14: El Ms-dos y El Ensamblador

TEMA 1: EL MS-DOS Y EL ENSAMBLADOR 14

Departamento de AutomáticaUNIVERSIDAD DE ALCALÁ

2004 - 2005

Estructura de un código en ensambladorTITLE helloDOSSEG ; Uso de convenciones de segmentos de Microsoft.MODEL SMALL ; Definición de tamaño SMALL

.STACK 100h ; Reserva de pila de 256 bytes

.DATAmessage DB “Hello world.”,13,10 ; Mensaje a escribirlmessage EQU $ - message

.CODEstart: mov ax, @DATA ;Carga de la localización del segmento

mov ds, ax ; en el registro DS

mov bx, 1 ; Carga 1: Manejador de fichero para ; salida estándar

mov cx, lmessage ; Carga la longitud del mensajemov dx, OFFSET message ; Carga la dirección del mensajemov ah, 40h ;Carga el número de la función DOS de escribirint 21h ; Llama al MS-DOS

mov ax, 4C00h ; Carga el número de función de EXITint 21h ; Llama al MS-DOS

END start

Page 15: El Ms-dos y El Ensamblador

TEMA 1: EL MS-DOS Y EL ENSAMBLADOR 15

Departamento de AutomáticaUNIVERSIDAD DE ALCALÁ

2004 - 2005

Estructura de un código en ensamblador

• MODELOS

– TINY: Código y datos caben en un mismo segmento

– SMALL: Código y datos usan un segmento cada uno de 64K

– MEDIUM: Datos usa un segmento, pero código usa más de uno.

– COMPACT: Código usa un segmento, pero datos más de uno (arrays < 64K)

– LARGE: Código y datos usan más de un segmento (arrays < 64K)

– HUGE: Código y datos usan más de un segmento (arrays > 64K)

Page 16: El Ms-dos y El Ensamblador

TEMA 1: EL MS-DOS Y EL ENSAMBLADOR 16

Departamento de AutomáticaUNIVERSIDAD DE ALCALÁ

2004 - 2005

Estructura de un código en ensamblador• Segmentos básicos

– Definidos usando el orden DOSSEG

– .STACK [tamaño]: Define el tamaño que tendrá la pila (Defecto: 1K)

– .CODE [nombre]: Segmento para el código. (1 para Tiny y Small)

– .DATA: Segmento de datos tipo “near” inicializados

– .DATA?: Segmento de datos tipo “near” no inicializados

– .FARDATA [nombre]: Segmento de datos tipo “far” inicializados

– .FARDATA? [nombre]: Segmento de datos tipo “far” no inicializados

– .CONST: Segmento para constantes

Page 17: El Ms-dos y El Ensamblador

TEMA 1: EL MS-DOS Y EL ENSAMBLADOR 17

Departamento de AutomáticaUNIVERSIDAD DE ALCALÁ

2004 - 2005

El programa ensamblador

• El programa MASM

• MASM [opciones] fuente [,[objeto] [, [fich_lista] [, [fich_referencias]]]] [;]

• Extensión por defecto: .asm

• fuente: Fichero con el código a ensamblar

• objeto: Fichero de salida con el código objeto

• fich_lista: Fichero donde se almacena el listado de ensamblaje

• fich_referencia: Fichero donde se almacenan las referencias cruzadas de los

símbolos

Page 18: El Ms-dos y El Ensamblador

TEMA 1: EL MS-DOS Y EL ENSAMBLADOR 18

Departamento de AutomáticaUNIVERSIDAD DE ALCALÁ

2004 - 2005

El programa ensamblador

• Variables de entorno que afectan al programa

– PATH: Debe incluir el directorio donde están los ejecutables

– INCLUDE: Indica el directorio donde MASM busca los ficheros incluidos

– MASM: Variable que especifica las opciones que el programa activa por defecto

• Las opciones especificadas en la variable MASM pueden ser sobrescritas por

opciones usadas en la llamada al programa

Page 19: El Ms-dos y El Ensamblador

TEMA 1: EL MS-DOS Y EL ENSAMBLADOR 19

Departamento de AutomáticaUNIVERSIDAD DE ALCALÁ

2004 - 2005

El programa ensamblador

• Opciones del programa

/A /Bnúmero /C /D /Dsímbolo[=valor] /E

/H /Ipath /L /ML /MU /MX /N

/P /S /T /V /W{0|1|2} /X /Z

/ZD /ZI

Page 20: El Ms-dos y El Ensamblador

TEMA 1: EL MS-DOS Y EL ENSAMBLADOR 20

Departamento de AutomáticaUNIVERSIDAD DE ALCALÁ

2004 - 2005

El programa de enlazado

• El programa LINK

• Variables de entorno que afectan al programa

– PATH: Debe incluir el directorio donde están los ejecutables

– LIB: Indica el directorio donde LINK busca las librerías

– TMP: Indica el directorio donde LINK deja los ficheros temporales necesarios

– LINK: Variable que especifica las opciones que el programa activa por defecto

• Las opciones especificadas en la variable LINK pueden ser sobreescritas por

opciones usadas en la llamada al programa

Page 21: El Ms-dos y El Ensamblador

TEMA 1: EL MS-DOS Y EL ENSAMBLADOR 21

Departamento de AutomáticaUNIVERSIDAD DE ALCALÁ

2004 - 2005

El programa de enlazado• Opciones:

/BATCH /CODEVIEW /CPARMAXALLOC /DOSSEG

/DSALLOCATE /EXEPACK /FARCALLTRANSLATION /HELP

/HIGH /INFORMATION /LINENUMBERS /MAP

/NODEFAULTLIBRARYSEARCH /NOEXTDICTIONARY

/NOFARCALLTRANSLATION /NOGROUPASSOCIATION /NOIGNORECASE

/NOPACKCODE /OVERLAYINTERRUPT /PACKCODE /PAUSE

/QUICKLIBRARY /SEGMENTS /STACK

• Para introducir información de depuración se utiliza la opción /CO

Page 22: El Ms-dos y El Ensamblador

TEMA 1: EL MS-DOS Y EL ENSAMBLADOR 22

Departamento de AutomáticaUNIVERSIDAD DE ALCALÁ

2004 - 2005

El programa de enlazado• Genera ficheros extensión .EXE

• Puede generar un fichero .MAP que indica la zona de memoria usada

Start Stop Length Name Class

00000H 00026H 00027H _TEXT CODE

00028H 00035H 0000EH _DATA DATA

00040H 0013FH 00100H STACK STACK

Origin Group

0002:0 DGROUP

Program entry point at 0000:0010

Page 23: El Ms-dos y El Ensamblador

TEMA 1: EL MS-DOS Y EL ENSAMBLADOR 23

Departamento de AutomáticaUNIVERSIDAD DE ALCALÁ

2004 - 2005

El depurador

• Existen dos depuradores:

– CodeView. Programa que viene con el ensamblador.

– Debug. Programa que viene con el MS-DOS

• Es necesario ensamblar y enlazar el código con las opciones de depuración

• Nos permiten

– Ver el estado de la memoria y los registros de la máquina en cualquier instante

– Modificar el estado de la memoria y los registros de la máquina en cualquier instante

– Ejecutar el código paso a paso

Page 24: El Ms-dos y El Ensamblador

TEMA 1: EL MS-DOS Y EL ENSAMBLADOR 24

Departamento de AutomáticaUNIVERSIDAD DE ALCALÁ

2004 - 2005

El depurador

Page 25: El Ms-dos y El Ensamblador

TEMA 1: EL MS-DOS Y EL ENSAMBLADOR 25

Departamento de AutomáticaUNIVERSIDAD DE ALCALÁ

2004 - 2005

El depurador• Comandos más comunes

– Trace: T [n] Para ejecutar n líneas entrando en las funciones

– Program Step: P [n] Para ejecutar n líneas sin entrar en las funciones

– Go: G [addr] Para ejecutar hasta la dirección addr o fin de programa

– Watch : W[tipo] rango Para mostrar posiciones de memoria en el rango indicado

– Enter: E[tipo] addr [list] Para modificar las posiciones de memoria

– Dump: D[tipo] [rango] Para mostrar las posiciones de memoria

– R[reg [expresión]] Para cambiar el valor de un registro

– RF [flag] Para cambiar el valor de un flag

Page 26: El Ms-dos y El Ensamblador

TEMA 1: EL MS-DOS Y EL ENSAMBLADOR 26

Departamento de AutomáticaUNIVERSIDAD DE ALCALÁ

2004 - 2005

El depurador• Comando DEBUG

• DEBUG [programa]

• Una vez arrancado soporta los siguientes comandos:

Assemble [A] Compare [C] Dump [D] Enter [E] Fill [F]

Go [G] Hex [H] Input [I] Load [L] Move [M]

Name [N] Output [O] Proceed [P] Quit [Q] Register [R]

Search [S] Trace [T] Unassemble [U] Write [W]

• La ayuda aparece con ?

Page 27: El Ms-dos y El Ensamblador

TEMA 1: EL MS-DOS Y EL ENSAMBLADOR 27

Departamento de AutomáticaUNIVERSIDAD DE ALCALÁ

2004 - 2005

El depuradorC:\alcala\Masm51\source>debug hello.exe

-r

AX=0000 BX=0000 CX=00FF DX=0000 SP=0100 BP=0000 SI=0000 DI=0000

DS=0F31 ES=0F31 SS=0F45 CS=0F41 IP=0010 NV UP EI PL NZ NA PO NC

0F41:0010 B8430F MOV AX,0F43

-d

0F41:0010 B8 43 0F 8E D8 BB 01 00-B9 0E 00 BA 08 00 B4 40 .C.............@

0F41:0020 CD 21 B8 00 4C CD 21 00-48 65 6C 6C 6F 20 77 6F .!..L.!.Hello wo

0F41:0030 72 6C 64 2E 0D 0A 4E 42-30 30 8D 00 00 00 00 00 rld...NB00......

0F41:0040 10 00 17 00 00 00 00 00-00 00 09 48 45 4C 4C 4F ...........HELLO

0F41:0050 2E 4F 42 4A 00 00 00 00-01 00 06 5F 65 64 61 74 .OBJ......._edat

0F41:0060 61 20 00 02 00 00 00 04-5F 65 6E 64 01 03 00 72 a ......_end...r

0F41:0070 80 74 01 03 00 72 80 73-0F 05 08 00 02 00 94 00 .t...r.s........

0F41:0080 07 4D 45 53 53 41 47 45-0A 0B 10 00 00 05 53 54 .MESSAGE......ST

-