Newsgroup: it.comp.os.linux.development
Titolo: C ed esecuzione comandi in assembler

Nel porting di un programmino dos su linux ho un problema:
nel listato vengono fatte eseguire delle istruzioni in assembler nella 
seguente maniera:
asm {
                mov ax,segm;
                mov es,ax;
                mov dx,offs;
                mov ax,0x1012;
                mov bx,16;
                mov cx,128;
                int 0x10;
                }
e gcc mi da parse error pressochè ovunque..
In che modo posso fare la stessa cosa?
Devo per caso aggiungere qualche flag durante la compilazione?
Grazie in anticipo.
Francesco

"Reginato Francesco" ha scritto:

l'assembly di gcc e' l'AT&T, ma mi pare (forse) che sia possibile 
passare un'opzione all'assembler per usare codice intel
comunque, dai uno sguardo all'assembly programming HOWTO

 Francesco
non puoi passare delle istruzioni assembler in questo modo. che io 
sappia cio' e' possibile solo col MS Visual C++. 
Il gcc-2.9* non lo consente che io sappia.
Onofrio

 In che modo posso fare la stessa cosa?
Inline assembly. Parti da 
linux-assembly.org
 o qualcosa del genere.
--
  Giuseppe "Cowo" Corbelli \/\ My software: 
http://cowo.mascanc.net
    **ANTI-SPAM** -- **Substitute IHATESPAM with cowo to reply by mail**
  -<! Heavy Metal Or No Metal At All! Whimps And Posers Leave The Hall !>-
 	 			Manowar - Metal Warriors

 Il gcc-2.9* non lo consente che io sappia.
sai male. e' solo sbagliata la sintassi

                 }
potrei sbagliarmi
	a=0x1012
	b=16
	c=128
	__asm__  ("mov %0, %%ax\n\t"
	         	      "mov %%ax, %%es\n\t"
	                      "mov %0, %%dx\n\t"
	                      "mov %1, %%ax\n\t"
                              "mov %2, %%bx\n\t"
                              "mov %3, %%cx"
			      : 
                              : "m" (segm), "m" (offs), "m"
(a), "m" (b), "m" (c)
	: "0");
in linux gli interrupt non si possono usare, non saprei cosa
dirti per sostituire l'ultima chiamata
ciao ciao  
-- 
	..... il Grande Incubo continua ......
 
                   Jonathan

 In che modo posso fare la stessa cosa?
Ho paura che dovrai affrontare il problema in modo diverso, capendo cio'
che dovrebbe fare il programma, e usando le librerie grafiche di linux,
in console o sotto X per ripetere le stesse primitive grafiche.
-- 
           |Save our planet!
  Ciao     |Save wildlife;
  roberto  |For your E-MAIL use only recycled Bytes !!
           |roberto poggi  
rpo...@softhome.net


Si, hai ragione, mi sono sbagliato.
Il fatto e' che tempo fa dovevo usare codice assembly e ho
avuto un sacco di problemi con gcc perche' non prendeva codice
Intel.
Ciao
Onofrio

Allora ti ringrazio per la tua risposta, pensavo che fosse solamente un 
problema di sintassi che ho risolto, il compilatore da ok ma logicamente il 
linker na sfilza di errori.
Il programma non è un videogioco, è un programmino per utilizzare una 
camera CCD, e al suo interno vi sono abbastanza istruzioni in assembler che 
io non so proprio come gestire..
Dai post che sono seguiti mi pare proprio di capire che è meglio che me la 
metta via per portare il prog sotto linux... almeno fino a quando non 
imparo (hehe... bella questa) l'assembler..
Cmq grazie MILLE!
Ciao Francesco

io non so proprio come gestire..
Se vuoi un esempio vai su
http://www.kirchgessner.net/audine.html#AUDINEV211
e scaricati i sorgenti.
Se hai problemi fammi un fiskio
Ciao

Nel porting di un programmino dos su linux ho un problema:
www.geocities.com/SiliconValley/Ridge/2544/asm/linux-asm.txt
-- 
 __
| _         "The Internet is slow, could you please reboot it ?"
|__|iambo   mailto:
gabr...@giambonini.com
 
www.giambonini.com

>Il programma non č un videogioco, č un programmino per utilizzare una
