Advertisement
Scr3w

Untitled

May 22nd, 2015
40
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. 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)
  2. 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]
  3. [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]
  4. 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.
  5. Registri di uso comune:
  6. AX che è 16 bits e contiene (diciamo) AL e AH
  7.  
  8. 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
  9.  
  10. 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
  11. per quanto riguarda la sintassi dipende dall'assembler che usi, mettiamo caso che vuoi muovere il valore 0x5 nel registro AL
  12. su nasm (Netwide assembler) usi:
  13. mov al, 0x5
  14.  
  15. invece se usi GAS (Gnu assembler):
  16. movb $0x05, %al
  17.  
  18. tutto dipende dal tuo "asset"
  19.  
  20. l'80386 è un processore a 32bits e non fa al caso tuo tu devi leggere la documentazione del 8086
  21.  
  22. ricapitolando
  23.  
  24. Processore Intel X86 : 8086   = 16 Bits  Registro:  AX = 0x0000
  25. Processore: Intel X86: 80386 = 32 Bits Registro: EAX = 0x00000000
  26. Il tuo processore è un AMD64 = 64 Bits Registro RAX = 0x0000000000000000
  27.  
  28. AMD64 è un estensione a 64 bits del intel x86 quindi supporta le stesse istruzioni del intel x86 etc
  29. 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
  30.  
  31. PS: i benefici tratti studiando l'8086 sono gli stessi che trai studiando il Rinascimento
  32.  
  33. Spero di essere stato il più chiaro possibile ^.^
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement