.Model Small
.486
.Stack 200h
.Data
fat db 512*9 dup(?)
free dw 0
full dw 0
numclaster dw 0
claster dw 512
allclaster dw 2847
mes1 db 13,10,' Insert disc:' ,13,10,'$'
mes2 db 13,10,'Bye bye!' ,13,10,'$'
mes3 db 13,10,'Free: ',13,10,'$'
mes4 db 13,10,'Full: ',13,10,'$'
m db ?
;********
.Code
start:mov ax,@data
mov ds,ax
mov es,ax
mov ah,0
mov al,3
int 10h
FDD:
mov ah,9
lea dx,mes1
int 21h
mov ah, 08h
int 21h
mov dl,0
mov dh,0
mov ch,0
mov cl,2
mov al,9
lea bx, fat
mov ah, 02h
int 13h
jc FDD
xor si,si
mov si,3
K1:
inc numclaster
mov ax, allclaster
cmp numclaster, ax
je K3
mov ax, word ptr fat[si]
and ax, 0FFFh ;0FFFh
cmp ax,0
jne K2
inc free
K2:inc numclaster
inc si
mov ax, word ptr fat[si]
SHR ax,4
cmp ax,0
jne m4
inc free
m4:inc si
jmp K1
[COLOR=red]то что закаментированно это я еще пытался сделать вывод на экран в цифрах свободное место ))[/COLOR]
K3:
mov ax,free
;mul claster
;mov free,ax
;mov ah,9
; lea dx,mes3
; int 21h
; mov ax,allclaster
;mul claster
; sub ax,free
; mov full, ax
; mov ah,9
;lea dx,mes4
; int 21h
;vivod:
;mov ah,9
; lea dx,mes3
; int 21h
; mov ax,free
;xor ah,ah
;mov dl,10
;div dl
;add al,30h
;add ah,30h
; mov dl,al
;mov m,ah
; mov ah,02
; int 21h
;mov dl,m
;mov ah,02
;int 21h
;mov ah,9
; lea dx,mes4
; int 21h
; mov ax,full
; xor ah,ah
; mov dl,10
; div dl
; add al,30h
; add ah,30h
; mov dl,al
; mov m,ah
; mov ah,02
; int 21h
; mov dl,m
; mov ah,02
; int 21h
;END
mov ah,9
lea dx,mes2
int 21h
mov AH, 08H
int 21H
mov ah,4ch
int 21h
End Start
Определить свободное место на Fdd
Ребят помогите плз. Как мог разбирался с 13h и FAT12 но не смог реализовать прогу на ассемблере для определения свободного места на дискетке :(