Accueil > > > [NASM] ÉCRITURE BOOT DISQUETTE ET DISQUE DUR
[NASM] ÉCRITURE BOOT DISQUETTE ET DISQUE DUR
Information sur la source
Description
AVERTISSEMENT SURTOUT Y FAUT PAS L'éXECUTER !!!! Y a peut-être 1 chance sur 100 que ca marche mais ca peut endommager la zone de boot de votre ordinateur. C justement pour ca que j'ai pas pu le tester ce code et j'aimerai savoir si d'après vous il marche ou comment le tester sans rien risquer (au pire j'irai le tester au lycée lol). Merci d'avance j'espere avoir de l'aide !!!
Source
- BITS 16 ;Set code generation to 16 bit mode
- ORG 0x0100 ;Set code start address to 0100h
-
-
- SEGMENT .text ;Main code segment
-
- jmp start ;saut au d?but du prog
-
- ; --- Donn?s diverses ---
-
- first db 'Ins?rez une disquette et appuyez sur une touche...',13, 10, '$'
- msgErr db 'Erreur pendant ?criture sur disquette...', 13, 10, '$'
- okay db 'A fini correctement VIVE PRINCE DES SARDINES !!!', 13, 10, '$'
- floppybuf resb 512 ;tableau repr?sente secteur de disquette
-
- ; --- Initialisation ---
-
- start: ;d?but du prog
- mov ax, cs
- mov ds, ax
- mov es, ax
-
- ; --- Ecrit message et attend l'appui d'une touche ---
-
- ;?crit
- mov ah, 09h
- mov dx, first
- int 21h
-
- ;attend l'appui
- mov ax, 0C08h
- int 21h
-
- ; --- Copie secteur dans floppybuf ---
-
- mov si, debut_Disquette
- mov di, floppybuf
- mov cx, 512
- rep movsb
-
- ; --- pour le compte des erreurs ---
-
- xor ax, ax ;on met ax a 0
-
- ; --- On copie le code de la disquette dans buffer ---
-
- copie_disquette:
-
- ;on met ax dans la pile
- push ax
-
- ;recalibre la disquette
- mov ah, 00h
- mov dl, 0 ;drive 0
- int 13h
-
- ;?crit le secteur
- mov ax, 0301h ;1 secteur
- mov dx, 0 ;t?te et lecteur de disquette
- mov ch, 0 ;cylindre 0
- mov cl, 1 ;premier secteur de disquette
- mov bx, floppybuf ;pointeur sur tableau
- int 13h
-
- ;si correct fin
- jc erreur
- mov ah, 09h
- mov dx, okay
- int 21h
- jmp fin
-
- ;si erreur
- erreur:
- pop ax
- inc ax
- cmp ax, 5
- jl copie_disquette
-
- ;message d'erreur et fin du prog
- mov ah, 09h
- mov dx, msgErr
- int 21h
- jmp fin
-
- ; --- Termine le programme ---
-
- fin:
- mov ax, 4C00h
- int 21h
-
- ; --- Code ? copier sur une disquette ---
-
- jmp debut_Disquette
-
- hardbuf resb 512 ;tableau repr?sente secteur de disque dur
-
- ; --- Initialisation ---
-
- debut_Disquette:
- mov ax, cs
- mov es, ax
- mov ds, ax
-
- ; --- Affiche OK ---
-
- mov ah, 0Eh
- mov al, 'O'
- mov bl, 4
- int 10h
-
- mov al, 'K'
- int 10h
-
- ; --- Copie secteur dans hardbuf ---
-
- mov si, debut_DisqueDur+7C00h
- mov di, hardbuf+7C00h
- mov cx, 512
- rep movsb
-
- copie_disque_dur:
-
- ;on recalibre le disque dur
- mov ah, 00h
- mov dl, 80h ;disque dur 1
- int 13h
-
- ;on ?crit le secteur
- mov ax, 0301 ;?crit un secteur
- mov ch, 0 ;cylindre 0
- mov cl, 1 ;secteur 1
- mov dh, 0 ;t?te 0
- mov dl, 80h ;pour le disque dur
- mov bx, hardbuf+7C00h ;pointeur sur tableau
- int 13h
-
- ;si pas d'erreur affiche K puis boucle infinie
- jnc bien
-
- ;si erreur
- jmp copie_disque_dur
-
- ;affiche ! pour signaler la r?ussite
- bien:
- mov ah, 0Eh
- mov al, '!'
- mov bl, 4
- int 10h
-
- ;entame une boucle infinie (disquette)
- boucle_floppy:
- jmp boucle_floppy
-
- ; --- Code ? copier sur le disque dur ---
-
- debut_DisqueDur:
-
- ;initialisations
- mov ax, cs
- mov ds, ax
- mov es, ax
-
- ;affiche une cha?ne de caract?res
- mov ah, 0Eh
- mov al, 'P'
- mov bl, 4
- int 10h
-
- mov al, 'r'
- int 10h
- mov al, 'i'
- int 10h
- mov al, 'n'
- int 10h
- mov al, 'c'
- int 10h
- mov al, 'e'
- int 10h
- mov al, '_'
- int 10h
- mov al, 'd'
- int 10h
- mov al, 'e'
- int 10h
- mov al, 's'
- int 10h
- mov al, '_'
- int 10h
- mov al, 's'
- int 10h
- mov al, 'a'
- int 10h
- mov al, 'r'
- int 10h
- mov al, 'd'
- int 10h
- mov al, 'i'
- int 10h
- mov al, 'n'
- int 10h
- mov al, 'e'
- int 10h
- mov al, 's'
- int 10h
- mov al, ' '
- int 10h
- mov al, 'C'
- int 10h
- mov al, 'O'
- int 10h
- mov al, 'R'
- int 10h
- mov al, 'P'
- int 10h
- mov al, 'O'
- int 10h
- mov al, 'R'
- int 10h
- mov al, 'A'
- int 10h
- mov al, 'T'
- int 10h
- mov al, 'I'
- int 10h
- mov al, 'O'
- int 10h
- mov al, 'N'
- int 10h
-
- ;boucle infinie
- boucle_hard:
- jmp boucle_hard
-
- ; --- Fin du code disque dur ---
-
BITS 16 ;Set code generation to 16 bit mode
ORG 0x0100 ;Set code start address to 0100h
SEGMENT .text ;Main code segment
jmp start ;saut au d?but du prog
; --- Donn?s diverses ---
first db 'Ins?rez une disquette et appuyez sur une touche...',13, 10, '$'
msgErr db 'Erreur pendant ?criture sur disquette...', 13, 10, '$'
okay db 'A fini correctement VIVE PRINCE DES SARDINES !!!', 13, 10, '$'
floppybuf resb 512 ;tableau repr?sente secteur de disquette
; --- Initialisation ---
start: ;d?but du prog
mov ax, cs
mov ds, ax
mov es, ax
; --- Ecrit message et attend l'appui d'une touche ---
;?crit
mov ah, 09h
mov dx, first
int 21h
;attend l'appui
mov ax, 0C08h
int 21h
; --- Copie secteur dans floppybuf ---
mov si, debut_Disquette
mov di, floppybuf
mov cx, 512
rep movsb
; --- pour le compte des erreurs ---
xor ax, ax ;on met ax a 0
; --- On copie le code de la disquette dans buffer ---
copie_disquette:
;on met ax dans la pile
push ax
;recalibre la disquette
mov ah, 00h
mov dl, 0 ;drive 0
int 13h
;?crit le secteur
mov ax, 0301h ;1 secteur
mov dx, 0 ;t?te et lecteur de disquette
mov ch, 0 ;cylindre 0
mov cl, 1 ;premier secteur de disquette
mov bx, floppybuf ;pointeur sur tableau
int 13h
;si correct fin
jc erreur
mov ah, 09h
mov dx, okay
int 21h
jmp fin
;si erreur
erreur:
pop ax
inc ax
cmp ax, 5
jl copie_disquette
;message d'erreur et fin du prog
mov ah, 09h
mov dx, msgErr
int 21h
jmp fin
; --- Termine le programme ---
fin:
mov ax, 4C00h
int 21h
; --- Code ? copier sur une disquette ---
jmp debut_Disquette
hardbuf resb 512 ;tableau repr?sente secteur de disque dur
; --- Initialisation ---
debut_Disquette:
mov ax, cs
mov es, ax
mov ds, ax
; --- Affiche OK ---
mov ah, 0Eh
mov al, 'O'
mov bl, 4
int 10h
mov al, 'K'
int 10h
; --- Copie secteur dans hardbuf ---
mov si, debut_DisqueDur+7C00h
mov di, hardbuf+7C00h
mov cx, 512
rep movsb
copie_disque_dur:
;on recalibre le disque dur
mov ah, 00h
mov dl, 80h ;disque dur 1
int 13h
;on ?crit le secteur
mov ax, 0301 ;?crit un secteur
mov ch, 0 ;cylindre 0
mov cl, 1 ;secteur 1
mov dh, 0 ;t?te 0
mov dl, 80h ;pour le disque dur
mov bx, hardbuf+7C00h ;pointeur sur tableau
int 13h
;si pas d'erreur affiche K puis boucle infinie
jnc bien
;si erreur
jmp copie_disque_dur
;affiche ! pour signaler la r?ussite
bien:
mov ah, 0Eh
mov al, '!'
mov bl, 4
int 10h
;entame une boucle infinie (disquette)
boucle_floppy:
jmp boucle_floppy
; --- Code ? copier sur le disque dur ---
debut_DisqueDur:
;initialisations
mov ax, cs
mov ds, ax
mov es, ax
;affiche une cha?ne de caract?res
mov ah, 0Eh
mov al, 'P'
mov bl, 4
int 10h
mov al, 'r'
int 10h
mov al, 'i'
int 10h
mov al, 'n'
int 10h
mov al, 'c'
int 10h
mov al, 'e'
int 10h
mov al, '_'
int 10h
mov al, 'd'
int 10h
mov al, 'e'
int 10h
mov al, 's'
int 10h
mov al, '_'
int 10h
mov al, 's'
int 10h
mov al, 'a'
int 10h
mov al, 'r'
int 10h
mov al, 'd'
int 10h
mov al, 'i'
int 10h
mov al, 'n'
int 10h
mov al, 'e'
int 10h
mov al, 's'
int 10h
mov al, ' '
int 10h
mov al, 'C'
int 10h
mov al, 'O'
int 10h
mov al, 'R'
int 10h
mov al, 'P'
int 10h
mov al, 'O'
int 10h
mov al, 'R'
int 10h
mov al, 'A'
int 10h
mov al, 'T'
int 10h
mov al, 'I'
int 10h
mov al, 'O'
int 10h
mov al, 'N'
int 10h
;boucle infinie
boucle_hard:
jmp boucle_hard
; --- Fin du code disque dur ---
Conclusion
Alors voila maintenant hésitez pas à déposez vos commentaires mais soyez gentil je suis un noob de l'asm et le moin qu on puisse dire c que de toute facon l'optimisation c pas mon truc lol.
Sources de la même categorie
Commentaires et avis
|
Derniers Blogs
WP7 5K BELGIUM CHALLENGEWP7 5K BELGIUM CHALLENGE par junarnoalg
Microsoft Belgique a le plaisir de vous annoncer le lancement du
Challenge Windows Phone 7
. Celui-ci se déroule du 12 juillet au 30 novembre 2010 et vous donne l'opportunit...
Cliquez pour lire la suite de l'article par junarnoalg LES MONADES POUR LES NULSLES MONADES POUR LES NULS par mdufourneaudravel
Avec l'annonce de F#, je me suis intéressé de plus en plus à la programmation fonctionnelle, je suis donc rapidement tombé sur les " monades ", mais malgré la lecture de plusieurs articles, j'étais resté perméable à leur concept. C'est désormais fini, grâ...
Cliquez pour lire la suite de l'article par mdufourneaudravel [WP7] AJOUTER DES IMAGES DANS LA MEDIA LIBRARY D'UN WINDOWS PHONE 7[WP7] AJOUTER DES IMAGES DANS LA MEDIA LIBRARY D'UN WINDOWS PHONE 7 par Audrey
L'émulateur Windows Phone 7, fourni avec la version Beta des outils développeurs n'inclut aucune image dans sa bibliothèque. Pas très pratique de tester son application lorsque l'on souhaite que l'utilisateur puisse choisir une image présente dans le télé...
Cliquez pour lire la suite de l'article par Audrey VIVE LES MOCKS ET LES POCOSVIVE LES MOCKS ET LES POCOS par vLabz
J'observe régulièrement autour de moi de la confusion à propos de ces deux termes et j'aimerais juste rappeler ce qu'ils signifient. Je ne suis bien sûr pas le mieux placé pour faire une leçon mais je vais faire de mon mieux pour mettre en valeur ce q...
Cliquez pour lire la suite de l'article par vLabz [WF4] WORKFLOW AND CUSTOM ACTIVITIES - BEST PRACTICES (4/5)[WF4] WORKFLOW AND CUSTOM ACTIVITIES - BEST PRACTICES (4/5) par JeremyJeanson
Vendredi dernier Microsoft a publié le quatrième épisode des bonnes pratiques pour coder ses activités custom dans WF4 : endpoint.tv - Workflow and Custom Activities - Best Practices (Part 4) . Tout comme pour les précédents épisodes, j'ai pris le temps d...
Cliquez pour lire la suite de l'article par JeremyJeanson
Logiciels
Crystal Report (11)CRYSTAL REPORT (11)Crystal Reports est un outil de reporting souple et puissant, vous pouvez très facilement consult... Cliquez pour télécharger Crystal Report Academy System (12.0.2.0)ACADEMY SYSTEM (12.0.2.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Xilisoft iPod Vidéo Convertisseur 6 (6.0.3.0419)XILISOFT IPOD VIDéO CONVERTISSEUR 6 (6.0.3.0419)Xilisoft iPod Vidéo Convertisseur est un outil puissant de conversion d'iPod, facile à utiliser. ... Cliquez pour télécharger Xilisoft iPod Vidéo Convertisseur 6 Xilisoft iPhone Vidéo Convertisseur 6 (6.0.3.0419)XILISOFT IPHONE VIDéO CONVERTISSEUR 6 (6.0.3.0419)Xilisoft iPhone Vidéo Convertisseur est le meilleur logiciel de conversion iPhone qui peut facile... Cliquez pour télécharger Xilisoft iPhone Vidéo Convertisseur 6 Xilisoft iPad Vidéo Convertisseur 6 (6.0.3.0419)XILISOFT IPAD VIDéO CONVERTISSEUR 6 (6.0.3.0419)Il s'agit d'un logiciel polyvalent pour convertir les formats vidéo/audio populaires en formats p... Cliquez pour télécharger Xilisoft iPad Vidéo Convertisseur 6
|