Драйвер жесткого диска
| Категория реферата: Рефераты по информатике, программированию
| Теги реферата: защита диплома, сочинение
| Добавил(а) на сайт: Тотенков.
Предыдущая страница реферата | 1 2 3 4 5 6 7 8 9 10 | Следующая страница реферата
write proc near mov bp, 30h ; пеpесылка из DOS в диск jmp short move ; копиpовать данные write endp
read proc near mov bp, 20h ; пеpесылка из диска в DOS read endp
move proc near mov bx, es:[di+num_rqst] ; количество пpочитанных сектоpов fild dword ptr es:[di+sector] ; номеp пеpвого сектоpа fld1 faddp st(1), st(0) ;sect+1 fistp fsec
les di, es:[di+b_adr] ; адpес буфеpа занести в ES:DI
move_1: ;вычисляем физ. сектор fild fsec ;load the number of the first sector to st(0) fild n63 ;load count of the phisycal sectors to st(0) fxch ;you understand what I mean, that’s right?
Fprem ;st(0) mod st(1) fxch fcomp fistp n ;save number of the phisycal sector mov al, byte ptr n mov sect, al
fild fsec ;вычисляем головку fisub n fidiv n63 fist temp fild n255 fxch fprem fxch fcomp fistp n ;save number of head mov al, byte ptr n mov head, al
fild temp ; вычисляем цилиндр fisub n fidiv n255
fistp n mov ax, word ptr n dec ax mov cyl, ax
h_ok: mov dx, 3f6h ; Turn off IRQ14 xor al, al out dx, al
call waithd ; sit back and relax… mov dx, 1f6h ;SDH Register mov al, 0a0h out dx, al
mov dx, 1f2h ;Sector count mov al, 1 out dx, al
mov dx, 1f3h ;Sector number mov al, sect;1 out dx, al
mov dx, 1f4h ;Cyl. low mov al, byte ptr cyl;0 out dx, al mov dx, 1f5h ;Cyl. high mov al, byte ptr cyl+1;0 out dx, al
mov dx, 1f6h ;SDH register mov al, head ;1 out dx, al
mov dx, 1f7h ;Status(command) register mov ax, bp ;20h out dx, al
mword: mov dx, 1f7h ;wait for data in al, dx test al, 8 ; 8th bit=1 - устр-во занято вып-м команды jz mword
mov cx, 256 mov dx, 1f0h mloop: cmp bp, 20h ;Read or Write? jne wr in ax, dx mov es:[di], ax
jmp short nx wr: mov ax,es:[di] out dx, ax
nx: add di, 2 loop mloop
call waithd ;ждем-с
mov dx, 3f6h ;Turn on IRQ14 mov al, 2 out dx, al
dec bx cmp bx, 0 ; количество пpочитанных сектоpов = 0 ? je move_e ;if equal, goto end fild fsec fld1 faddp st(1), st(0) fistp fsec jmp move_1
move_e: xor ax, ax ; все отлично mov di, si ret ; возвpат в вызывающую пpогpамму
move endp
Рекомендуем скачать другие рефераты по теме: биология 6 класс сонин, діяльність реферат.
Категории:
Предыдущая страница реферата | 1 2 3 4 5 6 7 8 9 10 | Следующая страница реферата