Tu peux faire une dll en assembleur, en C, en VB... ça a aucun rapport.
Si tu accedes directement au disque ( quelque soit le langage )dans un programmes en 32bits tu va te faire jeter par windows ( "Ce programme à effectué une opération incorrecte.....". C'est pour ça qu'on fait une dll 16bits, pour effectuer certaines opérations interdites en 32bit, mais par contre tu peux avoir le reste de ton programme en 32bits, mode qui offre beaucoup d'aventages ( memoires, rapidité....).