Aiuto NASM

Domande e richieste di un principiante alle prime armi con Ubuntu e il mondo GNU/Linux in generale. Per domande specifiche, utilizzare le altre sezioni.
Regole della sezione
In questa sezione possono inserire nuove discussioni solo coloro che fanno parte del livello "Prode Principiante" e che non hanno superato i 100 messaggi, tutti gli altri possono comunque rispondere regolarmente. Se si fa parte di questo livello e si è registrati al forum prima del 24 aprile 2012, data del passaggio al nuovo forum, consultare questa discussione.

Immagine Come usare UbuntuPrimi passi su Ubuntu Immagine Amministrazione del sistemaComandi di baseInstallare programmiLog di sistemaRiga di comandoSudo
Mieti
Prode Principiante
Messaggi: 4
Iscrizione: venerdì 10 gennaio 2014, 19:22
Distribuzione: ubuntu

Aiuto NASM

Messaggio da Mieti »

Buongiorno a tutti, sono nuovo nel forum e da poco ho installato ubuntu, quindi ho qualche difficolta ad ambientarmi con la riga di comando ed eccetera.
Il problema di adesso non riguarda tanto ubunto ma NASM. Io ho bisono di provare qualche programma fatto in assembly per processori 8086, ho scaricato nasm, istallato ma non so utilizzarlo. So che è solo un assemblatore quindi il sorgente l'ho fatto su un comune file di testo.
Non so se può servire ma vi metto il sorgente della prova che volevo fare
Spoiler
Mostra
dosseg
.model small
.stack 100h
.data
s db "Hello World",13,10,"$"
.code
move ax,@data
mov ds,ax
lea dx,s
mov ah,9
int 21h
mov ax,4c00h
int 21h
end
Grazie in anticipo
ale4
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 761
Iscrizione: venerdì 10 agosto 2012, 17:53

Re: Aiuto NASM

Messaggio da ale4 »

La compilazione con nasm per un programma per architettura 32bit (per 64 bit metti -elf64 al posto di -elf) si fa con

Codice: Seleziona tutto

nasm -f elf programma.asm
Il che produrrà un file oggetto (programma.o) che dovrai successivamente linkare

Codice: Seleziona tutto

ld programma.o -o programma 
oppure puoi fare il linking anche con gcc (in quel caso al posto di _start nella funzione principale programma dovrei mettere main)

Codice: Seleziona tutto

gcc programma.o -o programma 
Comunque sia quel programma non funzionerà mai,intano usa le chiamate del DOS (int 21h),e la sintassi non mi pare nemmeno compatibile con il compilatore nasm.
L' assembly è un linguaggio molto vario,ogni compilatore ha una sintassi diversa,in più i programmi dipendono da architettura del pc e dal sistema operativo usato
Mieti
Prode Principiante
Messaggi: 4
Iscrizione: venerdì 10 gennaio 2014, 19:22
Distribuzione: ubuntu

Re: Aiuto NASM

Messaggio da Mieti »

ale4 [url=http://forum.ubuntu-it.org/viewtopic.php?p=4515961#p4515961][img]http://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto:La compilazione con nasm per un programma per architettura 32bit (per 64 bit metti -elf64 al posto di -elf) si fa con

Codice: Seleziona tutto

nasm -f elf programma.asm
Il che produrrà un file oggetto (programma.o) che dovrai successivamente linkare

Codice: Seleziona tutto

ld programma.o -o programma 
oppure puoi fare il linking anche con gcc (in quel caso al posto di _start nella funzione principale programma dovrei mettere main)

Codice: Seleziona tutto

gcc programma.o -o programma 
Comunque sia quel programma non funzionerà mai,intano usa le chiamate del DOS (int 21h),e la sintassi non mi pare nemmeno compatibile con il compilatore nasm.
L' assembly è un linguaggio molto vario,ogni compilatore ha una sintassi diversa,in più i programmi dipendono da architettura del pc e dal sistema operativo usato
si lo so, infatti io cercavo un programma che emulasse il processore intel8086. Comunque grazie per la risposta. :D
ale4
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 761
Iscrizione: venerdì 10 agosto 2012, 17:53

Re: Aiuto NASM

Messaggio da ale4 »

Più che altro se vuoi far girare quel programma devi emulare il DOS,non il processore x86 (dato che è quello che stai usando),e l' assembler adatto per il dos e quella sintassi,non avendo mai programmato in assembly sotto dos non ti so rispondere però
Mieti
Prode Principiante
Messaggi: 4
Iscrizione: venerdì 10 gennaio 2014, 19:22
Distribuzione: ubuntu

Re: Aiuto NASM

Messaggio da Mieti »

ale4 [url=http://forum.ubuntu-it.org/viewtopic.php?p=4517608#p4517608][img]http://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto:Più che altro se vuoi far girare quel programma devi emulare il DOS,non il processore x86 (dato che è quello che stai usando),e l' assembler adatto per il dos e quella sintassi,non avendo mai programmato in assembly sotto dos non ti so rispondere però
ok, grazie comunque per la risposta.
Scrivi risposta

Ritorna a “Dilemmi del principiante”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 3 ospiti