Dans quel language et version est ecrit

Fermé
djaaaaaroooo - 21 août 2011 à 15:42
nicocorico Messages postés 799 Date d'inscription dimanche 19 juin 2011 Statut Membre Dernière intervention 3 juillet 2018 - 21 août 2011 à 16:36
Bonjour,

j'ai telecharger un exemple de secteur de boot ecrit en assembleur ,mais j'arrive pas a savoire par quel langage d'assembleur est ecrit et quelle version que je puisse le compiler ,en plus j'ai pas compris comment utiliser les fichiers systemes que leurs noms est inclu dedant (io.sys et msdos.sys).
je vous informe que j'ai une copie de msdos 5.0 sous forme d'image et fichier autoextractible.voici le code des partie du code:

db JMP instruction at 7c00 size 2 = eb3c
db NOP instruction 7c02 1 90
db OEMname 7c03 8 'MSDOS5.0'
dw bytesPerSector 7c0b 2 0200
db sectPerCluster 7c0d 1 01
dw reservedSectors 7c0e 2 0001
db numFAT 7c10 1 02
dw numRootDirEntries 7c11 2 00e0
dw numSectors 7c13 2 0b40 (ignore numSectorsHuge)
db mediaType 7c15 1 f0
dw numFATsectors 7c16 2 0009
dw sectorsPerTrack 7c18 2 0012
dw numHeads 7c1a 2 0002
dd numHiddenSectors 7c1c 4 00000000
dd numSectorsHuge 7c20 4 00000000
db driveNum 7c24 1 00
db reserved 7c25 1 00
db signature 7c26 1 29
dd volumeID 7c27 4 5a541826
db volumeLabel 7c2b 11 'NO NAME '
db fileSysType 7c36 8 'FAT12 '

START: START OF BOOT SECTOR PROGRAM

0000:7C3E FA CLI interrupts off
0000:7C3F 33C0 XOR AX,AX set AX to zero
0000:7C41 8ED0 MOV SS,AX SS is now zero
0000:7C43 BC007C MOV SP,7C00 SP is now 7c00
0000:7C46 16 PUSH SS also set ES
0000:7C47 07 POP ES to zero

The INT 1E vector is at 0000:0078.
Get the address that the vector points to
into the DS:SI registers.

0000:7C48 BB7800 MOV BX,0078 BX is now 78
0000:7C4B 36 SS:
0000:7C4C C537 LDS SI,[BX] DS:SI is now [0:78]
0000:7C4E 1E PUSH DS save DS:SI --
0000:7C4F 56 PUSH SI saves param tbl addr
0000:7C50 16 PUSH SS save SS:BX --
0000:7C51 53 PUSH BX saves INT 1E address



......................................................................................
...........................................................



0000:7D90 ........ ........ ........ ....0d0a * ..*
0000:7Da0 4e6f6e2d 53797374 656d2064 69736b20 *Non-System disk *
0000:7Db0 6f722064 69736b20 6572726f 720d0a52 *or disk error..R*
0000:7Dc0 65706c61 63652061 6e642070 72657373 *eplace and press*
0000:7Dd0 20616e79 206b6579 20776865 6e207265 * any key when re*
0000:7De0 6164790d 0a00.... ........ ........ *ady... *

MS DOS hidden file names (first two root directory entries).

0000:7De0 ........ ....494f 20202020 20205359 * IO SY*
0000:7Df0 534d5344 4f532020 20535953 000055aa *SMSDOS SYS..U.*

The last two bytes contain a 55AAH signature.

0000:7Df0 ........ ........ ........ ....55aa * U.*
A voir également:

3 réponses

nicocorico Messages postés 799 Date d'inscription dimanche 19 juin 2011 Statut Membre Dernière intervention 3 juillet 2018 138
21 août 2011 à 16:28
C'est de l'assembleur 16 bits compatible intel, compilable par un compilateur idoine après extraction des instructions. Quant aux fichiers MSdos.Sys et Io.Sys, je doute que le but soit de les utiliser ici...
Et ce code est partiellement extrait d'un relevé mémoire, et il va être difficile de l'utiliser tel quel. Je te conseillerais plutôt de partir d'un programme BootLoader original tel que tu trouveras là:
http://a.michelizza.free.fr/pmwiki.php?n=TutoOS.Bootsect
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 842
21 août 2011 à 16:30
Compiler de l'assembleur ??? C'est déjà compilé l'assembleur...
0
nicocorico Messages postés 799 Date d'inscription dimanche 19 juin 2011 Statut Membre Dernière intervention 3 juillet 2018 138
Modifié par nicocorico le 21/08/2011 à 16:47
Pas tout à fait, il reste à le convertir en héxadécimal...
Mais en fait c'est juste un raccourci de language :
L'assembleur lui est la version héxadécimal, compilé donc, et la version humainement compréhensible est définie comme 'le langage d'assemblage'...
0