Sie sind auf Seite 1von 5

Acceso A Discos En

Lenguaje Ensamblador

Acceso A Discos En Lenguaje


Ensamblador
Para leer o escribir en un disco, no se realiza byte a
byte, sino ms bien en bloques de bytes, debido a que
el acceso a disco implica movimientos mecnicos
adems de que el acceso se da por sectores; en este
proceso no intervienen el CPU, puesto que solo enva los
comandos a la interface que maneja la unidad de disco
y sta es la que se encarga de leer o escribir
informacin de un rea especial de memoria, llamada
DMA; este proceso es conocido como acceso directo a
memoria.

Ejemplo
El sistema de almacenamiento en disco constituye el soporte externo de la
informacin. Los datos se registran sobre la superficie del disco en una serie
de circunferencias concntricas llamadas pistas (track).
Rutina _AbsoluteRead: Transfiere el contenido de uno ms sectores del disco
al buffer especificado, accesando directamente a los sectores lgicos. En caso
de error, se enciende el bit de acarreo y AX contiene el cdigo del error.
Invocacin:
push <unidad de disco>
push <nmero de sectores a leer>
push <primer sector a leer>
push SEG <buffer>
push OFFSET <buffer>

call _AbsoluteRead
PUBLIC _AbsoluteRead
_AbsoluteRead PROC NEAR
ARG Buffer:DWORD,Start:WORD,NumSect:WORD,Drive:BYTE= ArgLen
push bp
; salvar BP
mov bp,sp
; permitir acceso a los argumentos
push bx
; salvar registros
push cx
push dx
push ds
mov al,Drive

; lectura absoluta de disco


mov cx,NumSect
mov dx,Start
lds bx,Buffer
int 25h
pop bx
pop ds
; recuperar registros
pop dx
pop cx
pop bx
pop bp
ret ArgLen
_AbsoluteRead ENDP

Das könnte Ihnen auch gefallen