Προς το περιεχόμενο

assembly+8086 emulator


visualcreator8

Προτεινόμενες αναρτήσεις

Καλημέρα στην ομαδα..προσπαθω εδω και ωρα να καταλαβω την συγκεκριμενη γλωσσα και τον συγκεκριμενο emulator χωρις αποτελεσματα...εχασα καποια μαθηματα στη σχολη και πρεπει να εξερευνησω καποια πραγματα μονος μου πανω σε αυτα...προσπαθω να βρω ποση ωρα πως μπορεις να κανεις προσθεσεις σε ακεραιους αριθμους χωρις επιτυχια

υπαρχει κανεις που να μπορει να βοηθησει?

 

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Μήπως μπορεί να σε βοηθήσει αυτό το tutorial;

Btw μου έκανε φοβερή εντύπωση ότι διδάσκουν assembly στο πανεπιστήμιο, νομίζω ότι 1/100.000 προγραμματιστές θα την χρειαστεί. Εγώ αυτό που έχω καταλάβει είναι ότι όλοι σήμερα γράφουν το πρόγραμμα σε μία high level language, αν κάπου χρειάζονται βαριά μαθηματικά / απόλυτες επιδόσεις γράφουν ένα module σε C/Fortran (με χρήση Intel Math Kernel Library κάποιες φορές) και το ενσωματώνουν στον πρόγραμμα. Η assembly χρησιμεύει μόνο στο να δει κάποιος αν το compile που γίνεται μπορεί να βελτιωθεί, δηλαδή αφορά ελάχιστους. Είμαι περίεργος αν η assembly έχει και άλλη χρήση. Κουράγιο πάντως, αν δεν έχεις πολυετή εμπειρία σε προγραμματισμό θα δυσκολευτείς.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

1 ώρα πριν, elpenor είπε

Μήπως μπορεί να σε βοηθήσει αυτό το tutorial;

Btw μου έκανε φοβερή εντύπωση ότι διδάσκουν assembly στο πανεπιστήμιο, νομίζω ότι 1/100.000 προγραμματιστές θα την χρειαστεί. Εγώ αυτό που έχω καταλάβει είναι ότι όλοι σήμερα γράφουν το πρόγραμμα σε μία high level language, αν κάπου χρειάζονται βαριά μαθηματικά / απόλυτες επιδόσεις γράφουν ένα module σε C/Fortran (με χρήση Intel Math Kernel Library κάποιες φορές) και το ενσωματώνουν στον πρόγραμμα. Η assembly χρησιμεύει μόνο στο να δει κάποιος αν το compile που γίνεται μπορεί να βελτιωθεί, δηλαδή αφορά ελάχιστους. Είμαι περίεργος αν η assembly έχει και άλλη χρήση. Κουράγιο πάντως, αν δεν έχεις πολυετή εμπειρία σε προγραμματισμό θα δυσκολευτείς.

Χρηση κυριως σε compilers και device drivers. Εκανα το bachelor thesis μου σε assembly, τα πραγματα που εμαθα στην πορεια ειναι ατελειωτα που δεν θα τα μαθαινα αλλιως με καμια high level γλωσσα. Το learning curve ομως ειναι τεραστιο και θελει πολυ επιμονη και υπομονη

  • Like 2
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημοσ. (επεξεργασμένο)
3 ώρες πριν, najinblue3 είπε

Χρηση κυριως σε compilers και device drivers. Εκανα το bachelor thesis μου σε assembly, τα πραγματα που εμαθα στην πορεια ειναι ατελειωτα που δεν θα τα μαθαινα αλλιως με καμια high level γλωσσα. Το learning curve ομως ειναι τεραστιο και θελει πολυ επιμονη και υπομονη

 

Μην ξεχνάς εύρεση/exploitation ευπαθειών, malware analysis, και γενικότερα reverse engineering. :)

Επίσης γενικά χρειαζεται συχνά για "low-level" software, οπως operating systems (kernel) development, emulator development, hypervisor development και - είμαι σίγουρος - και άλλα πράγματα που δεν έχω υπ'όψιν.

Επεξ/σία από vel0city
  • Like 3
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

το ξερω οτι θα φανει περιεργο αλλα βρισκομαι σε δημοσιο ιεκ και η assembly ειναι προσθηκη ενος καθηγητη μας γιατι με βασει τα λεγομενα του πρεπει να ξερουμε το κατι παραπανω για να βγουμε στην αγορα εργασιας...πραγματι ειμαστε το μονο ιεκ που εχει στην υλη assembly οπως επισης και logisism και δημιουργια βιβλιοθηκης δικια μας σε dev c

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

και φυσικά στα παιχνίδια και όπου χρειάζεται επιτάχυνση στο μεγιστο (Cinema Craft Encoder ;οταν μια φορά και ένα καιρό κάναμε transcoding σε DVD -->mDVD)

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Καλησπέρα, φίλε VisualCreator8 !

 Θα βοηθούσε, πιστεύω, περισσότερο αν μας έγραφες ποιον ακριβώς εξομοιωτή του 8086 προσπαθείς να χρησιμοποιήσεις. Τότε θα μπορούσαμε φυσικά να σε καθοδηγήσουμε καλύτερα. Όμως και τώρα μπορώ να γράψω 2-3 απλά πράγματα.
 Η αποθήκευση μικρών ποσοτήτων δεδομένων στην Assembly του 8086 γίνεται στους λεγόμενους καταχωρητές (αγγλ. registers), οι οποίοι δεν είναι τίποτα άλλο παρά πολύ γρήγορες μνήμες που μπορούν ν' αποθηκεύσουν αριθμούς και βρίσκονται πολύ κοντά στον επεξεργαστή. Ο επεξεργαστής 8086 έχει 4 καταχωρητές γενικού σκοπού που ονομάζονται AX,BX,CX και DX.
Υπάρχουν κι αρκετοί άλλοι καταχωρητές, αλλά δεν θα τους χρειαστούμε σ' αυτό το παράδειγμα γιατί αυτοί δεν είναι γενικού σκοπού και χρησιμεύουν κυρίως για αποθήκευση διευθύνσεων μνήμης ή για τη λειτουργία του σωρού.
Έστω ότι θέλουμε να βρούμε με τι ισούται το άθροισμα 2+3. Το πρώτο που θα κάνουμε είναι να φορτώσουμε στον καταχωρητή AX την τιμή 2, δηλαδή τον πρώτο προσθετέο. Αυτό γίνεται με την εντολή MOV (συντομογραφία του ρήματος move) ως εξής :

MOV καταχωρητής, τιμή δηλ. MOV AX,2

Με παρόμοιο τρόπο φορτώνουμε στον BX την τιμή 3, δηλαδή δίνουμε MOV BX,3

Η επόμενη εντολή θα είναι ADD AX,BX

Η ADD δέχεται εδώ δύο καταχωρητές ως ορίσματα και αυτό που λέει σε απλά Ελληνικά είναι «να προστεθούν στα περιεχόμενα του καταχωρητή που εμφανίστηκε ως πρώτο όρισμα, τα περιεχόμενα του δεύτερου και το τελικό αποτέλεσμα να αποθηκευτεί στον πρώτο.»
Δηλαδή σαν να λέγαμε AX=AX+BX σε μια γλώσσα υψηλού επιπέδου.

Άμα τρέξεις αυτές τις 3 εντολές και μετά ζητήσεις να σου εμφανίσει το περιεχόμενο του ΑΧ, αυτό θα είναι ίσο με πέντε.
Επίσης υπάρχει περίπτωση η άσκηση, αντί να δίνει απ' ευθείας τους προσθετέους, να σου λέει ότι οι προσθετέοι είναι αποθηκευμένοι στις διευθύνσεις μνήμης πχ 100 και 101.
Τότε θα γράψεις ως εξής :

MOV AX,[100]
MOV BX,[101]
ADD AX,BX

Προσοχή στις αγκύλες. Η πρώτη εντολή σημαίνει «να φορτωθεί στον AX ό,τι περιέχεται στη διεύθυνση μνήμης με αύξοντα αριθμό 100« κι όχι να φορτωθεί η ίδια η τιμή 100.

Αυτά για την ώρα,
Είναι λίγο πριν απ' τα μεσάνυχτα και δεν μπορώ να γράψω πιο αναλυτικά, νυστάζω.
Αν χρειάζεσαι πιο πολύ βοήθεια, τα λέμε από αύριο.
Πρέπει να πάω στο καλαθάκι μου για ξεκούραση,
Νιάααααααου !!!!!!

Ο Άσπρος Γάτος

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...