.MODEL    SMALL

.DATA

     EXTRN     SECTOR:BYTE
     EXTRN     DISK_DRIVE_NO:BYTE
     EXTRN     CURRENT_SECTOR_NO:WORD

.CODE

     PUBLIC    READ_SECTOR
;-----------------------------------------------------------------------;
; Este procedimiento lee un sector (512 bytes) y lo almacena en SECTOR. ;
;                                                                       ;
; Lee:         CURRENT_SECTOR_NO, DISK_DRIVE_NO                         ;
; Escribe:     SECTOR                                                   ;
;-----------------------------------------------------------------------;
READ_SECTOR    PROC
     PUSH AX
     PUSH BX
     PUSH CX
     PUSH DX
     MOV  AL,DISK_DRIVE_NO      ;N£mero de la unidad de disco
     MOV  CX,1                  ;Lee s¢lo un sector
     MOV  DX,CURRENT_SECTOR_NO  ;N£mero de sector l¢gico
     LEA  BX,SECTOR             ;Lugar donde almacena el sector
     INT  25h                   ;Lee el sector
     POPF                       ;Desecha los indicadores que el DOS ha puesto
     POP  DX                    ; en la pila
     POP  CX
     POP  BX
     POP  AX
     RET
READ_SECTOR    ENDP


     END
