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

Assembly


cfgreece

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

Δημοσ.

γραφεις

debug onomaarxeiou.com

 

d0:100

εμφανίζει τα bytes απο τη θέση απο 0:100 μέχρι +128 νομίζω

με d συνεχίζει παρακατω

 

r

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

 

u0:100 πχ εμφανιζει τις "εντολες" του προγραμματος

 

 

 

δεν θυμαμαι αλλα!

βρές ένα παλιο μηχανημα και παίξε.θα το ευχαριστηθείς.

 

αλλα αυτα που σου γραφουν ισχύουν.θέλει πολυ δουλεια.

  • Απαντ. 33
  • Δημ.
  • Τελ. απάντηση
Δημοσ.

cfgreece όπως είπε και ο alkisg τα πράγματα δεν είναι τόσο απλά. Χρειάζεται ένα καλό υπόβαθρο ώστε να μπορείς να καταλάβεις τη λογική των εντολών και γενικότερα πως παίρνουν τιμές οι καταχωρητές, τι flags υπάρχουν, πότε ενεργοποιούνται, τι γίνεται με τις συνθήκες, τι γίνεται με τα loops (και τους ελέγχους που γίνονται εκεί - πχ για να καταλάβεις πως ελέγχεται εάν ένα key είναι έγκυρο για να φτιάξεις δικά σου κ.τ.λ.) κ.τ.λ. Υπάρχουν και προγράμματα τα οποία είναι σχετικά απλά να τα τροποποιήσεις (γιατι φαντάζομαι αυτό θέλεις να κάνεις :P) αλλά δύσκολα θα βρεις τέτοια προγράμματα στις μέρες μας (ιδιαίτερα όταν είναι από σοβαρές εταιρίες).

Δημοσ.

aki thaks gia thi emimerosi file mou yparxei i diathesi(kai fysika mono gia mena san hobby) oson afora ton xrono safos den ginetai apo thn mia mera stin alli to katalabaino alla einai kati poy moy exei kinisi to endiaferon

fysika thelo thn bothia filon etsi? siga siga kai den zitao alloste na gino expert

eyxaristo

(diabazo ena biblio gia assemly"to biblio ths assembly gia pc" kai siga -siga )

Δημοσ.

taki exo kataferei na kano kapoia patches

alla mixanika diladi brika thn apagoreysi kai sto plisiestero c jump alaksa to 74 i to f84 alla mixanika

gia ayto thelo na mahto pos ginetai ayto katalabaineis thn ousia .an mporeso pantos eyxaristo

Δημοσ.

ΟΚ, αφού έχεις όρεξη πάρε ένα προγραμματάκι για μελέτη. Απλά γυρίζει την οθόνη του DOS σε γραφικά και τη γεμίζει με χρώματα. Αποσυμπίεσε το συνημμένο και μετά δώσε debug alkis.com. Στη συνέχεια g και Enter και θα γεμίσει η οθόνη με χρώματα. Δοκίμασε και να το παρακολουθήσεις βήμα-βήμα, αλλά προσπέρασε τα int XX για να μη χαθείς. Αν τυχόν μπεις μέσα σε ένα interrupt, θα χρειαστούν χιλιάδες εντολές μέχρι να ξαναβγείς, οπότε απλά πάτα q για να βγεις από το debug.

Οι γραμμές που ξεκινάνε με θαυμαστικό είναι σχόλια. Καλή αρχή!

>
!ΑΗ = 00 => αλλαγή ανάλυσης, AL = 13 => γραφικά 320x200 με 256 χρώματα
!Το intrlist (google it) είναι manual για τα interrupts και
!τις λειτουργίες που παρέχουν
14A4:0100 B81300        MOV     AX,0013
!INT 10 => κλήση στο BIOS για την αλλαγή ανάλυσης
14A4:0103 CD10          INT     10
!Οι δύο παρακάτω εντολές είναι κόλπο για να μπει το A000 στον ES, επειδή
!δεν υπάρχει εντολή MOV ES,A000. Το Α000 είναι η διεύθυνση της videoram
14A4:0105 B800A0        MOV     AX,A000
14A4:0108 8EC0          MOV     ES,AX
!Το XOR μηδενίζει. Συνηθίζεται επειδή ο κώδικας είναι ένα byte μικρότερος
!απ' ότι στη MOV DI,0
14A4:010A 31FF          XOR     DI,DI
!Πόσες επαναλήψεις = πόσα pixel να γεμιστούν
14A4:010C B900F0        MOV     CX,F000
!Set Direction Flag, ώστε ο DI να αυξάνεται και να πηγαίνει στο επόμενο pixel
14A4:010F FD            STD
!Βάλε ένα pixel στη videoram (ES:DI)
14A4:0110 AA            STOSB
!Πήγαινε στο επόμενο χρώμα
14A4:0111 FEC0          INC     AL
!Μείωσε το CX και αν δεν είναι 0 πήδα στο 110
14A4:0113 E2FB          LOOP    0110
!Το INT 20 είναι κλήση στο DOS για τερματισμό του προγράμματος
14A4:0115 CD20          INT     20

alkis.zip

Δημοσ.

egw proteinw na arxiseis apo ayto

http://computerscience.jbpub.com/ECOA/

de xreiazetai na to agoraseis,mporeis na to katebaseis kai se hlektronikh morfh apo ta gnwsta merh..

ayto to biblio 9a soy ma9ei prwta to MARIE (Machine Architecture that is Really Intuitive and Easy) kai thn assembly ths.meta 9a se paei se 80x86(ta basika kyriws...).epishs, 9a se ma9ei memory organization.

afotoy ta exeis kataferei me ayto to biblio mporeis na pas se kapoio biblio poy afora mono 80x86 assembly h mporeis na pas se ayto

http://www.amazon.com/gp/product/1558606041/qid=1145546418/sr=8-1/ref=pd_bbs_1/002-3939888-2733657?n=507846&s=books&v=glance

(den yarxei se hlektronikh morfh-mono prwth ekdosh)

bebaia,diapragmatevetai arxitetonikh MIPS

http://www.mips.com/ alla 9a se ma9ei na skeftesai se assembly( na kaeis teleiws dld..)

 

genika,na ksereis oti den mporeis na ma9eis eykola kai kala assembly xwris na ksereis basika pragmata peri arxite3ktonikhs ypologistwn (Computer Organization and Design)

Δημοσ.

cfgreece Ποση ωρα εχεις διαθεσιμη σε καθημερινη βαση? Αν δεν εχεις πολυ χρονο και και και μαθε καλυτερα C++ που μπορει να σε χρησημευσει σε κατι. Μαθε απο καποιο tutorial λιγο C++ και μετα αν εχεις ορεξη πας σε asm. Αν μαθεις να δουλευεις debugger μπορεις να κανεις, αν οχι τα παντα, αλλα τα Π Α Ν Τ Α.....

Δημοσ.

Τι C++ βρε παιδιά... Αυτή η γλώσσα δεν είναι για αρχάριους. Ασχολούμαι από 6 χρονών με υπολογιστές και προγραμματισμό σε άλλες γλώσσες εδώ και 2-3 χρόνια, αλλά τις έννοιες της C++ κάνω εβδομάδες να τις χωνέψω...

 

Αν μιλάμε για ξεκίνημα στον προγραμματισμό, ορίστε

FMSLogo: http://fmslogo.sourceforge.net/

Python: http://www.python.org/

Δημοσ.

Την εποχή που αποφάσισα να ασχοληθώ με την Assembly επέλεξα «Το Βιβλίο της Assembly για τα PC» του Peter Norton & John Socha.

 

Το βιβλίο δίδασκε το βασικό σετ εντολών του Intel 8086 και αφορούσε κατεξοχήν τον προγραμματισμό 16μπίτ σε περιβάλλον DOS (μάθαινες κάποιες βασικές υπηρεσίες –Interrupts αυτού του λειτουργικού) καλύπτοντας την δημιουργία τόσο αρχείων COM όσο και EXE. Παράλληλα αφιέρωνε ένα κεφάλαιο (αν θυμάμαι καλά) στον προγραμματισμό των MS-Windows 3.1.

 

Τα πρώτα παραδείγματα αναπτυσσόντουσαν με το DOS debug και ύστερα ακολουθούσε ο περίφημος MASM (Microsoft Assembler) και TASM (Turbo Assembler -Borland).

 

Σε γενικές γραμμές έμπαινες στο πνεύμα της assembly και αν είχες πραγματική διάθεση μπορούσες να την μάθεις όμως το τελευταίο διαφέρει από το να γράψεις μαζί της μια ολοκληρωμένη εφαρμογή.

 

Όσον αφορά τον κόσμο των 32μπίτ και των MS-Windows 9x, 2000&XP σαφώς η εκμάθηση της γλώσσας είναι πολύ πιο εύκολη αφού δεν έχεις να προβληματισθείς με την διαχείριση των segments (αν διαβάσεις το παραπάνω βιβλίο θα καταλάβεις τι εννοώ) ενώ παράλληλα με την χρήση macro εντολών του στυλ .IF .ELSE .INVOKE κ.α. που προσφέρουν ορισμένοι assemblers (όπως π.χ. ο MASM) αλλά και η διάθεση χρήσιμων έτοιμων συναρτήσεων από τα ίδια τα Windows (π.χ. MessageBox ή wsprintf ή lstrlen, lstrcat κ.α.) καθιστά την σύνταξη του κώδικα «πιο ανθρώπινη» προσεγγίζοντας γλώσσες υψηλού επιπέδου.

 

Παρʼ όλα αυτά όμως η ανάπτυξη εφαρμογών σε assembly κρίνεται πολύ δυσκολότερη από οιανδήποτε άλλη γλώσσα.

 

Υ.Γ.

Το reverse engineering είναι μια άλλη υπόθεση για την οποία χρειάζεσαι γνώσεις assembly οπότε αν σε ενδιαφέρει δες το αργότερα.

Δημοσ.

Άντε να πω και εγώ τα δικά μου.

 

Λοιπών εγώ δεν έμαθα με κάποιο βιβλίο αλλά κοιτώντας τον κώδικα που παρήγαγε ένας C++ compiler. Μετά κατέβασα τα manual της intel για P4 και άρχισα να τα χρησιμοποιώ για να μαθαίνω της εντολές. Άμα έβλεπα καμία που δεν ήξερα τι έκανε τα κοίταζα.

 

Το πάν είναι τα σωστά εργαλεία. Για assembler κατέβασε από masm32.com και κατέβασε ακόμα τα manual της intel.

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

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

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