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

Assemply


mix@lis

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

Δημοσ.

Καλημέρα σε όλους!!!!!!!!!!!!

 

Εχω μία ερώτηση.......Πώς μπορώ να γράψω ένα απλό προγραμμάτακι σε assemply?δηλαδή το γράφω σε word???σε dos???????και πως το κάνω compile???????

 

Ευχαριστώ.............

Δημοσ.

Καταρχάς το να γράψεις έστω το "Hello World" σε assembly είναι αρκετά δύσκολο :D

Δεύτερον για να προγραμματίσεις σε μια γλώσσα...πρέπει να την γνωρίζεις.

Αν την γνώριζες θα ήξερες ότι με οποιοδήποτε text editor μπορείς να γράψεις τον κώδικα.

Έπειτα του αλλάζεις extension ( στο file ) και με κάποιον compiler ( π.χ. MASM , TASM )

Δημοσ.

.model small

.stack 100h

.data

msg db "Hallo World!",0hd,0ah,'$'

 

.code

main proc

mov ax,@data

mov ds,ax

 

;Kalesma writestring toy dos

mov ah,9

mov dx,offset message

int 21h

 

;Epistrofi sto dos

mov ax,4C00h

int 21h

 

main endp

end main

 

Opos blepeis den einai kai poli diskolo.

 

Episeis gia na to kaneis assemble xrisomopoise ton Masm.Meta thelei linking.

Telos o Masm kai Tasm einai Assemblers kai oxi compilers ;)

Δημοσ.

o masm de ftanei gia na to kaneis stand-alone executable(.exe) tha sou vgalei .obj (objective code). xreiazesai kai to linker (perilamvanetai sta paketa tou masm)

 

mixalis: sto sig ti kwdika exeis? java mipws?

Δημοσ.
.model small

.stack 100h

.data

msg db "Hallo World!"' date='0hd,0ah,'$'

 

.code

main proc

mov ax,@data

mov ds,ax

 

;Kalesma writestring toy dos

mov ah,9

mov dx,offset message

int 21h

 

;Epistrofi sto dos

mov ax,4C00h

int 21h

 

main endp

end main

 

Opos blepeis den einai kai poli diskolo.

 

Episeis gia na to kaneis assemble xrisomopoise ton Masm.Meta thelei linking.

Telos o Masm kai Tasm einai Assemblers kai oxi compilers ;)[/quote']

 

 

Το compiler μου ξέφυγε, σωστά Assemblers λέγονται.

Δεύτερον δύσκολο είναι για κάποιον που δεν έχει ασχοληθεί με Assembly ( κάτι που νομίζω πως δεν έχει κάνει το παιδί που άνοιξε το thread )

Δημοσ.

Για ποιό λογο φίλε μου θέλεις να ξεκινήσεις να μάθεις Assembly?

 

Πάντως ένα πολύ καλό βιβλίο για να ξεκινήσεις να μαθαίνεις ειναι το:

 

ΤΟ ΒΙΒΛΙΟ ΤΗΣ ASSEMBLY ΓΙΑ ΤΑ PC (ΔΕΥΤΕΡΗ ΕΚΔΟΣΗ) - Peter Norton & John Socha - Εκδόσεις Κλειδάριθμος - ISBN 9602092343

 

Επίσης αν θέλεις υπάρχουν και πολλα φυλλάδια στο ΝΕΤ, για αρχάριους, που θα σε βοηθήσουν να μάθεις γρήγορα (τα βασικά).

 

Βέβαια βασική προϋπόθεση ειναι να γνωρίζεις μερικές από τις Αρχές του Προγραμματισμού (π.χ. να ξέρεις BASIC) . ..

Δημοσ.

Απλα εχω ακουσει οτι εαν ξερεις assemply μπορεις να σκεφτεσαι καλυτερα ωστε να μπορεις να προγραμματιζεις καλυτερα.........δηλαδη με λιγα λογια μαθαινεις πως λειτουργει και πως συμπεριφερεται ο υπολογιστης.....Ετσι εχω ακουσει....δεν ξερω αν ειναι σωστο........

βεβαια δεν εχω σκοπο να γινω ο μεγαλος προγραμματιστης σε assemply,απλα θελω να μαθω καποια βασικα πραγματα.............

Δημοσ.

Εναλλακτικα μπορεις να πηξεις τοσο πολυ, ωστε να αποφασισεις οτι δε θελεις να ασχοληθεις με τιποτα που εχει σχεση με προγραμματισμο.

Επισης δε νομιζω πως μαθαινεις να σκεφτεσαι καλυτερα, μαλλον το αντιθετο συμβαινει. Οι γλωσσες assembly (γιατι καθε αρχιτεκτονικη εχει και τη δικια της) γενικα δεν ειναι καθολου δομημενες, τα πραγματα γινονται σειριακα και δεν υπαρχουν ρουτινες υψηλοτερου επιπεδου απο μια προσθεση ή μια λιγο πολυπλοκη πραξη οπως μια προσθεση και μια μεταφορα δεδομενου ταυτοχρονα (τυπικα λεω).

Οποτε, αν μαθεις να σκεφτεσαι σε assembly χωρις να εχεις εμπειρια με γλωσσα προγρμματισμου υψηλου επιπεδου κινδυνευεις απο τα εξης:

1. Να μη μαθεις να φτιαχνεις δομημενα προγραμματα.

2. Να μη μαθεις να χρησιμοποιεις ετοιμες ρουτινες.

3. Να πηξεις.

 

Φυσικα σε ολα αυτα να προσθεσω οτι η οντοκεντρικη σκεψη αποκλειεται.

Δημοσ.

Δεν είχα net για 2 εβδομάδες για αυτό άργησε η απάντηση μου. Λοιπών. Η Assembly δεν σε βοηθά να σκέφτεσαι δομημένα γιατί πολύ απλά δεν είναι δομημένη αλλά πλήρως ελεύθερη.

 

Ένας που γνωρίζει assembly καλά μπορεί να κάνει τα εξής:

1) Να κατανοήσει την δομή μιας γλώσσας υψηλού επιπέδου. Αν κάποιος δεν ξέρει assembly δεν μπορεί σε καμία περίπτωση να ισχυριστεί ότι ξέρει τέλεια C/C++. Σε καμία περίπτωση.

2) Σε βοηθάει στο debugging όταν παίρνεις ανόητα λάθη από ένα πρόγραμμα.

3) Σου παρέχει την δυνατότητα να γράψεις in-line assembly κάτι που μπορεί να απογειώσει ένα πρόγραμμα.

4) Σε βοηθάει στο να κάνεις optimize τον κώδικά σου.

 

 

Y.Γ.: Σύντομα –δηλ. όταν συμμαζέψω τον κώδικα- θα κάνω upload έναν assembly compiler και έναν interpreter που έχω φτιάξει. Ακόμα βέβαια το σκέφτομαι μιας και σε ένα άλλο forum δεν του έριξε κανένας καμία ματιά (είναι και προγραμματιστές τρομάρα τους). Πραγματικά δεν ξέρω αν πρέπει ή θα κάνω ένα τζάμπα post.

Δημοσ.

6) Επίσης μπορείς να φτιάξεις υπέροχα κινούμενα γραφικά με assembly που καταλαμβάνουν ελάχιστo χώρο (αν δεν κάνω λάθος σε αρκετά παιχνίδια χρησιμοποιείται γι αυτό το λόγο)

Γι αυτόν που θέλει να ψαχτεί σε αυτόν τον τομέα ας ρίξει μια ματιά στο

http://www.pouet.net/

όπου έχει κάτι εκπληκτικά demos γραμμένα σε assembly

  • 2 χρόνια αργότερα...
Δημοσ.

Hello world χωρίς tasm/masm κτλπ. Χρησιμοποιεί το debug.exe των Dos/Windows.

Γράφεις debug στο dos command prompt και βρίσκεσε στο super duper wow φιλικό ως προς τον χρήστη περιβάλλον του debug.

Δίνεις κατά σειρά τις εντολές -ενοείτε οτι μετά απο κάθε γραμμή πατάς enter..:

A

MOV AH, 9

MOV DX, 10B

INT 21

MOV AH, 4C

INT 21

DB 'HELLO WORLD!' 0D 0A '$'

 

RCX

1A

N TEST.COM

W

Q

 

Τώρα δίνοντας test, τρέχεις το πρώτο σου πρόγραμμα σε assembly :)

Δημοσ.

Μπορείς και μέσα σε μια γλώσσα να γράψεις κώδικα σε assembly χωρίς να μπλέξεις με masm tasm κλπ. (Αν δεν σε ενοχλεί το μέγεθος του αρχείου).

 

Πχ. κάποτε σε dos με Power Basic έγραφα κανονικά σε Basic και στο σημείο που ήθελα αύξηση ταχύτητας έβαζα assembly.

Τώρα σε Delphi μια από τα ίδια.

Βέβαια είναι πιο περιορισμένα τα πράγματα αλλά για αρχή να καταλάβεις καλά είναι.

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...