Nasm x86 32 bit

...IDE, compilers, κλπ

Συντονιστής: konnn

Re: Nasm x86 32 bit

Δημοσίευσηαπό thodoris_turtle » 10 Απρ 2009, 18:17

παω μεσω του ddd source και μετα display machine code αλλα μου λεει o ddd no code

σορι φιλε εχω να κανω κατι πιο δυσκολο το θεμα μου ειναι να παντρεψω C με Assembly

τρεχει κανονικα το προγραμμα σαν εισοδο δινω ενα string αλλα σκαει το προγραμαμ μου λεει segmantation fault και μου ειπαν το πρεπει να εχει προβλημα η function length της assembly γι αυτο λεω μηπως κανω κατι με τον ddd αλλα δεν το βλεπω αφου δεν ξερω που μου παν τα τεσσερα :oops:

αμα πληκτρολογησω gcc -g -o sample sample.c μου εμφανιζει

/usr/lib/gcc/i486-linux-gnu/4.2.4/../../../../lib/crt1.o: In function `_start':
(.text+0x18): undefined reference to `main'
/tmp/cciZF5I6.o: In function `asm2pas':
/home/teo/asm32/2008_2009_sinartiseis/Archive/Micro1c.c:14: undefined reference to `length'
collect2: ld returned 1 exit status
Η ζωή είναι κενή χωρίς ιδέες. Δεν υπάρχει μεγαλύτερη χαρά από τον αγώνα στο όνομά τους.

Φιντέλ Κάστρο Ρους
31 Ιούλη του 2007
Άβαταρ μέλους
thodoris_turtle
punkTUX
punkTUX
 
Δημοσιεύσεις: 187
Εγγραφή: 28 Αύγ 2008, 15:18
Τοποθεσία: Άνω Γλυφάδα
Εκτύπωση

Re: Nasm x86 32 bit

Δημοσίευσηαπό sokoban4ever » 10 Απρ 2009, 19:38

Διόλου απίθανο να γίνεται αυτό γιατί δεν έχεις 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/
Θέλουμε και μπορούμε να έχουμε μια καλύτερη ζωή και όσο θα ζούμε θα προσπαθούμε να την αποκτήσουμε ακόμα και αν πεθάνουμε προσπαθώντας, και αν κάποια στιγμή λιγίσουμε έχουμε το επίπεδο να πούμε κουράστηκα λίγο να ,να ξαποστάσουμε , ώστε να συνεχίσουμε πάλι δυνατοί ξανά.

Μήνυμα με αγάπη και αληλλεγγύη σε όλους τους ανθρώπους από όλους τους λαούς , ιδίως του Ελληνικού.
Άβαταρ μέλους
sokoban4ever
Επίτιμο μέλος
Επίτιμο μέλος
 
Δημοσιεύσεις: 2331
Εγγραφή: 13 Φεβ 2009, 02:22
Εκτύπωση

Re: Nasm x86 32 bit

Δημοσίευσηαπό thodoris_turtle » 11 Απρ 2009, 10:28

ευχαριστωωω παρα πολυ οταν λες inline assembly? :lol:
Η ζωή είναι κενή χωρίς ιδέες. Δεν υπάρχει μεγαλύτερη χαρά από τον αγώνα στο όνομά τους.

Φιντέλ Κάστρο Ρους
31 Ιούλη του 2007
Άβαταρ μέλους
thodoris_turtle
punkTUX
punkTUX
 
Δημοσιεύσεις: 187
Εγγραφή: 28 Αύγ 2008, 15:18
Τοποθεσία: Άνω Γλυφάδα
Εκτύπωση

Re: Nasm x86 32 bit

Δημοσίευσηαπό sokoban4ever » 11 Απρ 2009, 12:35

Όπως στην python υπάρχει το weave.inline στα Scipy modules...
που γράφεις ξερά C μέσα στον κώδικα της python...
και κερδίζεις ταχύτητα.
http://www.scipy.org/PerformancePython# ... 29e8ad7087
έτσι και στην c/++ υπάρχει τρόπος που βάζεις assembly
μέσα στον κώδικα c και κερδίζεις ταχύτητα...
και το λένε inline assembly.
Νομίζω πώς το έχω ακούσει και assembly injection ... :lol: :?:
κλπ κλπ
κάπως έτσι αυξάνεις τις επιδόσεις του προγράμματος...
αλλά πάντα ο καλύτερος τρόπος πρώτα είναι να χρησιμοποιείς "καλύτερους" (και ιδανικούς) αλγορίθμους και μετά ότι άλλο για να έχεις performance... (επιδόσεις)
:D
Θέλουμε και μπορούμε να έχουμε μια καλύτερη ζωή και όσο θα ζούμε θα προσπαθούμε να την αποκτήσουμε ακόμα και αν πεθάνουμε προσπαθώντας, και αν κάποια στιγμή λιγίσουμε έχουμε το επίπεδο να πούμε κουράστηκα λίγο να ,να ξαποστάσουμε , ώστε να συνεχίσουμε πάλι δυνατοί ξανά.

Μήνυμα με αγάπη και αληλλεγγύη σε όλους τους ανθρώπους από όλους τους λαούς , ιδίως του Ελληνικού.
Άβαταρ μέλους
sokoban4ever
Επίτιμο μέλος
Επίτιμο μέλος
 
Δημοσιεύσεις: 2331
Εγγραφή: 13 Φεβ 2009, 02:22
Εκτύπωση

Re: Nasm x86 32 bit

Δημοσίευσηαπό thodoris_turtle » 21 Απρ 2009, 18:25

ok thanx ευχαριατω πολλη για την αμεση απαντηση σου :)
Η ζωή είναι κενή χωρίς ιδέες. Δεν υπάρχει μεγαλύτερη χαρά από τον αγώνα στο όνομά τους.

Φιντέλ Κάστρο Ρους
31 Ιούλη του 2007
Άβαταρ μέλους
thodoris_turtle
punkTUX
punkTUX
 
Δημοσιεύσεις: 187
Εγγραφή: 28 Αύγ 2008, 15:18
Τοποθεσία: Άνω Γλυφάδα
Εκτύπωση

Re: Nasm x86 32 bit

Δημοσίευσηαπό sokoban4ever » 21 Απρ 2009, 22:03

Off topic:
[b]Προχθές που έκανα stumbling βρήκα
αυτό:
http://www.muppetlabs.com/~breadbox/sof ... eensy.html
Ρίξε μια ματιά εγώ φρίκαρα με το πόσο μικρό έκανε ένα elf executable για linux :shock:
φοβερές δυνατότητες :shock:
:D [/
b]
Θέλουμε και μπορούμε να έχουμε μια καλύτερη ζωή και όσο θα ζούμε θα προσπαθούμε να την αποκτήσουμε ακόμα και αν πεθάνουμε προσπαθώντας, και αν κάποια στιγμή λιγίσουμε έχουμε το επίπεδο να πούμε κουράστηκα λίγο να ,να ξαποστάσουμε , ώστε να συνεχίσουμε πάλι δυνατοί ξανά.

Μήνυμα με αγάπη και αληλλεγγύη σε όλους τους ανθρώπους από όλους τους λαούς , ιδίως του Ελληνικού.
Άβαταρ μέλους
sokoban4ever
Επίτιμο μέλος
Επίτιμο μέλος
 
Δημοσιεύσεις: 2331
Εγγραφή: 13 Φεβ 2009, 02:22
Εκτύπωση

Προηγούμενη

Επιστροφή στο Εφαρμογές για Ανάπτυξη Λογισμικού