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

Assembly


cfgreece

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

Δημοσ.

geia

 

pos mporo na arxiso na matho assembly kai poy

rotisa kapoia kentra kai den didaskoun assemply kserei kaneis edo athina peiraia kapoio kentro

aki ean yparxei kai kapoio biblio gia arxarious.

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

Kalimera

 

gia na matheis assembly kalo einai na exeis kanei idi mia prwti gnwrimia me ton programmatismo mesw kapoias high level programming language prwta, opws px C/C++ (h idanikoteri kata ti gnwmi mou) wste na exeis kapoies empeiries kai wres programmatismou. Episis tha voithouse perissotero an gnwrizeis kapoia vasika stoixeia apo arxitektoniki H/Y (registers, mnimi, CPU, instructions ktl).

 

Me ena grigoro psaksimo sto google mporeis na vreis plithwra tutorias kai e-books gia assembly, wstoso egw sou proteinw na ksekiniseis apo edw http://webster.cs.ucr.edu/ , rikse kai mia matia edw http://www.drpaulcarter.com/pcasm/index.php. Sou synistw to prwto link eidika an den exeis kalo ypovathro gnwsewn se arxitektoniki ypologistwn kai programmatismo genikws. An exeis gnwseis programmatismou tote kalutera koitakse auto http://www.amazon.com/gp/product/0764579010/103-5821976-0358212?v=glance&n=283155 Einai polu kalo vivlio kai apeuthinetai opws leei kai o titlos tou, apo programmatisti se programmatisti. Kata ti gnwmi mou an to petyxeis pouthena san e-book katevase to kai rikstou mia matia, an sou kanei tote agorase to.

 

Den yparxoun tetoia kentra pou psaxneis, kalytera na ta matheis monos sou kai me tin eksaskisi na veltiwnesai, para na skaseis ena swro lefta se kapoio frontistirio... Allwste sto internet tha vreis mpolika tutorials kai odigies gia to kathe ti pou tha se voithisoun ;)

Δημοσ.

den exo asxolithei ksana me alli glossa.

exo arketa tutorials aseembly alla einai dyskolo na ta katalabo

vasika stoixeia den gnorizo exo arxisei kai diavazo gia registers,bit,bytes,cpu kai tetoia bebbaia moy einai dyskola alla prospatho

den thelo na gino programer alla me enoxlei otan kano disassembling ena program kai den katalabiano tipota

pisteyo loipon oti isos na einai ligaki poio eykolo ayto poy thelo diladi na katalabo kapoies entoles p.x ti kanei to jump ,call,move apo to na programatiso

pes mou ti gnomi sou

Δημοσ.

erotisis....h assembly den einai gia na programmatizeis eeproms klp klp?

otan kaneis dissassembly ena programma, se assembly einai h se c k ta sxetika?

egw ekana assembly paliotera stin sxoli, alla panw se ena 8051 (nomizw), dld se cpu, oxi na ftiaksw efarmogh...

Δημοσ.

Οι εντολές για την assembly εξαρτώνται από τον επεξεργαστή για τον οποίο δουλεύεις. Οι εντολές αποτελούν οδηγίες προς τον επεξεργαστή για το τι θα εκτελέσει. Άρα δίνοντας του εντολές φτιάχνεις ένα πρόγραμμα. Όταν κάνεις dissassembly βλέπεις εντολές της assembly. Για προγραμματισμό σε assembly χρησιμοποιούνται κυρίως ο masm (της μαμας microsoft) και ο tasm (της μαμάς borland) (για x86 επεξεργαστές). Περιέχουν αρκετές macro που μπορούν να σου κάνουν τη ζωή πιο άνετη. Αλλά cfgreece, όπως είπαν και τα παιδιά καλύτερα καλύτερα να αρχίσεις με μια άλλη γλώσσα όπως c++, αλλά επειδή σε κόβω να σου αρέσει περισσότερο το GUI, καλύτερα ξεκίνησε με μία γλώσσα όπως visual basic (μαμά microsoft πάλι) ή delphi (μαμά borland).

Δημοσ.

taki moy

epeidi eimai poly newbie aplos diavazo GUI ti enoeis?

sorry alla eipa paidia den yparxei voithia apo sxoleio oti matheno monos moy.

kai kati allo

gnorizei kaneis pos mporo na aniokso to debug toy dos?

ean kserei kapoios as moy pei step by step...............

diavazo omos re taki oti oi epexergastes 80286,80386,80486klp mporoun na ektelesoyn oti programata exoun graftei gia ton 8088 ara oi entoles den einai oi idies?oi enoeis p.x ax me eax kati tetoio?

thanks

Δημοσ.

Οι επεξεργαστές x86 είναι όλοι συμβατοί προς τα πίσω. Δηλαδή και ο pentium 4 μπορεί να τρέξει πρόγραμμα για 8088. Όμως αυτό γίνεται γιατί έχουν συμβατή αρχιτεκτονική. Άλλες αρχιτεκτονικές (πχ PowerPC, SPARC, IA-64, etc) δεν είναι συμβατές και έχουν τελείως δικιά τους assembly. Φυσικά να αποκτήσεις εμπειρία στο θέμα και καταλαβαίνεις και την αρχιτεκτονική του κάθε CPU τότε δεν θα σου φαίνονται και τόσο διαφορετικές.

Όπως και να έχει γνώμη μου είναι ότι αν θες να μάθεις assembly για να καταλαβαίνεις dissasembled x86 κώδικα, παράτα το εκτός αν:

 

- σου χρειάζεται για δουλεία

- είσαι πολύ μα πολύ αποφασισμένος

 

Όπως είπε κάποιος παραπάνω σήμερα ακόμα και σε assembly x86 να γράψεις ένα πρόγραμμα χρησιμοποιείς αρκετές μακροεντολές με αποτέλεσμα αυτό που γράφεις να μην μοιάζει και τρομερά με αυτό που τελικά εκτελείτε. Αν λάβεις υπόψη σου ότι σχεδόν κανένα πρόγραμμα (ούτε το 0.001%) δεν γράφετε σε assembly σήμερα τότε πρέπει να εντρυφύσεις και στις παραξενιές του κάθε compiler και διάφορα άλλα. Τρέχα γύρευε δηλαδή. Καλό κουράγιο πάντως!

Δημοσ.
erotisis....h assembly den einai gia na programmatizeis eeproms klp klp?

otan kaneis dissassembly ena programma' date=' se assembly einai h se c k ta sxetika?

egw ekana assembly paliotera stin sxoli, alla panw se ena 8051 (nomizw), dld se cpu, oxi na ftiaksw efarmogh...[/quote']

 

Όχι δεν είναι για να προγραμματίζεις EEPROMS. Το ότι ένα πρόγραμμα για μικροελενκτη μπορείς να το γράψεις σε assembly και να το αποθηκεύσεις σε EEPROM είναι άλλο θέμα.

Όταν κάνεις dissasemble ένα prog είναι σε assembly, ουσιαστικά απλώς αναγνωρίζει τον object code από ένα look up table και στον δείχνει.

Δημοσ.

taki epeidi se blepo poli enimeromeno thelo na asxolitho me reverse engeen.. kai opos exo diavasei den einai anagei na kserei kapoios tromera thn assembly

kirios prepei na gnorizei tis basikes entoles gia ayto thelo toylaxiston na matho ligo thn assembly

ti gnomi exeis?

Δημοσ.
thelo na asxolitho me reverse engeen.. kai opos exo diavasei den einai anagei na kserei kapoios tromera thn assembly

kirios prepei na gnorizei tis basikes entoles

Δεν ξέρω που το διάβασες' date=' αλλά σίγουρα δεν είναι αξιόπιστη πηγή.

Για να κάνεις reverse engineering χρειάζεται και γλώσσες προγραμματισμού να ξέρεις και assembly και διάφορα άλλα.

 

Φαντάσου ότι ένα πρόγραμμα αποτελείται από εκατομμύρια εντολές κι εσύ πρέπει να εντοπίσεις ΜΙΑ (ή σε κάποιες περιπτώσεις και παραπάνω) που θα πρέπει να την αλλάξεις ώστε να κάνεις αυτό που θες... Θα πρέπει να έχεις φάει κάτι χρόνια πάνω στον προγραμματισμό ΚΑΙ υψηλού επιπέδου ΚΑΙ σε assembly ΚΑΙ στη μελέτη του κώδικα που παράγουν οι compilers, ώστε να ξέρεις που να βάλεις breakpoints (π.χ. όταν επιστρέφει ένας διάλογος ή όταν το πρόγραμμα προσπαθεί να διαβάσει το σειριακό που έγραψε ο χρήστης), και στη συνέχεια μέσα από ένα συφερτό εντολών assembly να φαντάζεσαι που περίπου είσαι στη λογική του αρχικού προγράμματος κτλ...

 

Το reverse engineering ακολουθεί αυτήν την πορεία:

μαθαίνω προγραμματισμό => μαθαίνω assembly => μελετώ τον κώδικα assembly που παράγουν οι compilers => μαθαίνω τα βασικά του Windows API => μαθαίνω έναν debugger όπως softice => μαθαίνω πως να βάζω breakpoints σε event driven προγραμματισμό, όπως αυτός στο GUI των Windows => [b']ξεκινάω[/b] να μαθαίνω reverse engineering.

 

...και το κάθε βήμα από τα παραπάνω απαιτεί αρκετούς μήνες.

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

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

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