PDA

View Full Version : [NASM] set di istruzioni


71104
03-07-2005, 13:54
salve a tutti, usando il NASM avrei la necessità di regolare a mio piacimento all'interno di un programma il processore target e il set di istruzioni; il processore target dovrebbe essere il 486 o superiore, e il set di istruzioni deve cambiare a un certo punto del programma (prima 16 bit e poi 32).
sapevo di dover utilizzare rispettivamente le direttive CPU e BITS, ma non ho ben capito dov'è che vanno messe: nella command line o nel sorgente? se vanno messe nel sorgente devo usare qualche sintassi particolare, tipo il carattere % all'inizio a mo' di direttiva?
e inoltre come faccio a regolare il formato dell'output finale? vedo che di default il NASM mi genera assembly puri (come dire .com), ma per generare immagini PE o ELF? correggetemi se sbaglio, ma mi sembra che per quest'ultima cosa ci sia un'opzione per la command line... se si quale?
grazie :)

DanieleC88
03-07-2005, 14:30
[BITS 16]
codice che ti serve
[BITS 32]
altro codice

-f format
Specifies the output file format. Formats include bin, to pro-
duce flat-form binary files, and aout and elf to produce Linux
a.out and ELF object files, respectively.
Quindi: nasm input.asm -f elf -o output.elf

71104
03-07-2005, 19:56
grande Daniele, aspettavo proprio la tua risposta :D
quindi BITS va tra parentesi quadre; e anche CPU?
grazie, ciao :)

DanieleC88
04-07-2005, 11:03
grande Daniele, aspettavo proprio la tua risposta :D
LOL, davvero? :D
Potevi mandarmi una mail... :)
quindi BITS va tra parentesi quadre; e anche CPU?
grazie, ciao :)
CPU non l'ho mai usato, ma BITS, almeno così ricordo, va tra parentesi quadre. CPU serve a cambiare set di istruzioni (tipo [CPU 486])?