Está en la página 1de 27

UNIVERSIDAD DE ALCAL

Departamento de Automtica

EL MS-DOS Y EL ENSAMBLADOR
Funciones de un sistema operativo Nucleo de un sistema operativo El MS-DOS. Comandos bsicos Necesidad de un lenguaje ensamblador Fases en el ciclo de desarrollo de un programa Estructura de un cdigo en ensamblador Obtencin del fichero objeto: el programa ensamblador Obtencin del ejecutable: el programa de enlazado Depuracin del cdigo: el depurador
TEMA 1: EL MS-DOS Y EL ENSAMBLADOR 1

2004 - 2005

UNIVERSIDAD DE ALCAL
Departamento de Automtica

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

2004 - 2005

TEMA 1: EL MS-DOS Y EL ENSAMBLADOR

UNIVERSIDAD DE ALCAL
Departamento de Automtica

NIVELES DE UN S.O.
Un sistema operativo est estratificado en capas para facilitar su comprensin y reducir su complejidad Las diferentes capas se comunican entre s mediante peticin-realizacin de servicios

2004 - 2005

TEMA 1: EL MS-DOS Y EL ENSAMBLADOR

UNIVERSIDAD DE ALCAL
Departamento de Automtica

COMANDOS BASICOS
SISTEMA DE FICHEROS
SE DIVIDE EN UNIDADES LOGICAS INDEPENDIENTES CADA UNIDAD SE ORGANIZA EN DIRECTORIOS Y SUBDIRECTORIOS PERMISOS DE ACCESO Y MODIFICACIN LIMITADOS

2004 - 2005

TEMA 1: EL MS-DOS Y EL ENSAMBLADOR

UNIVERSIDAD DE ALCAL
Departamento de Automtica

COMANDOS BASICOS
SISTEMA DE FICHEROS
FORMAT
FORMAT volumen [/FS:sist_arch] [/V:etiqueta] [/Q] [/A:tamao] [/C] [/X] FORMAT volumen [/V:etiqueta] [/Q] [/F:tamao] 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[:tamao]]

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


SUBST [unidad1: [unidad2:]ruta] SUBST unidad1: /D

2004 - 2005

TEMA 1: EL MS-DOS Y EL ENSAMBLADOR

UNIVERSIDAD DE ALCAL
Departamento de Automtica

COMANDOS BASICOS
OPERACIONES SOBRE DIRECTORIOS
CHDIR / CD. Cambiar de directorio
CHDIR [/D][unidad:][ruta] CHDIR [/D][..] CD [/D] [unidad:][ruta] CD [/D][..]

MD / MKDIR. Crear un directorio


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

RD /RMDIR. Borrar un directorio vaco ([/S][/Q] en W2000)


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

DELTREE. Borra un directorio y todo su contenido (No vlido W2000)


DELTREE [/Y] [unidad:]ruta

2004 - 2005

TEMA 1: EL MS-DOS Y EL ENSAMBLADOR

UNIVERSIDAD DE ALCAL
Departamento de Automtica

OPERACIONES SOBRE DIRECTORIOS


TREE. Presenta de forma grfica la estructura de directorios
TREE [unidad:][ruta] [/F] [/A]

COMANDOS BASICOS

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]

2004 - 2005

TEMA 1: EL MS-DOS Y EL ENSAMBLADOR

UNIVERSIDAD DE ALCAL
Departamento de Automtica

OPERACIONES CON FICHEROS


ATTRIB. Cambia los atributos de un fichero
ATTRIB [+R|-R] [+A|-A] [+S|-S] [+H|-H] [[unidad:][ruta]nombrearchivo] [/S][/D]

COMANDOS BASICOS

TYPE. Presenta el contenido de un archivo de texto


TYPE [unidad:][ruta]nombrearchivo

MORE. Presenta informacin de salida, pantalla a pantalla


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

SORT. Ordena lneas de un fichero


SORT [/R] [/+n] [/M kilobytes] [/RE bytesregistrados] [[unidad1:][ruta1]nombre_archivo1] [/T [unidad2:] [ruta2]] [/O [unidad3:][ruta3] nombre_archivo3]

2004 - 2005

TEMA 1: EL MS-DOS Y EL ENSAMBLADOR

UNIVERSIDAD DE ALCAL
Departamento de Automtica

OPERACIONES CON FICHEROS


COPY. Copia o combina uno o ms ficheros en un directorio
COPY [/Y|/-Y] [/N] [/A|/B] origen [/A|/B] [+ origen [/A|/B][+ ...]] [destino [/A|/B]][/V]

COMANDOS BASICOS

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

2004 - 2005

TEMA 1: EL MS-DOS Y EL ENSAMBLADOR

UNIVERSIDAD DE ALCAL
Departamento de Automtica

OPERACIONES 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]

COMANDOS BASICOS

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]

2004 - 2005

TEMA 1: EL MS-DOS Y EL ENSAMBLADOR

10

UNIVERSIDAD DE ALCAL
Departamento de Automtica

COMANDOS BASICOS
OPERACIONES 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

2004 - 2005

TEMA 1: EL MS-DOS Y EL ENSAMBLADOR

11

UNIVERSIDAD DE ALCAL
Departamento de Automtica

Necesidad de un lenguaje ensamblador


El computador maneja unos y ceros El cdigo a ejecutar es una secuencia de unos y ceros almacenada en memoria La utilizacin de mnemnicos simplifica la escritura y depuracin Existe una relacin nica entre el ensamblador y el cdigo ejecutable El cdigo ensamblador es muy dependiente de la mquina El cdigo ensamblador no es ejecutable

2004 - 2005

TEMA 1: EL MS-DOS Y EL ENSAMBLADOR

12

UNIVERSIDAD DE ALCAL
Departamento de Automtica

Fases en el ciclo de desarrollo de un programa


Editor de textos
.ASM Ficheros INCLUDE

MASM

.LST SI Errores de ensamblaje NO

.CRF

CREF
.OBJ Otros .OBJ o .LIB

.REF Colocar en librera NO SI

LIB

LISTFILE

Otros .OBJ

LINK
.LIB .EXE

.LIB

.MAP

Convertir a .COM

SI

EXE2BIN

NO .COM

CODEVIEW

SI

Errores lgicos NO

2004 - 2005

TEMA 1: EL MS-DOS Y EL ENSAMBLADOR

13

UNIVERSIDAD DE ALCAL
Departamento de Automtica

Estructura de un cdigo en ensamblador


TITLE DOSSEG .MODEL .STACK message lmessage start: .DATA DB EQU .CODE mov mov mov mov mov mov int mov int END hello SMALL 100h Hello world.,13,10 $ - message ax, @DATA ds, ax bx, 1 cx, lmessage dx, OFFSET message ah, 40h 21h ax, 4C00h 21h start ; Uso de convenciones de segmentos de Microsoft ; Definicin de tamao SMALL ; Reserva de pila de 256 bytes ; Mensaje a escribir

;Carga de la localizacin del segmento ; en el registro DS ; Carga 1: Manejador de fichero para ; salida estndar ; Carga la longitud del mensaje ; Carga la direccin del mensaje ;Carga el nmero de la funcin DOS de escribir ; Llama al MS-DOS ; Carga el nmero de funcin de EXIT ; Llama al MS-DOS

2004 - 2005

TEMA 1: EL MS-DOS Y EL ENSAMBLADOR

14

UNIVERSIDAD DE ALCAL
Departamento de Automtica

Estructura de un cdigo en ensamblador


MODELOS
TINY: Cdigo y datos caben en un mismo segmento SMALL: Cdigo y datos usan un segmento cada uno de 64K MEDIUM: Datos usa un segmento, pero cdigo usa ms de uno. COMPACT: Cdigo usa un segmento, pero datos ms de uno (arrays < 64K) LARGE: Cdigo y datos usan ms de un segmento (arrays < 64K) HUGE: Cdigo y datos usan ms de un segmento (arrays > 64K)

2004 - 2005

TEMA 1: EL MS-DOS Y EL ENSAMBLADOR

15

UNIVERSIDAD DE ALCAL
Departamento de Automtica

Estructura de un cdigo en ensamblador


Segmentos bsicos
Definidos usando el orden DOSSEG .STACK [tamao]: Define el tamao que tendr la pila (Defecto: 1K) .CODE [nombre]: Segmento para el cdigo. (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
2004 - 2005 TEMA 1: EL MS-DOS Y EL ENSAMBLADOR 16

UNIVERSIDAD DE ALCAL
Departamento de Automtica

El programa ensamblador
El programa MASM MASM [opciones] fuente [,[objeto] [, [fich_lista] [, [fich_referencias]]]] [;] Extensin por defecto: .asm fuente: Fichero con el cdigo a ensamblar objeto: Fichero de salida con el cdigo objeto fich_lista: Fichero donde se almacena el listado de ensamblaje fich_referencia: Fichero donde se almacenan las referencias cruzadas de los smbolos
2004 - 2005 TEMA 1: EL MS-DOS Y EL ENSAMBLADOR 17

UNIVERSIDAD DE ALCAL
Departamento de Automtica

El programa ensamblador
Variables de entorno que afectan al programa
PATH: Debe incluir el directorio donde estn 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

2004 - 2005

TEMA 1: EL MS-DOS Y EL ENSAMBLADOR

18

UNIVERSIDAD DE ALCAL
Departamento de Automtica

El programa ensamblador
Opciones del programa

/A /H /P /ZD

/Bnmero /Ipath /S /ZI

/C /L /T

/D /ML /V

/Dsmbolo[=valor] /MU /W{0|1|2} /MX /X

/E /N /Z

2004 - 2005

TEMA 1: EL MS-DOS Y EL ENSAMBLADOR

19

UNIVERSIDAD DE ALCAL
Departamento de Automtica

El programa de enlazado
El programa LINK Variables de entorno que afectan al programa
PATH: Debe incluir el directorio donde estn los ejecutables LIB: Indica el directorio donde LINK busca las libreras 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

2004 - 2005

TEMA 1: EL MS-DOS Y EL ENSAMBLADOR

20

UNIVERSIDAD DE ALCAL
Departamento de Automtica

El programa de enlazado
Opciones:
/CODEVIEW /EXEPACK /INFORMATION /CPARMAXALLOC /FARCALLTRANSLATION /LINENUMBERS /NOEXTDICTIONARY /NOGROUPASSOCIATION /PACKCODE /NOIGNORECASE /PAUSE /DOSSEG /HELP /MAP /BATCH /DSALLOCATE /HIGH

/NODEFAULTLIBRARYSEARCH /NOFARCALLTRANSLATION /NOPACKCODE /QUICKLIBRARY

/OVERLAYINTERRUPT /SEGMENTS /STACK

Para introducir informacin de depuracin se utiliza la opcin /CO


TEMA 1: EL MS-DOS Y EL ENSAMBLADOR 21

2004 - 2005

UNIVERSIDAD DE ALCAL
Departamento de Automtica

El programa de enlazado
Genera ficheros extensin .EXE Puede generar un fichero .MAP que indica la zona de memoria usada
Stop 00026H 00035H 0013FH Length 00027H 0000EH 00100H Name _TEXT _DATA STACK Class CODE DATA STACK

Start 00000H 00028H 00040H

Origin Group 0002:0 DGROUP Program entry point at 0000:0010

2004 - 2005

TEMA 1: EL MS-DOS Y EL ENSAMBLADOR

22

UNIVERSIDAD DE ALCAL
Departamento de Automtica

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 cdigo con las opciones de depuracin Nos permiten
Ver el estado de la memoria y los registros de la mquina en cualquier instante Modificar el estado de la memoria y los registros de la mquina en cualquier instante Ejecutar el cdigo paso a paso
2004 - 2005 TEMA 1: EL MS-DOS Y EL ENSAMBLADOR 23

UNIVERSIDAD DE ALCAL
Departamento de Automtica

El depurador

2004 - 2005

TEMA 1: EL MS-DOS Y EL ENSAMBLADOR

24

UNIVERSIDAD DE ALCAL
Departamento de Automtica

El depurador
Comandos ms comunes
Trace: T [n] Para ejecutar n lneas entrando en las funciones Program Step: P [n] Para ejecutar n lneas sin entrar en las funciones Go: G [addr] Para ejecutar hasta la direccin 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 [expresin]] Para cambiar el valor de un registro RF [flag] Para cambiar el valor de un flag
2004 - 2005 TEMA 1: EL MS-DOS Y EL ENSAMBLADOR 25

UNIVERSIDAD DE ALCAL
Departamento de Automtica

El depurador
Comando DEBUG DEBUG [programa] Una vez arrancado soporta los siguientes comandos: Compare [C] Hex [H] Output [O] Trace [T] Dump [D] Input [I] Proceed [P] Enter [E] Load [L] Quit [Q] Fill [F] Move [M] Register [R]

Assemble [A] Go [G] Name [N] Search [S]

Unassemble [U] Write [W]

La ayuda aparece con ?


2004 - 2005 TEMA 1: EL MS-DOS Y EL ENSAMBLADOR 26

UNIVERSIDAD DE ALCAL
Departamento de Automtica

El depurador
C:\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 -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 MOV AX,0F43

2004 - 2005

TEMA 1: EL MS-DOS Y EL ENSAMBLADOR

27