PDF de programación - Práctica de Programación en Ensamblador (88110)

Imágen de pdf Práctica de Programación en Ensamblador (88110)

Práctica de Programación en Ensamblador (88110)gráfica de visualizaciones

Publicado el 10 de Mayo del 2018
700 visualizaciones desde el 10 de Mayo del 2018
306,8 KB
42 paginas
Creado hace 5a (15/09/2014)
Práctica de Programación en Ensamblador

(88110)

Laboratorio de Estructura de Computadores

Departamento de Arquitectura y Tecnología de Sistemas Informáticos

desde Feb-2015

Programación en Ensamblador (15-09-2014)

1

La práctica consiste en la programación en ensamblador del Motorola 88110 de un
conjunto de rutinas que permitan realizar determinadas operaciones en una pequeña tabla
que simula el comportamiento de la FAT (tabla de asignación de ficheros) del sistema
operativo MS-DOS.

AVISO

El enunciado de esta práctica coincide con el correspondiente cursos anteriores, por
lo que aquellos alumnos que tengan que repetir o corregir la práctica podrán utilizar los
programas ya realizados por ellos mismos durante dichos cursos académicos.

La práctica se realizará de forma individual.

Sistema operativo MS-DOS

Este sistema emplea disquetes y unidades de disco, pero en todos los casos los sectores
son de 512 bytes. Las unidades de disco pueden dividirse en particiones, considerando
cada partición como una unidad de disco independiente. La unidad de información en
que se almacenan los ficheros es la agrupación (cluster), que es un conjunto de n sectores
contiguos (n = 2k, k = 0, 1, 2, ..).

Un disco (una partición) se divide en cuatro zonas como puede verse en la figura 1.

Estas zonas son:

Figura 1. Estructuración de un disco en MS-DOS.

1. Boot o sector de arranque. Es el primero del disco y contiene un pequeño pro-
grama que busca los ficheros ocultos IO.SYS y MSDOS.SYS en el directorio raíz, si
los encuentra carga el sistema operativo y en caso contrario muestra un mensaje de
error. Además, contiene información como el nombre y versión del sistema operativo,
características del disco e información sobre la FAT y el directorio raíz.

2. Copias de la FAT. La FAT es la tabla de asignación de ficheros (File Allocate
Table) que se describirá posteriormente. En MS-DOS la FAT se encuentra duplicada
para hacer el sistema más tolerante a fallos de funcionamiento.

3. Directorio raíz. Es la zona del disco en la que se almacenan los directorios y deter-
minados ficheros. Tiene un tamaño prefijado, por ejemplo, un disco de 244 Mbytes
tiene un directorio raíz de 32 sectores, que suponen 512 entradas o alojamientos para
directorios o ficheros. Cada entrada o alojamiento de un directorio, subdirectorio o
fichero tiene una extensión de 32 bytes y consta de los campos que pueden verse en
la figura 2 y que son:

BootDatos y directoriosDirectorio raíz2 copias de la FAT 2

Programación en Ensamblador (15-09-2014)

Figura 2. Estructura de cada alojamiento del directorio raíz.

Nombre. Tiene una extensión de 8 bytes. Si el primer byte de este campo
es H’00 quiere decir que ese alojamiento no ha sido utilizado, y si es H’E5
indica que el alojamiento fue utilizado y posteriormente borrado. Para añadir
un fichero o directorio nuevo se busca el primer alojamiento que tenga su primer
byte a H’00 ó a H’E5.
Extensión. Ocupa 3 bytes, con lo cual los ficheros y directorios quedan deno-
minados con un nombre de ocho caracteres y una extensión de tres.
Atributos. Es un byte que indica ciertas características de un alojamiento:
fichero de sólo lectura (R), fichero oculto (H), fichero de sistema (S), fichero a
archivar (A), subdirectorio (D).
Hora y fecha. Se representa la hora, minutos y segundos de la última actua-
lización del fichero. Análogamente se representa el año, mes y día.
Primera agrupación. Este campo sirve para determinar el primer sector del
disco en que se encuentra el fichero, al describir la FAT se analizará cómo se
realiza.
Tamaño. Este campo indica el tamaño del fichero en bytes.

4. Datos y directorios. Esta zona corresponde al resto del disco y es donde se alma-
cenan los ficheros y los subdirectorios, de forma que su tamaño y ubicación están
regulados por la FAT.

Tabla de asignación de ficheros (FAT)

En el sistema operativo MS-DOS existen tablas de asignación de 12, 16 y 32 bits. Nos
referiremos exclusivamente a la de 16 bits ya que el tratamiento sería el mismo con otro
número de bits. En este caso, cada elemento de la FAT tiene 16 bits y van numerados
desde 0 hasta 65535 = 216 − 1 =H’FFFF, indicando la agrupación que ocupa en el disco.
Los dos primeros elementos no especifican ficheros o subdirectorios, de forma que:

El primero especifica el formato del disco, indicando el tipo de disco que tenemos.

El segundo está reservado para otras funciones del sistema operativo, siendo su valor
estándar H’FFFF.

El resto de elementos identifican una agrupación (desde la 2 hasta la 65535) de forma

que su contenido tiene el siguiente significado:

H’0000 indica que se trata de una agrupación disponible

Desde H’FFF8 hasta H’FFFF indican que es la última agrupación de un fichero o de
un subdirectorio

NombreExtensiónAtReservadoHoraFecha1ª Agrup.Tamaño422210380810111221222426282725233171 Programación en Ensamblador (15-09-2014)

3

H’FFF7 indica que es una agrupación con sectores dañados

Cualquier otro valor, H’XXXX, indica que es una agrupación usada en un fichero,
siendo el valor almacenado H’XXXX la agrupación donde continúa el fichero

Simulador de la FAT

En esta práctica, manteniendo todas las características conceptuales vistas en el siste-
ma MS-DOS, se considerará una FAT de 8 bits, lo que supone una FAT con un número
máximo de 256 entradas. Se considerará que las cuatro primeras entradas están reservadas
y que el contenido de las restantes tiene el siguiente significado:

H’00 indica una agrupación disponible

H’FF indica que es la última agrupación de un fichero o de un subdirectorio

H’XX indica que es una agrupación usada en un fichero siendo H’XX la agrupación
donde continúa el fichero

La unidad de disco considerada tiene sectores de 64 bytes y las agrupaciones son de
un sector. El directorio raíz consta de dos sectores y cada alojamiento para un directorio,
subdirectorio o fichero consta de:

4 bytes para el nombre. El nombre puede tener como máximo cuatro caracteres, si
tuviese menos el nombre termina cuando se encuentre el carácter NUL (H’00).

1 byte para el atributo. Solamente puede haber dos atributos, H’41 (A) para indicar
que se trata de un archivo1 y H’44 (D) para indicar que se trata de un directorio.

1 byte para la primera agrupación.

2 bytes para el tamaño, expresado en bytes.

por lo tanto, cada sector tiene 8 alojamientos y el directorio raíz 16.

La FAT que se considera en la simulación que se hace de la unidad de disco está conte-
nida en un sector, por lo tanto, de las 256 entradas posibles solo se contemplan 64, desde
la 0 (H’00) hasta la 63 (H’3F). Como las cuatro primeras entradas quedan reservadas, la
zona de datos del disco está constituida por 60 sectores, quedando el disco que se simula
como puede verse en la figura 3.

Figura 3. Estructura de la unidad de disco simulada.

1Denominaremos ’Archivo’ a un fichero que no es un subdirectorio, ’Directorio’ al que sí lo es y utiliza-

remos ’Fichero’ como nombre genérico para denominar a ambos.

Datos y directoriosDirectorio raíz2 sectores60 sectores128 bytesFormato63432101 sector64 bytes1 sector64 bytes3840 bytesFAT 4

Programación en Ensamblador (15-09-2014)

En esta unidad de disco que se simula, el valor de cada entrada de la FAT coincide con

el valor del sector absoluto donde se almacena el fichero.

Por último, en la implementación de la FAT simulada y las rutinas que han de cons-

truirse para gestionarla, se utilizarán dos tipos de nombre de fichero:

Nombre relativo a un subdirectorio: Contendrá un máximo de cuatro caracteres al-
fanuméricos comenzando por un carácter alfabético. Ejemplo: “PROB”. Si el nombre
tuviera menos de cuatro caracteres, tendría que finalizar con el carácter terminador
H’00. Ejemplo: “Z\0”.

Ruta o nombre completo del fichero: Incluirá la relación de subdirectorios que per-
miten llegar a dicho fichero desde el directorio raíz, separados por un carácter
especial, el separador ’/’ (H’2F). Ejemplo: “/DIR2/SD22/SLAB/PROB\0”, donde el
carácter ’\0’ (H’00) se utiliza como terminador de la cadena de caracteres.

Ejemplo

A continuación se describe el contenido de un disco con una serie de ficheros y direc-
torios que se utilizará como ejemplo. El contenido del disco en un instante dado es el que
se muestra en la figura 4.

Las estructuras de datos que lo describen son las que se expresan a continuación.
El contenido de la FAT es:

Sector Contenido

Sector Contenido

Sector Contenido

Sector Contenido

0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

0xFF
0xFF
0xFF
0xFF
0xFF
0xFF
0x07
0xFF
0xFF
0xFF
0x12
0x00
0x00
0xFF
0x14
0xFF

16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31

0xFF
0xFF
0xFF
0x00
0x1D
0x00
0xFF
0xFF
0xFF
0xFF
0x00
0x00
0x00
0x25
0x00
0x2C

32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47

0xFF
0x00
0x00
0x00
0x00
0x2A
0xFF
0xFF
0x30
0x00
0xFF
0x00
0x2D
0x31
0x00
0x00

Las entradas del directorio raíz son:

Entrada Contenido

0
1
2
3

44495231 44040000 (DIR1 D 04 0000)
44495232 44050000 (DIR2 D 05 0000)
494F0000 41060064 (
IO A 06 0100)
444F5300 41080032 ( DOS A 08 0050)

48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63

0xFF
0xFF
0x33
0xFF
0xFF
0xFF
0x38
0xFF
0xFF
0x00
0x00
0x00
0x00
0x00
0x00
0x00

Programación en Ensamblador (15-09-2014)

5

Figura 4. Directorio en árbol del ejemplo considerado.

E5495233 44090000 (entrada borrada)
544D5000 44200000 ( TMP D 32 0000)
00000000 00000000 (entrada libre)

4
5
6
................................

El sector 5 del disco corresponde al directorio DIR2, que contiene:

Entrada Contenido

53443231 44090000 (SD21 D 09 0000)
53443232 440A0000 (SD22 D 10 0000)
53443233 440D0000 (SD23 D 13 0000)
00000000 00000000 (entrada libre)

0
1
2
3
................................

El sector 10 del disco corresponde al subdirectorio SD22, que contiene:

Entrada Contenido

0
1

434F4F52 410E012C (COOR A 14 0300)
534C4142 440F0000 (SLAB D 15 0000)

RAIZDIR1DIR2DOSTMPSSTRSAMPTRIBSDECSDMCSAPISTFCSARQSESTSLA
  • Links de descarga
http://lwp-l.com/pdf11024

Comentarios de: Práctica de Programación en Ensamblador (88110) (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad