Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- tutti i processori X86 (e AMD64) hanno piena retrocompatibilità con l'8086 infatti tutti i processori x86 fanno il boot in real mode (istruzioni e registri a 16 bits) il bios stesso gira a 16 bits sarà il sistema operativo (o bootloader) ad impostare la protected mode (32 bits mode) e/o long mode (64 bits mode)
- Per quanto riguarda l'IDE non ne conosco di buoni ma per editor ti consiglio Notepad++ (windows) e GEdit ( linux) e come assembler mi sono sempre trovato bene con nasm che produce codice (anche) a 16 bits basta scrivere all'inizio del file [BITS 16]
- [QUOTE="Il Magicante, post: 4259864, member: 193419"]Mi spiego: ci insegnano a programmare per il processore 8086, di conseguenza i registri saranno diversi (credo ce ne siano di piu'), ma la sintassi del codice puo' rimanere uguale?[/QUOTE]
- l'8086 essendo il primo x86 ha 4 registri di uso generale a 16 bits divisi ognuno in 2 da 8 bits, 2 per l'Index + 3 per il pointer e 4 per i segmenti.
- Registri di uso comune:
- AX che è 16 bits e contiene (diciamo) AL e AH
- i registri sono AX, BX, CX, DX e tutti contengono le due versioni a 8 bits H e L quindi ci sarà: bh, bl etc... per capire meglio questo concetto guarda qui http://80864beginner.com/Tutorial/8086-Registers.html
- Tutti i processori X86 hanno lo stesso set di istruzioni di base (come già detto) la lista completa delle istruzioni che puoi usare in assembly la trovi qui: http://www.mathemainzel.info/files/x86asmref.htmlm
- per quanto riguarda la sintassi dipende dall'assembler che usi, mettiamo caso che vuoi muovere il valore 0x5 nel registro AL
- su nasm (Netwide assembler) usi:
- mov al, 0x5
- invece se usi GAS (Gnu assembler):
- movb $0x05, %al
- tutto dipende dal tuo "asset"
- l'80386 è un processore a 32bits e non fa al caso tuo tu devi leggere la documentazione del 8086
- ricapitolando
- Processore Intel X86 : 8086 = 16 Bits Registro: AX = 0x0000
- Processore: Intel X86: 80386 = 32 Bits Registro: EAX = 0x00000000
- Il tuo processore è un AMD64 = 64 Bits Registro RAX = 0x0000000000000000
- AMD64 è un estensione a 64 bits del intel x86 quindi supporta le stesse istruzioni del intel x86 etc
- esiste anche un estensione del intel x86 a 64 bits chiamata IA-64 ma per quanto ne so è stata un flop o qualcosa del genere
- PS: i benefici tratti studiando l'8086 sono gli stessi che trai studiando il Rinascimento
- Spero di essere stato il più chiaro possibile ^.^
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement