begin process at 2012 05 25 05:12:20
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Assembleur

 > 

Archives

 > 

Aide a la programmation Windows

 > 

Lecture/ecriture sur disquette


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Lecture/ecriture sur disquette

lundi 9 février 2004 à 17:55:58 | Lecture/ecriture sur disquette

Stormy


Voici ma question (TangyX, tu es exempté de réponse). Une disquette est composée de 2 faces (jusque là c 'est bon) chacune composée de 80 pistes de 18 segments (512 Oct). Puisque les 33 premiers segments sont réservées pour différentes allocations (dont segment 0 pour le boot), il se trouve où le premier secteur (cluster) réservé aux datas?

Mov Ah, 00h
Mov Dl, 0
Int 13h

Mov Ax, 0301h
Mov Dx, 0
Mov Cx, ? <<< Piste+Secteur
Lea Bx, Buffer
Int 13h
JNC Okay

Merci à tous
mercredi 11 février 2004 à 03:33:50 | Re : Lecture/ecriture sur disquette

patatalo

Membre Club Administrateur CodeS-SourceS
salut,

déjà, je suppose que ta question est relative a l'OS windows et donc au system FAT.

1 - ce que tu appelle segment, s'appelle secteur.
2 - un cluster = 8 secteurs (8*512 = 4Ko pour FAT)
3 - l'emplacement du répertoire root se calcule comme pour un disque dur a l'aide des informations du MBR.

00h - Branchement vers la routine de chargement
03h - Nom du fabricant et numéro de version du DOS
0Bh - Nombre d'octets par secteur
0Dh - Nombre de secteurs par cluster
0Eh - Nombre de secteurs réservés
10h - Nombre de FATs
11h - Nombre maximum d'entrées dans le répertoire racine
13h - Nombre de secteurs du volume
15h - Code de description du support
16h - Nombre de secteurs par FAT
18h - Nombre de secteurs par piste
1Ah - Nombre de têtes de lecture/écriture
1Ch - Nombre de secteurs cachés

cela donne:
MBR :
+ Nombre de secteurs réservés
+ Nombre de secteurs cachés ( a verifier )
FAT
+ Nombre de secteurs par FAT * Nombre de FATs
DATAS (REPERTOIRE ROOT)

avec:
DH = Numéro de la face de disquette (0 ou 1)
CH = Numéro de piste
CL = Numéro de secteur ( commence a 1 )

donc:
PISTE = ((total secteur+1) / 18)
SECTEUR = reste de ((total secteur+1) / 18)

j'espere que cela t'aidera mais c tout a verifier ;-)
mercredi 11 février 2004 à 21:56:20 | Re : Lecture/ecriture sur disquette

Stormy

Merci pour ton aide. Je connaisais la structure d'une disquette mais ce que je voulais savoir c'est où débute (un chiffre relatif à un secteur) la zone pour les Datas. Je m'explique:
Le secteur de 512 octet pour le boot est à 00h. Alors je pensais que la zone susdite se trouvée dès 21h. Qu'en penses-tu?
En attendant, ta façon de trouver le bon secteur est très bonne. Je n'y avais pas pensé.

PISTE = ((total secteur+1) / 18)
SECTEUR = reste de ((total secteur+1) / 18)

Merci!
vendredi 13 février 2004 à 12:05:27 | Re : Lecture/ecriture sur disquette

patatalo

Membre Club Administrateur CodeS-SourceS
salut,

je ne comprends pas tres bien ce que tu veux exactement,

1 - le secteur de boot se trouve a 01h (CX=0001h)
2 - tu ne peux pas avoir le secteur 21h etant donné que le max est 18 (12h)
3 - il est effectivement fort probable que les données commences au premier secteur d'une piste mais a ce moment là, CX = 0201h ( si 3eme piste 0001h,0101h,0201h)

une fois que tu a calculé l'emplacement ROOT pour une disquette, tu peux eventuellement considerer que toutes les autre auront la meme structure mais a tes risque et perils.

@++


Cette discussion est classée dans : lecture, mov, ecriture, composée, disquette


Répondre à ce message

Sujets en rapport avec ce message

lecture / ouverture d'un fichier txt en assembleur [ par rana ] est ce quelaqu un pourrait m aider a corriger ma macro de lecture d'un fichier txt et l'ouverture d'un fichier txt, voila les macro (pb au niveau du lecture d'un fichier txt [ par rana ] est ce que quelqu un pourrrait me corriger ma macro pour lire un fichier txt qui ne marche pas c tres important merci ;lecture dans le fichier1macro L Charger un noyau [ par Stormy ] Je voudrais charger le deuxième segment d'une disquette pour lancer un noyau OS rudimentaire. Sur le premier segment, j'inscris donc le code de charge Ecriture caractère passé en paramètre [ par LandTech ] Bonjour, comme c'est dit dans le titre je voudrais afficher un caractère passé en paramètre avec l'interruption Bios 10h.j'ai écris un code mais Nasm fatal error LNK1190 [ par WildChild54 ] Bonjour à tous!Eh bien voilà, je voudrais créer un petit programme affichant l'heure (je sais il y en a déjà plusieurs qui en ont parlé ici) mais j'ai Lecture de DTA [ par mouadestla ] Bonsoir , je débute en assembleur , j'esseye de coder en 16 bits un petit programme qui fait appele à l'interuptions 21h : 4Eh du DOS qui cherche un f question sur le language asm [ par dyroj ] bonjour,j'ai qulque question sur l'asm :-quand je fait un : mov ax, 10 , quesqui va dans le registre (ladresse de 10 dans la ram, ou 10).-pourquoi se ecriture en b8000 [ par laurent0502 ] Bonjour , En fait , je recherche tout simplement d'écrire en b8000 en mode protégé comme quand on fait en dos sans utiliser les interruptions.Merci. Problème d'affichage de programme après compilation [ par li2k ] Salut tout le Monde.Bon voilà, dans le cardre d'un projet scolaire, j'ai écris un programme assembleur avec l'émulateur "Emul8086".dans ce programme j Entrée d'une chaine de cractères [ par w4kfu ] J'é


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,187 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales