Δημοσιεύτηκε: 10 Απρ 2009, 19:38
από sokoban4ever
Διόλου απίθανο να γίνεται αυτό γιατί δεν έχεις AT&T Syntax στην inline assembly
O gcc καταλαβαίνει μάλλον μόνο την AT&T syntax του GAS (Gnu assembler ) και όχι intel syntax.
o GAS υποστηρίζει πολλές αρχιτεκτονικές αλλά ο NASM έχει intel syntax και είναι για intel... (και ποιο γρήγορος)
Για τον NASM , λογικά θα χρειαστείς τον NDISASM disassembler (πρέπει ήδη να τον έχεις)

Φοβάμαι ότι άμα θέλεις ddd μάλλον θα πρέπει να γράφεις με AT&T syntax (GAS) και όχι intel (NASM) :(

Δες εδώ τα compile flags για τον gcc
http://www.linux.org/docs/ldp/howto/Ass ... index.html
Συγκεκριμένα το
3.1.3. Invoking GCC to build proper inline assembly code
Πάντως εδώ έχει ένα guide για NASM και gcc και gdb (command line ) για intel x86
http://www.csee.umbc.edu/help/nasm/nasm.shtml
Λέει (ένα από τους τρόπους ) που ότι γίνεται να είναι συμβατο με NASM αφού μπορείς με τον gdb να επιλέξεις
Κώδικας: Επιλογή όλων
set disassembly-flavor intel

Συγκεκριμένα λέει π.χ : για ένα hello.asm σε NASM
Κώδικας: Επιλογή όλων
nasm -f elf -l hello.lst hello.asm
...
Two files are created by the command hello.o and hello.lst
...
Type the command:
gcc -o hello hello.o

αυτά όμως για ένα ξεχωριστό πρόγραμμα σε NASM
για inline δεν ξέρω αν γίνεται compile με intel syntax (NASM) αλλα αφου ο gdb επιτρέπει disassembly
με intel syntax μπορεί και να γίνεται δεν ξέρω.

Έτσι ίσως μπορείς να το συνδέσεις κάπως με τον ddd και να κάνεις debugging με gui, αλλά δεν ξέρω να σου πω πώς.

Πάρε κάποια links απο τα bookmarks μου είναι για inline assembly
Δες εδώ μια στα γρήγορα πως γίνεται γενικά
http://www.codeproject.com/KB/cpp/eduji ... e_asm.aspx

και μελέτησε με την ησυχία σου τα παρακάτω :D
http://www.ibiblio.org/gferg/ldp/GCC-In ... HOWTO.html
http://asm.sourceforge.net/articles/linasm.html
http://www.ibm.com/developerworks/linux ... /l-ia.html

έχω διαβάσει μερικές σελίδες από το Programming from the GroundUp
κάποια στιγμή θέλω να το ολοκληρώσω ,μου φαίνεται πολύ καλό ρίξε του μια ματιά ;)
http://savannah.nongnu.org/projects/pgubook/