Программа должна выводить свободное пространство на выбранном жестком диске, но этого делать не хочет. В программе использовал прерывание int 21h, функцию 36h.
Выводит 976 мб, непонятно, что это такое?. Хотя свободное пространство составляет в районе 8гб . Все это делалось в виртуал бокс, виндовс xp.
.MODEL SMALL
.386
STACK 256h
DATASEG
CODESEG
start:
mov eax,@data
mov ds,eax ; Data Segment
xor eax,eax
mov ah, 36h
mov dl, 0
int 21h
mul ebx
mov ebx,edx
shl ebx, 16
add eax,ebx
mul ecx
cnvrt:
xor ecx,ecx ;счетчик десятичных цифр
mov ebx,10 ;основание сист. счисления
ckl:
xor edx,edx ;расширим делимое
div ebx
push edx ;получаемые цифры кладем в стек
inc cx
test eax,eax ;делитель - ноль ?
jnz ckl ;еще нет, продолжим
outpt: ;вывод числа на экран
pop eax
add al,'0' ;десятичную цифру -> в ASCII
int 29h ;вывод цифры
loop outpt
mov ah,10h
int 16h
end start