RNHC Center.
Buna sunt Genius + +, aş dori să ştiu dacă vă puteţi înregistra pe acest site
RNHC Center.
Buna sunt Genius + +, aş dori să ştiu dacă vă puteţi înregistra pe acest site
RNHC Center.
Doriți să reacționați la acest mesaj? Creați un cont în câteva clickuri sau conectați-vă pentru a continua.
RNHC Center.


 
AcasaAcasa  GalerieGalerie  Ultimele imaginiUltimele imagini  CăutareCăutare  ÎnregistrareÎnregistrare  Conectare  

 

 Bootloader in asm

In jos 
AutorMesaj
Genius++
Administrator
Administrator
Genius++


Mesaje : 527
Data de inscriere : 26/08/2011
Varsta : 27
Localizare : Bacau

Bootloader in asm Empty
MesajSubiect: Bootloader in asm   Bootloader in asm EmptyMier Noi 02, 2011 12:36 pm

Ce va face?
Va afisa 'rst' pe ecran.
Ce programe sunt necesare?
-nasm link: [Trebuie sa fiti inscris si conectat pentru a vedea acest link]
-editor de texte
-optional virtual pc sau virtualbox
1. Porneste notepad sau ce program folosesti si scrie:
Code:

[BITS 16]
[ORG 7C00h]
mov ah,0eh
mov al,'r'
int 10h
mov al,'s'
int 10h
mov al,'t'
int 10h
jmp $
times 510-($-$$) db 0
dw 0xAA55

Sa luam codul linie cu linie:
[BITS 16] => aici zicem pe cati biti va fi programul, in general 16, 32 sau 64.
[ORG 7C00h] => adresa la care se va incarca in memorie, bootloadere se incarca la 7c00, .com la 100h si .exe non PE la 200h...
Ce inseamna "int 10h"?
Interrupt-ul 10h sau 0x10 este unul din int-urile de BIOS. Le puteti vedea deocamdata ca niste functii predefinite. De exemplu daca in registrul "ah" este valoarea 0Eh si in "al" codul ascii, si scriem int 10h, va aparea simbolul din al pe ecran.
Pentru o lista cu int-uri puteti sa va uitati aici: [Trebuie sa fiti inscris si conectat pentru a vedea acest link]

Ce inseamna "jmp $"?
Un loop infinit. Asemanator codului C a while(1==1){} sau for({}
Dar "times 510-($-$$) db 0"?
Bootloadere-le TREBUIE sa aiba fix 512 bytes pt ca sa fie boot-abile. Comanda asta adauga 0-uri pana cand ajunge la 510.
Si "dw 0xAA55"?
Asta trebuie sa fie la sfarsit pentru ca BIOS-ul sa ruleze programul.
2. Considerand ca l-ai salvat ca si rst.asm, si este in acelasi director cu nasm.exe, intra in cmd si scrie "nasm rst.asm -o rst.bin"
3. Insereaza un floppy in calculator si fiind in cmd scrie:
Code:

C:\>debug
DEBUG rst.bin
- w 100 0 0 1
- q

4. Da restart si booteazade pe floppy sau foloseste virtual pc/ virtualbox/ bochs/ qemu...
In caz ca folosesti linux, ca sa scrii pe floppy scrie: "dd if=rst.bin bs=512 of=/dev/fd0"
sau pt virtualizare poti si "dd if=rst.bin bs=512 of=rst.img".
Sus In jos
https://rnhc.forumgratuit.ro/
 
Bootloader in asm
Sus 
Pagina 1 din 1

Permisiunile acestui forum:Nu puteti raspunde la subiectele acestui forum
RNHC Center. :: IT :: Informati/Tutoriale-
Mergi direct la: