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
COMMENT MAPPER UNE VUE SQL SUR UNE COLLECTION DE COMPLEX TYPE?COMMENT MAPPER UNE VUE SQL SUR UNE COLLECTION DE COMPLEX TYPE? par Matthieu MEZIL
Avec EF, les vues doivent être mappées sur des entity types. Le problème c'est que les entity types doivent avoir une clé. Avec EF, nous avons les complex type qui n'ont pas de clé mais les vues ne peuvent pas être mappées dessus. Avec EF4, il est possibl...
Cliquez pour lire la suite de l'article par Matthieu MEZIL [WF4] UN BINDING ACTIVITY/ACTIVITYDESIGNER QUI PASSE MAL?[WF4] UN BINDING ACTIVITY/ACTIVITYDESIGNER QUI PASSE MAL? par JeremyJeanson
Certain d'entre vous on peut être vécu cette situation embarrassante après quelques temps passer avec WF4 : Au début avec mon " ActivityDesigner" , tout allait bien. Et puis un jour j'ai au des problèmes de " Binding" . Alors nous sommes allé sur le site ...
Cliquez pour lire la suite de l'article par JeremyJeanson MYTIC - SHAREPOINT 2010 : DéJà UN MYTHE MICROSOFT ?MYTIC - SHAREPOINT 2010 : DéJà UN MYTHE MICROSOFT ? par junarnoalg
La prochaine session de MyTIC aura lieu à Namur, le 23 mars prochain. Pendant presque une heure, nous parlerons de SharePoint 2010. Voici un aperçu du programme.
Accueil : 17h30 Début de la session : 18h00 - Les nouvelles int...
Cliquez pour lire la suite de l'article par junarnoalg
Forum
RE : ASSEMBLEURRE : ASSEMBLEUR par solleil
Cliquez pour lire la suite par solleil RE : ASSEMBLEURRE : ASSEMBLEUR par ghuysmans99
Cliquez pour lire la suite par ghuysmans99
Logiciels
Academy System (10.9.4.0)ACADEMY SYSTEM (10.9.4.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Xilisoft Convertisseur Vidéo Ultimate (5.1.39.0305)XILISOFT CONVERTISSEUR VIDéO ULTIMATE (5.1.39.0305)Xilisoft Convertisseur Vidéo Ultimate est un outil puissant de conversion vidéo, facile à utilise... Cliquez pour télécharger Xilisoft Convertisseur Vidéo Ultimate Xilisoft DVD Ripper Ultimate (5.0.64.0304)XILISOFT DVD RIPPER ULTIMATE (5.0.64.0304)Xilisoft DVD Ripper Ultimate est un logiciel excellent pour copier et convertir DVD vers presque ... Cliquez pour télécharger Xilisoft DVD Ripper Ultimate Rigs of Rods (63.3)RIGS OF RODS (63.3)c'est un jeu de multi-simulation camions,autobus voitures, avions, bateaux, hélicoptère avec défo... Cliquez pour télécharger Rigs of Rods
|