Download - 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
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
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
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
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
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
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]
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
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
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]
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
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
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
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
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)
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
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
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
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
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
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
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
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
TEMA 1: EL MS-DOS Y EL ENSAMBLADOR 24
Departamento de AutomáticaUNIVERSIDAD DE ALCALÁ
2004 - 2005
El depurador
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
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 ?
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
-