Σελ. 2 από 3 ΠρώτηΠρώτη 123 ΤελευταίαΤελευταία
Εμφάνιση 16-30 από 34
  1. #16
    Εγγραφή
    25-03-2009
    Ηλικία
    41
    Μηνύματα
    507
    Downloads
    3
    Uploads
    0
    Τύπος
    ADSL2+ HOL Full
    Ταχύτητα
    14886/1022
    ISP
    HOL
    DSLAM
    HOL - ΑΡΤΑ
    Router
    3COM OfficeConnect
    SNR / Attn
    9(dB) / 27(dB)
    Παράθεση Αρχικό μήνυμα από bxenos Εμφάνιση μηνυμάτων
    γενικά ναι, αλλά χμμμμ....
    έστω x unsigned
    Κώδικας:
        x++;
    οι τελεστές μοναδιαίας αυξομοίωσης γίναν γιατί στους περισσότερους επεξεργαστές είναι μία εντολή.
    mov EAX, x
    inc EAX
    mov x, EAX

    Κάπως έτσι

  2. #17
    Εγγραφή
    31-01-2009
    Περιοχή
    ν κοσμος
    Ηλικία
    36
    Μηνύματα
    744
    Downloads
    0
    Uploads
    0
    Τύπος
    Other / Άλλο
    Ταχύτητα
    8.191/381
    ISP
    Conn-x OTE
    DSLAM
    ΟΤΕ - Ν. ΣΜΥΡΝΗ
    Router
    Ομορφο σα και
    SNR / Attn
    29,0(dB) / 11/4(dB)
    Παράθεση Αρχικό μήνυμα από karnage Εμφάνιση μηνυμάτων
    mov EAX, x
    inc EAX
    mov x, EAX

    Κάπως έτσι
    Ο δικος μου compiler ειναι χαλασμενος. Μου το κανει add και οχι inc...

  3. #18
    Εγγραφή
    27-08-2004
    Περιοχή
    internet
    Μηνύματα
    23.371
    Downloads
    58
    Uploads
    17
    Άρθρα
    9
    Ταχύτητα
    49999 / 4999
    ISP
    ΟΤΕ Conn-x
    DSLAM
    ΟΤΕ - ΚΟΥΝΟΥΠΙΔΙΑΝΩΝ
    Μήπως στο κάνει addi και όχι add;
    Gentoo Linux: mess with the best and you might learn something
    δικτυακή παράσταση | twitter | within specifications
    Αν φτάσω τα 100 και με ρωτήσουν το μυστικό της μακροζωίας θα πω: Πάντα είχα 3 ποτήρια μπροστά μου· ένα με νερό, ένα με καφέ & ένα με αλκοόλ.

  4. #19
    Εγγραφή
    31-01-2009
    Περιοχή
    ν κοσμος
    Ηλικία
    36
    Μηνύματα
    744
    Downloads
    0
    Uploads
    0
    Τύπος
    Other / Άλλο
    Ταχύτητα
    8.191/381
    ISP
    Conn-x OTE
    DSLAM
    ΟΤΕ - Ν. ΣΜΥΡΝΗ
    Router
    Ομορφο σα και
    SNR / Attn
    29,0(dB) / 11/4(dB)
    Παράθεση Αρχικό μήνυμα από mrsaccess Εμφάνιση μηνυμάτων
    Μήπως στο κάνει addi και όχι add;
    Καλαμπουρι κανω

    Αλλα ναι, σκετο add
    Κώδικας:
    ; 18   : 	++i;
    
    	mov	eax, DWORD PTR _i$[ebp]
    	add	eax, 1
    	mov	DWORD PTR _i$[ebp], eax

  5. #20
    Εγγραφή
    19-06-2008
    Περιοχή
    127.0.0.1
    Μηνύματα
    1.148
    Downloads
    0
    Uploads
    0
    Τύπος
    ADSL2+
    Ταχύτητα
    14000/700
    ISP
    Conn-x OTE
    Router
    cisco887va+sec-k9
    Path Level
    Fastpath
    8μπιτος μικροελενκτής risc PIC18F1320:

    Κώδικας:
    101:               	static unsigned char xx;
    102:               	xx = 7;
      0A28    0100     MOVLB 0
      0A2A    0E07     MOVLW 0x7
      0A2C    6F43     MOVWF 0x43, BANKED
    103:               	xx++;
      0A2E    2B43     INCF 0x43, F, BANKED

    0x43 ή θέση που αποφάσισε ο linker να τοποθετήσει το xx.

    Στους AVR (Atmel) ακόμα και η ανάθεση τιμής, είναι 1 εντολή.

  6. #21
    Εγγραφή
    25-03-2009
    Ηλικία
    41
    Μηνύματα
    507
    Downloads
    3
    Uploads
    0
    Τύπος
    ADSL2+ HOL Full
    Ταχύτητα
    14886/1022
    ISP
    HOL
    DSLAM
    HOL - ΑΡΤΑ
    Router
    3COM OfficeConnect
    SNR / Attn
    9(dB) / 27(dB)
    Στους PIC (18F8520 π.χ.) ο πολλαπλασιασμός γίνεται σε ένα κύκλο με εξωτερικό κύκλωμα.
    Γενικότερα στην ARM αρχιτεκτονική, πολλά γίνονται σε μία εντολή. Το Wikipedia έχει ένα πάρα πολύ καλό παράδειγμα.
    Παρόλα αυτά, συνήθως αυτές οι εντολές σε assembly που φαίνονται σαν μια και κάνουν 2-3 πράγματα, είναι στην ουσία μικροκώδικας, δηλαδή software που τρέχει μέσα στο CPU και όχι πραγματικές hard coded εντολές. Βέβαια όπως ανέφερα για τον PIC, οι embedded επεξεργαστές έχουν ξεχωριστά κυκλώματα για πολλά πράγματα και δεν είναι απίθανο να έχουν πολύπλοκες εντολές.

    @bxenos Μου φαίνεται δύσκολο να μπορεί να αλλάξει μια τιμή στη RAM χωρίς να την φέρει σε register. Αν μπορείς διαφώτισέ μας λίγο . Τι κάνουν οι εντολές ακριβώς; Μήπως το προηγούμενο MOVWF 0x43, BANKED, είναι το αντίστοιχο mov που παρέθεσα και εγώ; Εννοείται πως αν η τιμή βρίσκεται ήδη σε έναν register, η αύξηση μια εντολή είναι. Απλά ολόκληρη η διαδικασία δεν είναι μια εντολή.
    Τελευταία επεξεργασία από το μέλος karnage : 10-09-10 στις 12:27.

  7. #22
    Εγγραφή
    30-11-2006
    Ηλικία
    53
    Μηνύματα
    1.429
    Downloads
    0
    Uploads
    0
    Ταχύτητα
    4096/512
    ISP
    Cyta Hellas
    DSLAM
    Cyta Hellas - ΓΑΛΑΤΑΣ
    Router
    Pirelli
    SNR / Attn
    5,5(dB) / 56(dB)
    Path Level
    Interleaved
    Πώς από το θέμα για τη σύνταξη της C πήγαμε στη γλώσσα μηχανής;
    To forum έχει χρήστες. Το forum είναι οι Χρήστες...

  8. #23
    Εγγραφή
    19-06-2008
    Περιοχή
    127.0.0.1
    Μηνύματα
    1.148
    Downloads
    0
    Uploads
    0
    Τύπος
    ADSL2+
    Ταχύτητα
    14000/700
    ISP
    Conn-x OTE
    Router
    cisco887va+sec-k9
    Path Level
    Fastpath
    Παράθεση Αρχικό μήνυμα από karnage Εμφάνιση μηνυμάτων
    ...@bxenos Μου φαίνεται δύσκολο να μπορεί να αλλάξει μια τιμή στη RAM χωρίς να την φέρει σε register. Αν μπορείς διαφώτισέ μας λίγο . Τι κάνουν οι εντολές ακριβώς; Μήπως το προηγούμενο MOVWF 0x43, BANKED, είναι το αντίστοιχο mov που παρέθεσα και εγώ; Εννοείται πως αν η τιμή βρίσκεται ήδη σε έναν register, η αύξηση μια εντολή είναι. Απλά ολόκληρη η διαδικασία δεν είναι μια εντολή.
    Σε τεχνολογίες risc όπου έχουμε πολλούς registers (κάτι σαν ενσωματωμένη static ram), οι μεταβλητές auto ή register μιας συνάρτησης αποθηκεύονται σε registers και όχι στην αργή dynamic ram. Υπάρχουν εντολές άμεσης εκτέλεσης πράξεων με registers χωρίς παρέμβαση φόρτωσης σε ενδιάμεσο καταχωρητή (αφού είναι σε καταχωρητή).

    O πολλαπλασιασμός στην σειρά PIC18 είναι 16bit και γίνεται με άλλο κύκλωμα, περίπου όπως γινόταν και με τους μαθηματικούς συνεπεξεργαστές (θυμόσαστε τους 8087; ).

    Στα cisc μοντέλα, οι registers έχουν συγκεκριμένες εργασίες και σπάνια μπορούν να αποδοθούν για άλλες χρήσεις, οπότε δεδομένου της μεγάλης διαφοράς ταχύτητας μεταξύ Dynamic RAM και Register, χρειάζεται η μεταφορά σε register πριν τις πράξεις.

    Το MOVLB επιλέγει το bank της μνήμης (υπάρχουν 2 ή περισσότερα bank καταχωρητών ανάλογα με το τσιπάκι).
    Το MOVLW βάζει μια σταθερά, στον καταχωρητή W (accumulator ή WORK register).
    Η MOVW(ork)F(ile) 43 BANKED μεταφέρει το περιεχόμενο του καταχωρητή Work (δηλαδή το 7 - αρχική τιμή για το xx) στον register (File) στη θέση 43 και στο segment που δείχνει το BANK flag. Είναι τμήμα της απόδοσης αρχικής τιμής που ο PIC δεν μπορεί να κάνει απευθείας απόδοση σταθεράς σε register (εδώ ο πυρήνας των PIC είναι λιγότερο αποδοτικός απο τον πυρήνα των AVR).
    Μπορεί όμως να κάνει απευθείας απόδοση αποτελέσματος πράξης σε register.
    H INC 43 αυξάνει κατα 1 το περιεχόμενο του register της θέσης 43 σε 1 κύκλο ρολογιού.

    ........Auto merged post: bxenos πρόσθεσε 3 λεπτά και 52 δευτερόλεπτα αργότερα ........

    Παράθεση Αρχικό μήνυμα από nmakry Εμφάνιση μηνυμάτων
    Πώς από το θέμα για τη σύνταξη της C πήγαμε στη γλώσσα μηχανής;
    η c σχεδιάστηκε πριν πολλάααα χρόνια για να είναι κοντά στην assembly (όχι γλώσσα μηχανής) και γι'αυτό έχει τόσο λητή σύνταξη και υποστήριξη περιφερειακών. Οι πολυπλοκότητες που μπορούν να γίνουν στις παραστάσεις της, μπορούν να βοηθήσουν τον optimizer να φτιάξει αποδοτικότερο κώδικα αν ο προγραμματιστής ξέρει τι κάνει (άσχετα αν στην συντριπτική πλειοψηφία των εφαρμογών αυτό είναι άσχετο).

    Γι'αυτο υπάρχει η αντίληψη ότι είναι απαραίτητη για λειτουργικά συστήματα αλλά είναι τροχοπέδη για σύγχρονες GUI εφαρμογές.
    Τελευταία επεξεργασία από το μέλος bxenos : 10-09-10 στις 16:04. Αιτία: auto merged post

  9. #24
    Εγγραφή
    11-07-2005
    Περιοχή
    Λουξεμβούργο
    Ηλικία
    58
    Μηνύματα
    12.570
    Downloads
    6
    Uploads
    1
    Τύπος
    FTTH
    Ταχύτητα
    500Μ Download/260M Uploa
    ISP
    Διάφοροι. Ολο
    Router
    Fritzbox!7490
    δεν είναι η C στριφνή. Οι "δήθεν" προγραμματιστές δεν είναι επαρκείς, ή ο κώδικας που πρέπει να αναλάβουν δεν είναι καλοφτιαγμένος και με το σχετικό documentation (πχ βλ literate programming) ή και τα δύο (που ειναι το πιο σύνηθες).

    Θα μπορούσαμε να παραθεσουμε κώδικα σχεδόν απο όλες τις γλώσσες, και για τον αδαή ή τον νουμπά να φαίνεται ιδιαίτερα στριφνό, οχι για τον πραγματικό γνώστη όμως....
    Που να δείς κώδικα σε perl! Η΄σε καποιο αλλη προγραμματιστική μορφή (πχ LISP, Prolog, Haskell) κλπ, ή προγραμματισμό σε κάποια γλώσσα εξειδικευμένη σε κάποιο αντικείμενο (πχ R για στατιστική, Mathematica και πάει λέγοντας).

  10. #25
    Εγγραφή
    31-01-2009
    Περιοχή
    ν κοσμος
    Ηλικία
    36
    Μηνύματα
    744
    Downloads
    0
    Uploads
    0
    Τύπος
    Other / Άλλο
    Ταχύτητα
    8.191/381
    ISP
    Conn-x OTE
    DSLAM
    ΟΤΕ - Ν. ΣΜΥΡΝΗ
    Router
    Ομορφο σα και
    SNR / Attn
    29,0(dB) / 11/4(dB)
    Λιγο ασχετο, αλλα γιατι η ms δεν γραφει ολο το λειτουργικο σε c++ , αν οχι ολο, τουλαχιστον το gdi και άλλα api που εχουν ζητηση;

  11. #26
    Εγγραφή
    25-03-2009
    Ηλικία
    41
    Μηνύματα
    507
    Downloads
    3
    Uploads
    0
    Τύπος
    ADSL2+ HOL Full
    Ταχύτητα
    14886/1022
    ISP
    HOL
    DSLAM
    HOL - ΑΡΤΑ
    Router
    3COM OfficeConnect
    SNR / Attn
    9(dB) / 27(dB)
    Δεν ξέρω κανένα λειτουργικό γραμμένο σε C++. Αν είναι να χάσεις το πλεονέκτημα της C (low-level) γιατί να πας σε C++; Καλύτερα C#.
    Τώρα τα API σίγουρα θα μπορούσαν να είναι σε μια OO μορφή όπως τόσα άλλα frameworks (Qt, .Net, JDK κλπ.). Το DirectX π.χ. είναι OO.

  12. #27
    Εγγραφή
    31-01-2009
    Περιοχή
    ν κοσμος
    Ηλικία
    36
    Μηνύματα
    744
    Downloads
    0
    Uploads
    0
    Τύπος
    Other / Άλλο
    Ταχύτητα
    8.191/381
    ISP
    Conn-x OTE
    DSLAM
    ΟΤΕ - Ν. ΣΜΥΡΝΗ
    Router
    Ομορφο σα και
    SNR / Attn
    29,0(dB) / 11/4(dB)
    Παράθεση Αρχικό μήνυμα από karnage Εμφάνιση μηνυμάτων
    Δεν ξέρω κανένα λειτουργικό γραμμένο σε C++. Αν είναι να χάσεις το πλεονέκτημα της C (low-level) γιατί να πας σε C++; Καλύτερα C#.
    Τώρα τα API σίγουρα θα μπορούσαν να είναι σε μια OO μορφή όπως τόσα άλλα frameworks (Qt, .Net, JDK κλπ.). Το DirectX π.χ. είναι OO.
    Και η c++ εχει το πλεονεκτημα του ll. Μεχρι και mixed code με asm υποστηριζει.


    Τεσπα, απλος αυτη τη περιοδο μελεταω το gdi (Win32), και αποτι βλεπω ειναι πολυ δυσκολο να το συνδυασεις με c++ και κυριος με την stl .
    Edit: [
    Βασικα τωρα που το σκεφτομαι, για windows ειναι λιγο δυσκολο εφοσον θα πρεπει να ξεπερασει τον NT κατι που δεν ειναι και τοσο καλο-πρακτικο.
    Να αλλαξω λιγο το ερωτημα.
    Γιατι δεν κανουν ενα remake τον linux kernel σε c++ ; ]
    Τελευταία επεξεργασία από το μέλος Παπι : 10-09-10 στις 17:58.

  13. #28
    Εγγραφή
    19-06-2008
    Περιοχή
    127.0.0.1
    Μηνύματα
    1.148
    Downloads
    0
    Uploads
    0
    Τύπος
    ADSL2+
    Ταχύτητα
    14000/700
    ISP
    Conn-x OTE
    Router
    cisco887va+sec-k9
    Path Level
    Fastpath
    Παπί όπως έχεις παρατηρήσει και εσυ με το sort, η C++ βγάζει κώδικα εκεί που δεν το περιμένεις, οπότε θέλει αρκετή εμπειρία να αξιοποιήσεις ταχύτητες C σε C++. Οπότε καλύτερα C αν απαιτείται μέγιστη ταχύτητα, αλλιώς μια C# είναι ότι πρέπει, οπως είπε και ο karnage.

    Το gdi/sdk για να γίνει OO θέλει ένα layer απομόνωσης (κάτι σαν το χαζο MFC) και μετά παίζει μια χαρά και με STL.

    Θα πρέπει δυστυχώς να συμφωνήσω και με τον anon, για τον κώδικα μια χρήσης (χωρίς documentation και χάλια γραμμένο) που κυκλοφορεί σε "επαγγελματικό" λογισμικό κατά κόρον...
    Τι να γίνει όμως που το όραμα της παιδείας στη χώρα μας (όπως το βλέπουν οι τελευταίες υπουργ-χέσες) είναι ένα word και ένα excel, άντε και ένα google.

  14. #29
    Εγγραφή
    31-01-2009
    Περιοχή
    ν κοσμος
    Ηλικία
    36
    Μηνύματα
    744
    Downloads
    0
    Uploads
    0
    Τύπος
    Other / Άλλο
    Ταχύτητα
    8.191/381
    ISP
    Conn-x OTE
    DSLAM
    ΟΤΕ - Ν. ΣΜΥΡΝΗ
    Router
    Ομορφο σα και
    SNR / Attn
    29,0(dB) / 11/4(dB)
    Ε καλα.. αυτο με το documentations ειναι σε ολα τα επιπεδα.
    πχ
    scanf
    που μπορεις να δεις οτι εχει αυτη τη δυνατοτητα;
    scanf("%[^\n]s",str) ;

    Οσο για το win api.... ΑΠΑΡΑΔΕΚΤΟ


    Και να μπω Ontopic. TS που να δεις και το καινουριο standar της c++
    κατι τετοια πραματα
    Κώδικας:
    int c=0;
    auto f = [&c](int& i)->bool
    {
    if(i<c)
    {
    i = 1;
    return true;
    }
    return false
    };
    H c τουλαχιστον ειναι στριφνη μονο σε θαματα reference & dereference πουθενα αλλου.
    Τελευταία επεξεργασία από το μέλος Παπι : 10-09-10 στις 18:38.

  15. #30
    Εγγραφή
    09-11-2007
    Μηνύματα
    1.574
    Downloads
    0
    Uploads
    0
    Ταχύτητα
    8192/1024
    ISP
    Cyta Hellas
    DSLAM
    Cyta Hellas - ΤΡΙΠΟΛΗ
    Παράθεση Αρχικό μήνυμα από pt3 Εμφάνιση μηνυμάτων
    Οταν λεω οτι είναι στριφνή εννοω εκφράσεις του τύπου :
    s += i++;
    ή
    c[i][j] += a[i][k] * b[k][j];

    και συνεχίζοντας καταλήγουμε στο

    http://www.adslgr.com/forum/showpost...4&postcount=25

    Αναφέρομαι δηλαδή κυρίως στη σύμπτηξη 2,3,4, ν εντολών σε φαινομενικά μια.
    Προφανώς οσο πιο πολυ ασχολείσαι με τη γλώσσα τοσο πιο ευκολα τα κατανοεί κανείς όλα αυτά και τα ξεπερνά. Εχουν όμως κάποιο ουσιαστικό λόγο ύπαρξης υπάρχει καποιο κέρδος απο αυτά;
    Απορώ γιατί κανείς δεν είπε το εξής. Αυτός ο τρόπος σου γλιτώνει typing όταν έχεις μεγάλα ονόματα μεταβλητών. Βέβαια πρέπει να έχεις συνηθίσει στο να διαβάζεις με τέτοιο στυλ και να μην το παρακάνεις. Φαντάσου αν κάθε μεταβλητή στο παράδειγμα σου αποτελούνταν από τέσσερα γράμματα και όχι από ένα και ήθελες να γράψεις τις ίδιες εντολές με τον άλλο τρόπο χωρίς σύμπτυξη. Πρώτον, θα έκανες πολύ περισσότερη ώρα και δεύτερο θα διαβαζόταν πιο δύσκολα ο κώδικας καθώς ίσως να έπιανε 2 σειρές η εντολή.
    Κάνω προσπάθεια να βάζω ; αντι για ?


Σελ. 2 από 3 ΠρώτηΠρώτη 123 ΤελευταίαΤελευταία

Παρόμοια Θέματα

  1. Μηνύματα: 126
    Τελευταίο Μήνυμα: 13-02-08, 11:47
  2. Γιατί τα double layer DVD είναι τόσο ακριβά;
    Από Undertow στο φόρουμ Σκληροί δίσκοι, αποθηκευτικά μέσα και λοιπά περιφερειακά
    Μηνύματα: 21
    Τελευταίο Μήνυμα: 28-12-06, 11:09
  3. Γιατί οι εξωτερικοί σκληροί είναι τόσο ακριβοί?
    Από bodom στο φόρουμ Σκληροί δίσκοι, αποθηκευτικά μέσα και λοιπά περιφερειακά
    Μηνύματα: 11
    Τελευταίο Μήνυμα: 09-02-06, 03:29
  4. Γιατι το Gnome ειναι τοσο αργο???
    Από TheCondor στο φόρουμ Unix - Linux
    Μηνύματα: 10
    Τελευταίο Μήνυμα: 18-02-05, 00:30
  5. Κάρτες γραφικών περασμένης γενιάς -- Γιατί είναι ακόμα τόσο ακριβές;
    Από John_Nastos στο φόρουμ Κάρτες ήχου, γραφικών, ηχεία και οθόνες
    Μηνύματα: 16
    Τελευταίο Μήνυμα: 07-02-05, 01:10

Bookmarks

Bookmarks

Δικαιώματα - Επιλογές

  • Δεν μπορείτε να δημοσιεύσετε νέα θέματα
  • Δεν μπορείτε να δημοσιεύσετε νέα μηνύματα
  • Δεν μπορείτε να αναρτήσετε συνημμένα
  • Δεν μπορείτε να επεξεργαστείτε τα μηνύματα σας
  •  
  • Τα BB code είναι σε λειτουργία
  • Τα Smilies είναι σε λειτουργία
  • Το [IMG] είναι σε λειτουργία
  • Το [VIDEO] είναι σε λειτουργία
  • Το HTML είναι εκτός λειτουργίας