0) нет гарантии, что для Вашего реального диска все параметры ответа AX, BX, CX умещаются в 16 бит (возможно, конечно DOS для совместимости что-нибудь обманывает, но гарантии опять же нет);
Теперь собственно ASM :
1) уверены ли Вы в чистоте верхнего слова ebx на первом умножении ?
2) абсолютно непонятен смысл манипуляций
mov ebx,edx
shl ebx, 16
add eax,ebx
3) уверены ли Вы в чистоте верхнего слова eсx на втором умножении ?
4) вот тут Вы напрочь убили верхние 32 бита значимой информации (а ведь 8 Гб уже не помещаются в младшие 32 бита) :
xor edx,edx ;расширим делимое