• Downloads
  • ! Read Me !
  • Μαθήματα
  • Φοιτητικά
  • Τεχνικά Θέματα
  • Συζητήσεις
  • Happy Hour!
  • About THMMY.gr
 V  < 
Search:  
Welcome, Guest. Please login or register.
June 17, 2025, 17:17:59 pm

Login with username, password and session length
Links
  Thmmy.gr portal
   Forum
   Downloads
   Ενεργ. Λογαριασμού
   Επικοινωνία
  
  Χρήσιμα links
   Σελίδα τμήματος
   Βιβλιοθήκη Τμήματος
   Elearning
   Φοιτητικά fora
   Πρόγραμμα Λέσχης
   Πρακτική Άσκηση
   Ηλεκτρονική Εξυπηρέτηση Φοιτητών
   Διανομή Συγγραμμάτων
   Ψηφιακό Καταθετήριο Διπλωματικών
   Πληροφορίες Καθηγητών
   Instagram @thmmy.gr
   mTHMMY
  
  Φοιτητικές Ομάδες
   ACM
   Aristurtle
   ART
   ASAT
   BEAM
   BEST Thessaloniki
   EESTEC LC Thessaloniki
   EΜΒ Auth
   IAESTE Thessaloniki
   IEEE φοιτητικό παράρτημα ΑΠΘ
   SpaceDot
   VROOM
   Panther
  
Πίνακας Ελέγχου
Welcome, Guest. Please login or register.
June 17, 2025, 17:17:59 pm

Login with username, password and session length

Αναζήτηση

Google

THMMY.gr Web
Πρόσφατα
Πρακτική Άσκηση ΤΗΜΜΥ 201...
by asemas
[Today at 16:20:27]

Τι ακούτε αυτήν τη στιγμή...
by Katarameno
[Today at 14:25:00]

Αντικατάστασης πυκνωτή σε...
by george14
[Today at 13:58:20]

Πότε θα βγει το μάθημα; -...
by tzortzis
[Today at 13:19:53]

Αποτελέσματα Εξεταστικής ...
by george14
[Today at 12:08:25]

[ΨEE] Γενικές απορίες και...
by Juror8
[Today at 12:06:57]

Ισραήλ - Ιράν: Πόλεμος στ...
by okan
[Today at 02:33:21]

[Οργάνωση Υπολογιστών] Γε...
by RAFI
[June 16, 2025, 22:46:54 pm]

[Σ.Π.Η.Ε.] Γενικές απορίε...
by Nikos_313
[June 16, 2025, 19:49:00 pm]

[ΘΤΠΑ] Γενικές απορίες κα...
by Nikos_313
[June 16, 2025, 16:56:56 pm]

[Εφ.Θερμοδυναμική] Γενικέ...
by Λαμπτήρας
[June 16, 2025, 15:55:08 pm]

[Αρχές Οικονομίας] Να επι...
by _Trob
[June 16, 2025, 13:28:21 pm]

[Σ.Α.Π.Γ.] Εργασία 2025
by Nikos_313
[June 16, 2025, 12:13:45 pm]

[Διανεμημένη Παραγωγή] Γε...
by Διάλεξις
[June 16, 2025, 01:56:37 am]

[Σ.Π.Η.Ε.] Παλιά θέματα -...
by nmpampal
[June 15, 2025, 06:43:15 am]

Το thmmy.gr στο instagram...
by Mr Watson
[June 15, 2025, 00:50:23 am]

[Λογισμός ΙΙ] Απορίες σε...
by el mariachi
[June 14, 2025, 20:47:07 pm]

ΠΡΟΣΟΧΗ στο ανέβασμα θεμά...
by tzortzis
[June 14, 2025, 16:54:08 pm]

Ρυθμίσεις Θεμάτων της Ανώ...
by el mariachi
[June 14, 2025, 11:56:45 am]

Αρχείο Ανακοινώσεων [Arch...
by Nikos_313
[June 14, 2025, 09:58:14 am]
Στατιστικά
Members
Total Members: 9961
Latest: Poli
Stats
Total Posts: 1426690
Total Topics: 31710
Online Today: 218
Online Ever: 2093
(April 17, 2025, 08:47:49 am)
Users Online
Users: 91
Guests: 116
Total: 207
karadimitras
Gianbou
lemonjuicy
Gray139
mgrivab
george14
iJasonOP
gp6
noimaginationforthis
mpournaz
rafa98p
jojos
jimalexoud
kostaspap
Yamal
Zoifouka
Thalasotsanta
Nekt
dimitrisadamou
anon
Vaantoniadis
Vangelan
apob
vasilis saitis
MomostheGreen
stnanou
aachmet
hacky
Saint_GR
Roidos
anastas1a
asemas
angelos
savvastzan
giorgosss03
Evripidis
evangeliaap
Η ΤΡΑΠΟΥΛΑ ΤΟΥ ΠΑΠΠΟΥ ΜΟΥ
tmpadasn
myrto
gsifnio
victoria
athenamits
Τρου Ντετεκτιβ
chaniotism
EvP
Konstantinoy
Toaoutplasedakitoubiseswa
gpapailio
Bill g
thathas12
Giannis Masterio
lefterish
kchatziae
ANDVRONTZOS
georkala
nikolith
kakousios
akyros51h
nataliakara
Belafonte
mailon
pkoko
Ntinomanolo123
AODON
soktas
evtrents
stefpapa21
kstavroulis
Joannapet
HlektrikhPatata
cealexop
marilita
ppss
k_tasio_
Louisa
apos34
tecnoteki
Lioud4
Chrisapostol
mavrhs
itsikou
Εμφάνιση

Νέα για πρωτοετείς
Είσαι πρωτοετής;... Καλώς ήρθες! Μπορείς να βρεις πληροφορίες εδώ. Βοήθεια για τους καινούργιους μέσω χάρτη.
Κατεβάστε εδώ το Android Application για εύκολη πρόσβαση στο forum.
Ανεβάζετε τα θέματα των εξετάσεων στον τομέα Downloads με προσοχή στα ονόματα των αρχείων!

Νέα!
Για ανανέωση (ή προσθήκη νέου) avatar, πρέπει η μεγαλύτερη διάσταση της εικόνας να είναι 110 pixels.
THMMY.gr > Forum > Μαθήματα Κύκλου Ηλεκτρονικής & Υπολογιστών  > 7ο Εξάμηνο > 7ο Εξάμηνο - ΠΠΣ > Υποχρεωτικά Μαθήματα > Συστήματα Μικροϋπολογιστών (Moderators: geo66, Elliot Alderson) > μ1 ... SOS?!
0 Members and 1 Guest are viewing this topic.
Pages: 1 [2] 3 4 5 Go Down Print
Author Topic: μ1 ... SOS?!  (Read 12774 times)
nad
Εθισμένος στο ΤΗΜΜΥ.gr
*****
Gender: Female
Posts: 764



View Profile
Re: μ1 ... SOS?!
« Reply #15 on: January 27, 2006, 03:16:41 am »

Quote from: Megawatt on January 26, 2006, 17:30:50 pm
[Κρίμα που δεν παρακολουθούσα κιεγώ! Κι εγώ τις ψάχνω..Και έχω μια πείνα... Sad
Χι χι χι!!!! Εγώ της βρήκα! Να'ναι καλά ο φίλος Fuzzee  Wink
Αν επιτρέπεται ο δανεισμός της πνευματικής του ιδιοκτησίας μπορώ να στις δώσω.
Μούφα ήταν η υπόχεση για φαγητό. Ίσα ίσα για να σας δελεάσω... Τώρα που πέτυχα το σκοπό μου έγινα καπνός!!!
Πάντως αν τα περάσω τα μίκρο υπόσχομαι πραγματικά να σας μαγειρέψω ό,τι θέλετε!!!!!!!!!!!
Logged

Γιατί να λέμε βίαια τα νερά ενός ποταμού και όχι τις όχθες που τα περιορίζουν;
Μπ. Μπρεχτ


Μπορεί και να 'χω τρελαθεί
ο ίσκιος σου μ' ακολουθεί
Κυλά στις στέγες το γέλιο σου
σαν πρωινή βροχή και λιώνει την ψυχή...

Τόσες χιλιάδες αστέρια εκεί πάνω
κι εγώ μοναχή μου στη γη
ούτε που ξέρω πού είμαι, τι κάνω
και τι με κρατάει στη ζωή.

Σ' έχασα και γύρω πια νυχτώνει
Σ' έχασα κι η πόλη είναι σκληρή
Αγάπη μου, χαρά μου μόνη κι αληθινή...
ioanna208
Ανερχόμενος/Ανερχόμενη
**
Gender: Female
Posts: 86



View Profile
Re: μ1 ... SOS?!
« Reply #16 on: January 27, 2006, 12:30:37 pm »

Quote from: JAs0n-X on January 27, 2006, 01:13:58 am
O φιλος Τασος αν καταλαβα καλα δεν καταλαβε ακριβως τι ρωτας.
Αν καταλαβα εγω...

Ο ποιντερ Ζ δειχνει στην ΡΜ !
Αυτη ειναι 16bit!
Για να δειχνει ο Ζ words και οχι bytes πρεπει μετα το φορτωμα του να τον πολλαπλασιασεις με το δυο! Ειναι ενα λεπτο σημειο που δεν πολυκαταλαβαινω αλλα σιγουρα ετσι γινεται.
Ε αυτον τον πολλαπλασιασμο τον κανει με τις lsl kai rol!

Όντως ο Τάσος δεν είχε καταλάβει σωστά την ερώτησή μου....η δική σου απάντηση με κάλυψε πάντως..Ευχαριστώ!!
Logged
nad
Εθισμένος στο ΤΗΜΜΥ.gr
*****
Gender: Female
Posts: 764



View Profile
Re: μ1 ... SOS?!
« Reply #17 on: January 29, 2006, 16:10:29 pm »

 Να ρωτήσω κάτι που μπορεί να σας φανεί λίγο κουλό; Στο σχήμα 4.4 στη σελίδα 99 του βιβλίου λέει ότι ο καταχωρητής εργασίας καταλαμβάνει τις θέσεις 16-19, δλδ συνολικά 4 θέσεις. Αυτές οι θέσεις φτάνουν; Μήπως δε δουλεύουν και οι 32 καταχωρητές αλλά μόνο οι 16 πρώτοι;
Logged

Γιατί να λέμε βίαια τα νερά ενός ποταμού και όχι τις όχθες που τα περιορίζουν;
Μπ. Μπρεχτ


Μπορεί και να 'χω τρελαθεί
ο ίσκιος σου μ' ακολουθεί
Κυλά στις στέγες το γέλιο σου
σαν πρωινή βροχή και λιώνει την ψυχή...

Τόσες χιλιάδες αστέρια εκεί πάνω
κι εγώ μοναχή μου στη γη
ούτε που ξέρω πού είμαι, τι κάνω
και τι με κρατάει στη ζωή.

Σ' έχασα και γύρω πια νυχτώνει
Σ' έχασα κι η πόλη είναι σκληρή
Αγάπη μου, χαρά μου μόνη κι αληθινή...
marauber
Μόνιμος κάτοικος ΤΗΜΜΥ.gr
******
Gender: Male
Posts: 2353


Ι will forgive but I won't forget...


View Profile
Απ: μ1 ... SOS?!
« Reply #18 on: January 29, 2006, 17:05:09 pm »

Quote from: nad on January 29, 2006, 16:10:29 pm
Να ρωτήσω κάτι που μπορεί να σας φανεί λίγο κουλό; Στο σχήμα 4.4 στη σελίδα 99 του βιβλίου λέει ότι ο καταχωρητής εργασίας καταλαμβάνει τις θέσεις 16-19, δλδ συνολικά 4 θέσεις. Αυτές οι θέσεις φτάνουν; Μήπως δε δουλεύουν και οι 32 καταχωρητές αλλά μόνο οι 16 πρώτοι;

Εύλογη η απορία σου. Θα έλεγα ότι πρόκειται μάλλον για τυπογραφικό λάθος Wink, αλλά κοίταξα και το avr instruction set από το site της atmel και έχει ακριβώς το ίδιο σχήμα  Shocked. Πάντως το σίγουρο είναι ότι δουλεύουν και οι 32 καταχωρητές με εντολές άμεσης διευθυνσιοδότησης. Θα επανέλθω για ότι νεότερο Smiley

edit:Στο instruction set που έχω γράφει κάπου ότι για λόγους απλότητας δε δείχνουν όλα τα σχήματα την ακριβή θέση των διευθυνσιοδοτούμενων bits. Οπότε this might just be the case  8)
« Last Edit: January 29, 2006, 17:21:44 pm by marauber » Logged

It never rains but it pours
-------------------------------------------------------
The Spartans do not ask how many but where they are
abc
Καταξιωμένος/Καταξιωμένη
***
Gender: Male
Posts: 209

Go get a life


View Profile
Re: μ1 ... SOS?!
« Reply #19 on: January 30, 2006, 18:32:15 pm »

Quote from: ioanna208 on January 27, 2006, 12:30:37 pm
Quote from: JAs0n-X on January 27, 2006, 01:13:58 am
O φιλος Τασος αν καταλαβα καλα δεν καταλαβε ακριβως τι ρωτας.
Αν καταλαβα εγω...

Ο ποιντερ Ζ δειχνει στην ΡΜ !
Αυτη ειναι 16bit!
Για να δειχνει ο Ζ words και οχι bytes πρεπει μετα το φορτωμα του να τον πολλαπλασιασεις με το δυο! Ειναι ενα λεπτο σημειο που δεν πολυκαταλαβαινω αλλα σιγουρα ετσι γινεται.
Ε αυτον τον πολλαπλασιασμο τον κανει με τις lsl kai rol!

Όντως ο Τάσος δεν είχε καταλάβει σωστά την ερώτησή μου....η δική σου απάντηση με κάλυψε πάντως..Ευχαριστώ!!

Πήγα να σας μπρεδέψω αλλά εσείς είστε σαΐνια!
Sorrry για το λάθος.
Logged

Στράααατόοοο...
TT_PTOLEMAIDA
Guest
Re: μ1 ... SOS?!
« Reply #20 on: January 31, 2006, 00:36:36 am »

Quote from: nad on January 29, 2006, 16:10:29 pm
Να ρωτήσω κάτι που μπορεί να σας φανεί λίγο κουλό; Στο σχήμα 4.4 στη σελίδα 99 του βιβλίου λέει ότι ο καταχωρητής εργασίας καταλαμβάνει τις θέσεις 16-19, δλδ συνολικά 4 θέσεις. Αυτές οι θέσεις φτάνουν; Μήπως δε δουλεύουν και οι 32 καταχωρητές αλλά μόνο οι 16 πρώτοι;
Καλή αυτή η απορία σου.
Προφανώς τα 4 αυτά bit δείχνουν τους 16 πρώτους καταχωρητές. Λογικά θα πρέπει μέσα στον κώδικα λειτουργίας της ίδιας εντολής, το bit 20 για παράδειγμα- να γίνεται 1 προκειμένου να δείχνονται και οι υπόλοιποι καταχωρητές.
Το EDIT του marauber λύνει κάπως το πρόβλημα...
Logged
BOBoMASTORAS
Veteran
Καταστραμμένος
******
Posts: 6082


It just doesn't get any easier! It gets worse...


View Profile
Απ: μ1 ... SOS?!
« Reply #21 on: January 31, 2006, 01:31:19 am »

συνήθως δείχνουν τους 16-31 επεδή υπάρχουν εντολές που συντάσσονται μονο με αυτούς. όπως είπε και ο mega αν είναι να επιλεγεί η άλλη 16δα υπάρχει ένα bit μέσα στο op της εντολής.
Αλλά αυτό δε συμβαίνει σε όλες τις εντολές.
Logged

Της γενιάς μου βασιλιά,
μην κατέβεις τα σκαλιά.
Πιες αθάνατο νερό
να νικήσεις τον καιρό.

http://tools.ietf.org/html/rfc1149
The only reason we invent robots
marauber
Μόνιμος κάτοικος ΤΗΜΜΥ.gr
******
Gender: Male
Posts: 2353


Ι will forgive but I won't forget...


View Profile
Απ: μ1 ... SOS?!
« Reply #22 on: January 31, 2006, 03:18:49 am »

Κάτι σχετικά με τον Stack pointer: Γιατί στην αρχικοποίηση του πρέπει ντε και καλά να τον βάλω να δείχνει την τελευταία θέση της SRAM (RAMEND); Δηλαδή άμα τον βάλω να δείχνει στη θέση π.χ. $0100 (με την προϋπόθεση να μην έχω αποθηκεύσει τίποτα εκεί) δε θα γίνει σωστά η κλήση της υπορουτίνας;

Επίσης επειδή ο BOB το ανέφερε κάπου (και τώρα που διάβασα το βιβλίο περισσότερο κατανόησα τι ήθελε να πει Smiley): Μπορούμε σίγουρα να αποκτήσουμε πρόσβαση (δηλαδή εγγραφή-ανάγνωση) στη μνήμη προγράμματος; Και αν ναι πως;

Τέλος κάτι σχετικά με τον τρόπο εξέτασης: Μετά το μισάωρο της θεωρίας που είναι όλα κλειστά, για να λύσω τις ασκήσεις θα έχω ανοικτό μόνο το βιβλίο ή και ότι άλλο θέλω;

Τυχόν άμεση απάντηση θα εκτιμηθεί δεόντως Smiley
(Τώρα θα μου πει κάποιος: Τέτοια ώρα που τα γράφεις θες και άμεση απάντηση; )
Logged

It never rains but it pours
-------------------------------------------------------
The Spartans do not ask how many but where they are
BOBoMASTORAS
Veteran
Καταστραμμένος
******
Posts: 6082


It just doesn't get any easier! It gets worse...


View Profile
Απ: μ1 ... SOS?!
« Reply #23 on: January 31, 2006, 03:32:17 am »

Quote from: marauber on January 31, 2006, 03:18:49 am
Κάτι σχετικά με τον Stack pointer: Γιατί στην αρχικοποίηση του πρέπει ντε και καλά να τον βάλω να δείχνει την τελευταία θέση της SRAM (RAMEND); Δηλαδή άμα τον βάλω να δείχνει στη θέση π.χ. $0100 (με την προϋπόθεση να μην έχω αποθηκεύσει τίποτα εκεί) δε θα γίνει σωστά η κλήση της υπορουτίνας;

Θα γίνει σωστά, κατά πάσα περίπτωση. Απλά ο stack pointer κάθε φορά που προσθέτεις κάποιο δεδομένο μειώνεται. Οπότε αν κάνεις πολλές τιμές pop πάρχει περίπτωση να "μπει" στο κομμάτι που έχεις αποθηκεύσει δεδομένα, οπότε και θα τα χάσεις. Δηλαδή έστω ότι στην $099 έχεις αποθηκεύσει κάτι, με το που θα κάνεις pop το χάνεις( αυτό ονομάζεται stack overflow και εμφανίζεται ακόμα και στα pc)


Quote from: marauber on January 31, 2006, 03:18:49 am
Επίσης επειδή ο BOB το ανέφερε κάπου (και τώρα που διάβασα το βιβλίο περισσότερο κατανόησα τι ήθελε να πει Smiley): Μπορούμε σίγουρα να αποκτήσουμε πρόσβαση (δηλαδή εγγραφή-ανάγνωση) στη μνήμη προγράμματος; Και αν ναι πως;

επειδή τώρα είναι λιγο αργά και δε μπορώ να το ψάχνω, νομίζω γίνεται μόνο με τον z pointer
οι εντολές είναι LPM και SPM αν και δεν φαίνεται να έχουν και πολύ χρησιμότητα.
Logged

Της γενιάς μου βασιλιά,
μην κατέβεις τα σκαλιά.
Πιες αθάνατο νερό
να νικήσεις τον καιρό.

http://tools.ietf.org/html/rfc1149
The only reason we invent robots
marauber
Μόνιμος κάτοικος ΤΗΜΜΥ.gr
******
Gender: Male
Posts: 2353


Ι will forgive but I won't forget...


View Profile
Απ: μ1 ... SOS?!
« Reply #24 on: January 31, 2006, 03:56:00 am »

Well done Bob!! Ξεπέρασες τις προσδοκίες μου σχετικά με την αμεσότητα της απάντησης!

 Off-topic Aυτό το stack overflow που λες σχετίζεται με το buffer overflow και αυτό που γίνεται για να αποκτήσεις πρόσβαση σε "προστατευμένα" δεδομένα μέσω "τρυπών" που έχουν τα διάφορα προγράμματα και πολύ συχνά τα Windows;

Επίσης όποιος ξέρει...
Quote from: marauber on January 31, 2006, 03:18:49 am
Τέλος κάτι σχετικά με τον τρόπο εξέτασης: Μετά το μισάωρο της θεωρίας που είναι όλα κλειστά, για να λύσω τις ασκήσεις θα έχω ανοικτό μόνο το βιβλίο ή και ότι άλλο θέλω;
Logged

It never rains but it pours
-------------------------------------------------------
The Spartans do not ask how many but where they are
TT_PTOLEMAIDA
Guest
Re: μ1 ... SOS?!
« Reply #25 on: January 31, 2006, 10:18:32 am »

Quote from: marauber on January 31, 2006, 03:18:49 am
Κάτι σχετικά με τον Stack pointer: Γιατί στην αρχικοποίηση του πρέπει ντε και καλά να τον βάλω να δείχνει την τελευταία θέση της SRAM (RAMEND); Δηλαδή άμα τον βάλω να δείχνει στη θέση π.χ. $0100 (με την προϋπόθεση να μην έχω αποθηκεύσει τίποτα εκεί) δε θα γίνει σωστά η κλήση της υπορουτίνας;

Quote
Θα γίνει σωστά, κατά πάσα περίπτωση. Απλά ο stack pointer κάθε φορά που προσθέτεις κάποιο δεδομένο μειώνεται. Οπότε αν κάνεις πολλές τιμές pop πάρχει περίπτωση να "μπει" στο κομμάτι που έχεις αποθηκεύσει δεδομένα, οπότε και θα τα χάσεις. Δηλαδή έστω ότι στην $099 έχεις αποθηκεύσει κάτι, με το που θα κάνεις pop το χάνεις( αυτό ονομάζεται stack overflow και εμφανίζεται ακόμα και στα pc)
Ακριβώς. Και επειδή θες να εκμεταλλευτείς ολόκληρη την SRAM ξεκινάς από το τέλος της(το κελί της μεγαλύτερης διεύθυνσης). Δεν θα κάτσεις να υπολογίσεις (ή δεν χρειάζεται να ξέρεις απέξω) ποια είναι αυτή η μεγαλύτερη διεύθυνση, γιαυτό βάζεις την "μακροεντολή" RAMEND η οποία πληροφορεί τον stack pointer ότι πρόκειται για αυτήν.
Quote from: BOBoMASTORAS on January 31, 2006, 03:32:17 am
Quote from: marauber on January 31, 2006, 03:18:49 am
Επίσης επειδή ο BOB το ανέφερε κάπου (και τώρα που διάβασα το βιβλίο περισσότερο κατανόησα τι ήθελε να πει Smiley): Μπορούμε σίγουρα να αποκτήσουμε πρόσβαση (δηλαδή εγγραφή-ανάγνωση) στη μνήμη προγράμματος; Και αν ναι πως;

επειδή τώρα είναι λιγο αργά και δε μπορώ να το ψάχνω, νομίζω γίνεται μόνο με τον z pointer
οι εντολές είναι LPM και SPM αν και δεν φαίνεται να έχουν και πολύ χρησιμότητα.
Αυτό ακριβώς ήταν το θέμα της εξέτασης του εργαστηρίου! 8)
« Last Edit: January 31, 2006, 10:30:42 am by Megawatt » Logged
BOBoMASTORAS
Veteran
Καταστραμμένος
******
Posts: 6082


It just doesn't get any easier! It gets worse...


View Profile
Απ: μ1 ... SOS?!
« Reply #26 on: January 31, 2006, 14:20:49 pm »

[off topic]


Quote from: marauber on January 31, 2006, 03:56:00 am
Off-topic Aυτό το stack overflow που λες σχετίζεται με το buffer overflow και αυτό που γίνεται για να αποκτήσεις πρόσβαση σε "προστατευμένα" δεδομένα μέσω "τρυπών" που έχουν τα διάφορα προγράμματα και πολύ συχνά τα Windows;

Δε ξέρω αν είναι το ίδιο αλλά αυτό που χρησιμοποιούν "ψαγμένοι" είναι το εξής:

(Μιλάμε για PC πάντα!!!!!!!!!!!!!!!!)
Στα PC δεν έχεις αρχιτεκτονική harvard οπότε η μνήμη δεδομένων και εντολών είναι κοινή. Απλά συνήθως χρησιμοποιείς τις πρώτεσ διευθύνσεις για τα δεδομένα σου και τις υπόλοιπες για κώδικα. Η στοίβα ξεκινά από την τελευταία διεύθυνση πάλι. Εδώ όμως αν έχεις stack overflow πλέον οι τιμές που κάνεις pop θα πάνε αργότερα στην cu και θα αναλυθούν σαν κανονικές εντολές. Οπότε πολλά κακόβουλα προγράμματα κάνουν το εξής: έχουν ένα απλό loop το οποίο γεμίζει την στοίβα σε σχεδόν πλήρως και στη συνέχεια κάνουν pop κανονικές εντολές. Οι εντολές αυτές αποτελούν και τον κώδικα του ιού. Έτσι οι κανονικές εντολές του προγράμματος επικαλύπτονται από τις δικές σου πλέον, και κάνεις ότι θέλεις. Μάλιστα στους επεξεργαστές δεν υπάρχει έλεγχος για stack overflow μέσω hardware και έτσι είναι πολύ δύσκολο να ανιχνεύσεις αυτή την κατάσταση.Τώρα αφού έχεις της εντολές γιατί δεν τις τρέχεις κατευθείαν? Δε το ξέρω ακριβώς αλλά μάλλον το θέμα δεν είναι να τις τρέξεις από ένα δικό σου πρόγραμμα αλλά από ένα άλλο ώστε να αλλοιώσεις το κώδικα και να παρακάμψεις κάποια διαδικασία. Γι αυτό η χρήση στοίβας σε επίπεδο εμπορικού προγραμματισμού γίνεται πολύ φειδωλά και δεν θεωρείται "καλή" προγραμματιστική τεχνική να αποθηκεύεις πολλές τιμές εκεί.

[/off topic]
Logged

Της γενιάς μου βασιλιά,
μην κατέβεις τα σκαλιά.
Πιες αθάνατο νερό
να νικήσεις τον καιρό.

http://tools.ietf.org/html/rfc1149
The only reason we invent robots
marauber
Μόνιμος κάτοικος ΤΗΜΜΥ.gr
******
Gender: Male
Posts: 2353


Ι will forgive but I won't forget...


View Profile
Απ: μ1 ... SOS?!
« Reply #27 on: February 01, 2006, 21:16:41 pm »

Θα κάνω μια προσπάθεια να διαφωτίσω ορισμένα σκοτεινά σημεία του μαθήματος που τα κατάλαβα την τελευταία στιγμή,  έχοντας κυρίως ως στόχο να διευκολύνω αυτούς που θα δώσουν το μάθημα από δω και πέρα. Και εννοείται ότι τα γράφω τώρα γιατί τα έχω φρέσκα Wink. Μέχρι το Σεπτέμβρη...

Καταρχάς όταν θέλουμε να αναγνώσουμε δεδομένα από τη μνήμη προγράμματος(16-bit), μπορούμε να χρησιμοποιήσουμε μόνο την εντολή LPM μέσω του pointer Ζ. Αφού φορτώσουμε στο Z τη διεύθυνση της μνήμης προγράμματος που ξεκινούν τα δεδομένα που μας ενδιαφέρουν, στη συνέχεια τον πολλαπλασιάζουμε επί 2. Γιατί;;; Θα ρωτήσετε όλοι εύλογα. Η εξήγηση βρίσκεται στην εντολή LPM, η οποία θεωρεί ως διεύθυνση της μνήμης προγράμματος τα 15 πλέον σημαντικά bit του pointer Z (τα bit 1-15 δηλαδή) (Τα οποία πριν τον πολλαπλασιασμό-ολίσθηση προς τα αριστερά του Ζ βρίσκονταν στα bit 0-14). Αυτά τα 15 bit επαρκούν για τον προσδιορισμό της θέσης μνήμης. Όσον αφορά το bit 0 του Ζ, αν αυτό είναι 0 τότε η LPM φορτώνει στον καταχωρητή που έχουμε προσδιορίσει το low byte αυτής της διεύθυνσης (bits 0-7) ενώ αν είναι 1 τότε φορτώνει το high byte (bits 8-15). Δηλαδή πρακτικά, από τη στιγμή που διπλασιάσουμε τον Ζ, μπορούμε να αναφερόμαστε σε διαδοχικά bytes αυξάνοντας τον Ζ κατά ένα κάθε φορά.

Επίσης δεν υπάρχει η εντολή SPM σε όλα τα μοντέλα AVR παρά μόνο στα μεγαλύτερα. Στους AVR με την έλλειψη, ο μόνος τρόπος για να αποθηκεύσουμε δεδομένα στη μνήμη προγράμματος είναι με χρήση των ψευδοεντολών .DB και .DW κατά τη συγγραφή του προγράμματος.

Τέλος ένα σχόλιο για το βιβλίο. Γνώμη μου είναι ότι αν θέλετε να κατανοήσετε τον AVR να αφήσετε το βιβλίο και να πιάσετε τα datasheets από την ίδια την Atmel που βρίσκονται στο συνοδευτικό cd του βιβλίου. Το βιβλίο είναι στις περισσότερες περιπτώσεις ένα πολύ καλό παράδειγμα για το πως μπορείς να γράφεις πολλά χωρίς να λες τίποτα! Παραλείπει πολύ σημαντικά πράγματα (όπως τον τρόπο αρχικοποίησης του stack pointer και τη διευκρίνηση για την εντολή LPM) ενώ πολλά από τα προγράμματα-παραδείγματα που έχει έχουν περιττές εντολές και ενέργειες. Διαβάστε το -θα χρειαστεί για τη θεωρία άλλωστε- αλλά για εμβάθυνση ανατρέξτε αλλού.

Ελπίζω τα προαναφερθέντα να βοηθήσουν στη μελέτη σας Smiley

edited:Διορθώθηκε η ύπαρξη της SPM μετά από παρατήρηση των BoB και MW
« Last Edit: February 01, 2006, 23:11:04 pm by marauber » Logged

It never rains but it pours
-------------------------------------------------------
The Spartans do not ask how many but where they are
BOBoMASTORAS
Veteran
Καταστραμμένος
******
Posts: 6082


It just doesn't get any easier! It gets worse...


View Profile
Απ: μ1 ... SOS?!
« Reply #28 on: February 01, 2006, 22:29:32 pm »

Quote from: marauber on February 01, 2006, 21:16:41 pm
Επίσης δεν υπάρχει εντολή SPM αντίθετα με ότι αναφέρθηκε πριν (Άσε BOB με έβαλες να ψάχνω νυχτιάτικα  Grin). Ο μόνος τρόπος για να αποθηκεύσουμε δεδομένα στη μνήμη προγράμματος είναι με χρήση των ψευδοεντολών .DB και .DW κατά τη συγγραφή του προγράμματος.

αχ marauber μου φαίνεται δεν έψαξες καλά. Εντολή SPM υπάρχει. Απλά το θέμα είναι ότι σε κάποια φάση που την έψαχνα και γω δεν την είχα βρει. Αυτή τη στιγμή δε προκειται να κάτσω να το ψάξω το γιατί (μπορεί να μην υπάρχει σε όλους τους AVR) αλλά έχω μπροστά μου το datasheet του mega128 και την έχει............ Tongue Tongue Tongue
Logged

Της γενιάς μου βασιλιά,
μην κατέβεις τα σκαλιά.
Πιες αθάνατο νερό
να νικήσεις τον καιρό.

http://tools.ietf.org/html/rfc1149
The only reason we invent robots
TT_PTOLEMAIDA
Guest
Re: μ1 ... SOS?!
« Reply #29 on: February 01, 2006, 22:45:09 pm »

Quote from: BOBoMASTORAS on February 01, 2006, 22:29:32 pm
Quote from: marauber on February 01, 2006, 21:16:41 pm
Επίσης δεν υπάρχει εντολή SPM αντίθετα με ότι αναφέρθηκε πριν (Άσε BOB με έβαλες να ψάχνω νυχτιάτικα  Grin). Ο μόνος τρόπος για να αποθηκεύσουμε δεδομένα στη μνήμη προγράμματος είναι με χρήση των ψευδοεντολών .DB και .DW κατά τη συγγραφή του προγράμματος.

αχ marauber μου φαίνεται δεν έψαξες καλά. Εντολή SPM υπάρχει. Απλά το θέμα είναι ότι σε κάποια φάση που την έψαχνα και γω δεν την είχα βρει. Αυτή τη στιγμή δε προκειται να κάτσω να το ψάξω το γιατί (μπορεί να μην υπάρχει σε όλους τους AVR) αλλά έχω μπροστά μου το datasheet του mega128 και την έχει............ Tongue Tongue Tongue
Όχι μόνο υπάρχει, αλλά κάνει μια από τις πολύ σημαντικές ενέργειες όπως να γράφει και να σβ'ηνει ολόκληρες σελίδες στην Programm memory... Η εντολή αυτή βρίσκεται μάλιστα στην σελίδα 134 του AVR instruction Set και καταναλώνει για την ανάλυση της 2 ολόκληρες σελίδες καθώς έχει και το μεγαλύτερο παράδειγμα από κάθε άλλη εντολή.
Όμως δεν θυμάμαι να δηδάχθηκε στο παρών εξάμηνο, άρα είναι εκτός και για τον Σεπτέμβρη.
Επιπρόσθετα με αυτά που λες marauber θα έλεγα ότι το παρών instruction set είναι πολύ χρήσιμο, καθώς εξηγεί αναλυτικά για κάθε εντολή ποιες σημαίες επηρεάζει, ποιους καταχωρητές χρησιμοποιεί, τι τελεστέους έχει κ.α. και το σημαντικότερο είναι ότι έχει λυμμένο παράδειγμα για την κάθε εντολή. Όσοι δεν το έχετε κατεβάσει από το site της Atmel ναα το κάνετε. Ά΄λλωστε πολλά από τα παραδείγματα που έκανε ο Πέτρου στο μάθημα είναι copy-paste από εκεί.
Σελίδες στο διαδύκτιο για περισσότερες πληροφορίες:

-Για Μικροελεγτές AVR της Atmel
www.atmel.com/atmel/products/prod23.htm
-Για φυλλάδια τεχνικών προδιαγραφών:
www.atmel.com/atmel/products/prod200.htm
-Για προγράμματα των μικροελεγκτών AVR της Atmel:
www.atmel.com/atmel/products/prod203.htm
-Για βιβλιοθήκες αναφοράς των μικροελεγκτών AVR της Atmel:
www.atmel.com/atmel/products/prod204.htm
-Για εργαλεία υποστήριξης των μικροελεγκτών AVR της Atmel:
www.atmel.com/atmel/products/prod202.htm
-Για εφαρμογές των μικροελεγκτών AVR της Atmel:
www.atmel.com/atmel/products/prod201.htm
-Κέντρο αναφοράς και πληροφοριών σχετικά με τους μικροελεγκτές AVR της Atmel:
www.avr-forum.com/

Logged
Pages: 1 [2] 3 4 5 Go Up Print
Jump to:  

Powered by SMF | SMF © 2006-2009, Simple Machines LLC
Scribbles2 | TinyPortal © Bloc | XHTML | CSS
Loading...