|
Sujet : [VC++ ASSEMBLEUR ] questions sur les disques durs |
| seblamb |
J'ai regardé les explication du programmeur :) pour la dll
En fait elle est compilée en 16bit et utlise la compatiblité qu'offre windows95 pour ces programmes, pour pouvoir utiliser l'interruption.
J'ai quand même un peut regardé sur le site de microsoft il ne semble pas q'on puisse utiliser les int. dans un prog 32bit. Par contre on peut controler les drivers directement (fonction DeviceIoControl). C'est ce qu'utilise "explore2fs" quand il fonctionne sous NT.
Pour le DDK telecharge le et tu auras toutes les indications |
| verdy_p |
Que tu fasses ton programme en C, en C++, ou en Assembleur, le problème à résoudre sera le même: la barrière du système d'exploitation qui tourne. Sous Windows, tu es dans un environnement protégé, et les esaces mémoire et entrée-sortie sont protégés car le processeur a été placé dans un mode qui le met sous le contrôle du système: tu as un niveu de privilège qui ne te permet que de voir ce que l'OS veut bien te laisser voir. Pour passer outre, sans planter le système pour autant ou sans éteindre la machine, il faut cohabiter avec l'OS, donc utiliser ses APIs.
Et à ce moement-là, il est plus simple de travailler en C ou C++ qu'en assembleur: c'est déjà assez compliqué de manipuler les couches basses de l'OS (regarde le DDK tu comprendras)...
Sinon si tu veux analyser un disque sur lequel aucun fichier n'est ouvert par l'OS (partition démontée, tu peux utiliser les fonctions du Bios, ou de Win32 pour lire les secteurs. Pas besoin d'assembleur pour cela.
Reste après à analyser les structures de données que tu y trouveras. Quant à modifier le contenu du disque, l'OS ne te laissera pas faire facilement. Bref abandonne l'assembleur: il n'est pas nécessaire pour des raisons de performance, le C ou le C++ sont aussi bien pour utiliser des APIs de l'OS.
Aujourd'hui l'assembleur ne se justifie plus que pour accélérer les longs calculs qui ne nécessitent pas l'inervention de l'OS: calculer une image 3D, décompresser des données, ... et encore, car maintenant tout ça se fait très bien en C (ou C++), Pascal (Delphi) grâce aux progrès des compilateurs... Et un langage de haut niveau permet de développer nettement plus facilement au milieu d'une jungle de structures de données. |