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
CSS CONTENT STATE SELECTORS (PERSONNAL DRAFT)CSS CONTENT STATE SELECTORS (PERSONNAL DRAFT) par FREMYCOMPANY
Bonjour à tous, Je viens de publier une proposition comprenant 5 pseudo-classes pour le CSS Working Group ayant trait à l'état de chargement d'un élément (ex: IMG,VIDEO,AUDIO,OBJECT pour l'HTML.). Si le c½ur vous en dit, vous pouvez retrouver cette p...
Cliquez pour lire la suite de l'article par FREMYCOMPANY MBA : POURQUOI FAIRE ET COMMENT LE CHOISIR ?MBA : POURQUOI FAIRE ET COMMENT LE CHOISIR ? par ROMELARD Fabrice
Formation initiale Durant la formation, le découpage classique est le suivant (je donnerai les équivalences Suisse lorsque je les connaîtrais) : Ecole primaire jusqu'au Collège : Formation générale permettant d'obtenir les méthodes...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice Y'A DES ERREURS QUI PEUVENT RENDRE LE DéVELOPPEUR VIOLENTY'A DES ERREURS QUI PEUVENT RENDRE LE DéVELOPPEUR VIOLENT par Aleks
Quand on a ce genre d'erreur sans log :
Et bas on a juste envie de choper le gas de Microsoft qu'a développé ça et lui foutre des baffes de Coboye ! ...
Cliquez pour lire la suite de l'article par Aleks [HYPER-V 3] PRéSENTATION DES COMMANDLETS POWERSHELL[HYPER-V 3] PRéSENTATION DES COMMANDLETS POWERSHELL par Pierrick CATRO-BROUILLET
Avec la sortie prochaine de la Beta Consumer Preview de Windows 8, j'avais envie de revenir sur une des fonctionnalités que j'attends le plus et que, en bon geek que je suis, j'utilise déjà : Hyper-V 3 ainsi son module PowerShell.
Il y a déjà pléthor...
Cliquez pour lire la suite de l'article par Pierrick CATRO-BROUILLET IIS7 - COMPRESSION GZIPIIS7 - COMPRESSION GZIP par cyril
La compression GZIP permet d'améliorer les performances de navigation en compressant ce qu'envoie le serveur à un client. Pour comprendre comment cela fonctionne, regardons ce qu'il se passe au niveau HTTP lorsqu'un client tente d'accéder à une ress...
Cliquez pour lire la suite de l'article par cyril
Logiciels
Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning Academy System (17.1.3.0)ACADEMY SYSTEM (17.1.3.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|