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

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, 01:02:24 am

Login with username, password and session length

Αναζήτηση

Google

THMMY.gr Web
Πρόσφατα
Ισραήλ - Ιράν: Πόλεμος στ...
by Yamal
[June 16, 2025, 23:46:31 pm]

[Οργάνωση Υπολογιστών] Γε...
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 Nikos_313
[June 16, 2025, 12:01:53 pm]

Πρακτική Άσκηση ΤΗΜΜΥ 201...
by George_RT
[June 16, 2025, 10:22:18 am]

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

Αντικατάστασης πυκνωτή σε...
by nmpampal
[June 15, 2025, 16:25:56 pm]

[Σ.Π.Η.Ε.] Παλιά θέματα -...
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]

Πότε θα βγει το μάθημα; -...
by Nikos_313
[June 14, 2025, 10:00:55 am]

Αρχείο Ανακοινώσεων [Arch...
by Nikos_313
[June 14, 2025, 09:58:14 am]

Αλέξης Τσίπρας, η επιστρο...
by Yamal
[June 14, 2025, 04:42:23 am]

Έναρξη Δηλώσεων Συμμετοχή...
by IEEE SB
[June 14, 2025, 00:10:19 am]
Στατιστικά
Members
Total Members: 9960
Latest: valco08
Stats
Total Posts: 1426678
Total Topics: 31710
Online Today: 164
Online Ever: 2093
(April 17, 2025, 08:47:49 am)
Users Online
Users: 36
Guests: 116
Total: 152
maestros
astepoul
jim_sklab
Το παγώνι
victoria
Katarameno
mavropan
dr.giorgos
Anatolim
0restis
zgeorgitz
Yamal
Nekt
Zaxarenia
mayia psarikoglou
dimitris585
ThanosV
HlektrikhPatata
fpapat
sofoklhs_pizza
Born_Confused
jm555
al3xts
fkagk
ඞ
Nikos_313
acolak
Saint_GR
panos98
Athinaaz
noys
Deviate
Εμφάνιση

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

Νέα!
  Όταν ανεβάζουμε φωτογραφίες στις Ανακοινώσεις και Έκτακτα νέα, βάζουμε τη μεγαλύτερη πλευρά 400 (width=400 ή height=400 ). π.χ. [img height=400 (κλείνει η αγκύλη) 
THMMY.gr > Forum > Μαθήματα Κύκλου Ηλεκτρονικής & Υπολογιστών  > 7ο Εξάμηνο > 7ο Εξάμηνο - ΠΠΣ > Υποχρεωτικά Μαθήματα > Συστήματα Μικροϋπολογιστών (Moderators: geo66, Elliot Alderson) > [Συστ. Μικροϋπολογιστών] Λυμένα Θέματα
0 Members and 1 Guest are viewing this topic.
Pages: 1 2 3 [4] 5 6 ... 11 Go Down Print
Author Topic: [Συστ. Μικροϋπολογιστών] Λυμένα Θέματα  (Read 25753 times)
Andromedas
Εθισμένος στο ΤΗΜΜΥ.gr
*****
Posts: 504



View Profile
Re: [Συστ. Μικροϋπολογιστών] Λυμένα Θέματα
« Reply #45 on: February 04, 2016, 14:32:34 pm »

μετά από ενδελεχείς έλεγχους στον assembler επιβεβαιώνω ότι  για την αλλαγή πρόσημου υπάρχει πρόβλημα στην αρνητική οριακή τιμή πχ 8bit = -128 δεν υπάρχει αντιστοιχία σε θετικό προσημασμένο, άρα για αλλαγή πρόσημου πρέπει να γίνεται έλεγχος.
 
Αλλά το 0 γίνεται κομπλέ με neg ή com() +1.
Όποτε δεν χρειαζεται ελεγχος για το αν πας να αλλάξεις πρόσημο και η τιμη είναι μηδεν
Logged
Andromedas
Εθισμένος στο ΤΗΜΜΥ.gr
*****
Posts: 504



View Profile
Re: [Συστ. Μικροϋπολογιστών] Λυμένα Θέματα
« Reply #46 on: February 04, 2016, 16:19:25 pm »

Quote from: Indy on February 04, 2016, 07:30:40 am
Στο 3ο θέμα Φεβρουάριος 14 είχα προβλήματα για το πως να ευθυγραμμίσω τα bytes ώστε να κάνω τις πράξεις. Θεώρησα ότι το Y δίνεται σαν δύο bytes, το msb γεμάτο και το lsb με αδιάφορα τα τελευταία δύο ψηφία. Προσπαθώ να βάλω το αποτέλεσμα σε μορφή low: μόνο δεκαδικά, mid: 5 ακέραια και 3 δεκαδικά και high: μόνο ακέραια. Το θεώρησα πιο εύκολο να προσαρμόσω τα άλλα στη μορφή του Y δηλαδή, για να μη χαλάσω το συμπλήρωμα του 2 (το χ τετράγωνο είναι πάντα θετικός), παρά το αντίθετο. Υπάρχει καλύτερος τρόπος; Είναι καν σωστή η προσπάθεια μου; Μου καψε αρκετά το κεφάλι, οπότε αν το χει κανείς...

.include "m16def.inc"
.def xi=r16
.def yil=r17
.def yih=r18
.def resl=r19
.def resm=r20
.def resh=r21
.def temp=r22
.cseg
.org 0

rjmp reset
reset:

; X^2
muls xi, xi

; Y/4
asr yih
ror yil
asr yih
ror yil

; 5 teleutaia bits tou r0 + 3 mhdenika
mov resl, r0
lsl resl
lsl resl
lsl resl
add resl, yil

; 5 mhdenika + 3 prwta bits tou r0
lsr r0
lsr r0
lsr r0
lsr r0
lsr r0
adc yih, r0

; 5 teleutaia bits tou r1 + 3 mhdenika
mov temp, r1
lsl temp
lsl temp
lsl temp
adc yih, temp

; 5 mhdenika + 3 prwta bits tou r1
lsr r1
lsr r1
lsr r1
lsr r1
lsr r1
adc yih, r1

clr temp
adc resh, temp

mov resm, yih

δεν κατάλαβα τι κάνεις ακριβώς άλλα μου φαίνεται πολύ κάψιμο τζάμπα.
Από την στιγμή που παρατήρησες ότι το Υ έχει 2 lsb ασήμαντα τον φέρνεις σε μορφή
8low 8 fract όπως το έκανες
λέει πλήρη ακρίβεια άρα δεν υπάρχουν ασήμαντα lsb οπότε θέλει και άλλο ένα fract ...
 ο Χ είναι 4.4 x 4.4 = 8.8 άρα το άθροισμα τους ειναι balanced εδώ θέλει περισσότερο έλεγχο για overflow ή η εύκολη λύση επέκταση πρόσημου και έλεγχο μόνο για αρνητικούς με V post εάν χρειάζεται να γράψω κωδικα
« Last Edit: February 04, 2016, 16:44:32 pm by Andromedas » Logged
Indy
Θαμώνας
****
Gender: Male
Posts: 367


View Profile WWW
Re: [Συστ. Μικροϋπολογιστών] Λυμένα Θέματα
« Reply #47 on: February 04, 2016, 19:26:04 pm »

Quote from: Andromedas on February 04, 2016, 16:19:25 pm
Quote from: Indy on February 04, 2016, 07:30:40 am
Στο 3ο θέμα Φεβρουάριος 14 είχα προβλήματα για το πως να ευθυγραμμίσω τα bytes ώστε να κάνω τις πράξεις. Θεώρησα ότι το Y δίνεται σαν δύο bytes, το msb γεμάτο και το lsb με αδιάφορα τα τελευταία δύο ψηφία. Προσπαθώ να βάλω το αποτέλεσμα σε μορφή low: μόνο δεκαδικά, mid: 5 ακέραια και 3 δεκαδικά και high: μόνο ακέραια. Το θεώρησα πιο εύκολο να προσαρμόσω τα άλλα στη μορφή του Y δηλαδή, για να μη χαλάσω το συμπλήρωμα του 2 (το χ τετράγωνο είναι πάντα θετικός), παρά το αντίθετο. Υπάρχει καλύτερος τρόπος; Είναι καν σωστή η προσπάθεια μου; Μου καψε αρκετά το κεφάλι, οπότε αν το χει κανείς...

.include "m16def.inc"
.def xi=r16
.def yil=r17
.def yih=r18
.def resl=r19
.def resm=r20
.def resh=r21
.def temp=r22
.cseg
.org 0

rjmp reset
reset:

; X^2
muls xi, xi

; Y/4
asr yih
ror yil
asr yih
ror yil

; 5 teleutaia bits tou r0 + 3 mhdenika
mov resl, r0
lsl resl
lsl resl
lsl resl
add resl, yil

; 5 mhdenika + 3 prwta bits tou r0
lsr r0
lsr r0
lsr r0
lsr r0
lsr r0
adc yih, r0

; 5 teleutaia bits tou r1 + 3 mhdenika
mov temp, r1
lsl temp
lsl temp
lsl temp
adc yih, temp

; 5 mhdenika + 3 prwta bits tou r1
lsr r1
lsr r1
lsr r1
lsr r1
lsr r1
adc yih, r1

clr temp
adc resh, temp

mov resm, yih

δεν κατάλαβα τι κάνεις ακριβώς άλλα μου φαίνεται πολύ κάψιμο τζάμπα.
Από την στιγμή που παρατήρησες ότι το Υ έχει 2 lsb ασήμαντα τον φέρνεις σε μορφή
8low 8 fract όπως το έκανες
λέει πλήρη ακρίβεια άρα δεν υπάρχουν ασήμαντα lsb οπότε θέλει και άλλο ένα fract ...
 ο Χ είναι 4.4 x 4.4 = 8.8 άρα το άθροισμα τους ειναι balanced εδώ θέλει περισσότερο έλεγχο για overflow ή η εύκολη λύση επέκταση πρόσημου και έλεγχο μόνο για αρνητικούς με V post εάν χρειάζεται να γράψω κωδικα

Ασήμαντα lsb εννοώ ότι εφόσον λέει 14 bits άρα είναι της μορφής BBBBBBBB BBBBBBxx έτσι δεν είναι; Ή εννοεί xxBBBBBB BBBBBBBB; Ναι το x^2 βγαίνει όντως βολικά... Τέσπα η επέκταση προσήμου στηρίζεται στο ότι "σε έναν αρνητικό που είναι σε μορφή συμπλήρωμα του 2, βάζω όσους άσσους θέλω στα αριστερά χωρίς να αλλάζει η τιμή"?
Logged

Programs must be written for people to read, and only incidentally for machines to execute.
lady_of_winter
Veteran
Αbsolute ΤΗΜΜΥ.gr
******
Gender: Female
Posts: 3537


εφακ


View Profile
Re: [Συστ. Μικροϋπολογιστών] Λυμένα Θέματα
« Reply #48 on: February 04, 2016, 19:35:18 pm »

εχει ασχοληθει κανεις με το θεμα 3 του σεπτεμβρη του 10??
το τελευταιο γινομενο πως θα το χειριστουμε?
αν κανουμε Y*sin θα εχουμε εναν καταχωρητη ακεραιο κ εναν καταχωρητη με το κλασματικο
μετα πως θα πολλαπλασιασουμε και το X??
Logged

They paint the world full of shadows... and then tell their children to stay close to the light. Their light. Their reasons, their judgments. Because in the darkness, there be dragons. But it isn't true. We can prove that it isn't true. In the dark, there is discovery, there is possibility, there is freedom in the dark once someone has illuminated it.
Andromedas
Εθισμένος στο ΤΗΜΜΥ.gr
*****
Posts: 504



View Profile
Re: [Συστ. Μικροϋπολογιστών] Λυμένα Θέματα
« Reply #49 on: February 04, 2016, 20:01:14 pm »

Quote from: Indy on February 04, 2016, 19:26:04 pm
Quote from: Andromedas on February 04, 2016, 16:19:25 pm
Quote from: Indy on February 04, 2016, 07:30:40 am
Στο 3ο θέμα Φεβρουάριος 14 είχα προβλήματα για το πως να ευθυγραμμίσω τα bytes ώστε να κάνω τις πράξεις. Θεώρησα ότι το Y δίνεται σαν δύο bytes, το msb γεμάτο και το lsb με αδιάφορα τα τελευταία δύο ψηφία. Προσπαθώ να βάλω το αποτέλεσμα σε μορφή low: μόνο δεκαδικά, mid: 5 ακέραια και 3 δεκαδικά και high: μόνο ακέραια. Το θεώρησα πιο εύκολο να προσαρμόσω τα άλλα στη μορφή του Y δηλαδή, για να μη χαλάσω το συμπλήρωμα του 2 (το χ τετράγωνο είναι πάντα θετικός), παρά το αντίθετο. Υπάρχει καλύτερος τρόπος; Είναι καν σωστή η προσπάθεια μου; Μου καψε αρκετά το κεφάλι, οπότε αν το χει κανείς...

.include "m16def.inc"
.def xi=r16
.def yil=r17
.def yih=r18
.def resl=r19
.def resm=r20
.def resh=r21
.def temp=r22
.cseg
.org 0

rjmp reset
reset:

; X^2
muls xi, xi

; Y/4
asr yih
ror yil
asr yih
ror yil

; 5 teleutaia bits tou r0 + 3 mhdenika
mov resl, r0
lsl resl
lsl resl
lsl resl
add resl, yil

; 5 mhdenika + 3 prwta bits tou r0
lsr r0
lsr r0
lsr r0
lsr r0
lsr r0
adc yih, r0

; 5 teleutaia bits tou r1 + 3 mhdenika
mov temp, r1
lsl temp
lsl temp
lsl temp
adc yih, temp

; 5 mhdenika + 3 prwta bits tou r1
lsr r1
lsr r1
lsr r1
lsr r1
lsr r1
adc yih, r1

clr temp
adc resh, temp

mov resm, yih

δεν κατάλαβα τι κάνεις ακριβώς άλλα μου φαίνεται πολύ κάψιμο τζάμπα.
Από την στιγμή που παρατήρησες ότι το Υ έχει 2 lsb ασήμαντα τον φέρνεις σε μορφή
8low 8 fract όπως το έκανες
λέει πλήρη ακρίβεια άρα δεν υπάρχουν ασήμαντα lsb οπότε θέλει και άλλο ένα fract ...
 ο Χ είναι 4.4 x 4.4 = 8.8 άρα το άθροισμα τους ειναι balanced εδώ θέλει περισσότερο έλεγχο για overflow ή η εύκολη λύση επέκταση πρόσημου και έλεγχο μόνο για αρνητικούς με V post εάν χρειάζεται να γράψω κωδικα

Ασήμαντα lsb εννοώ ότι εφόσον λέει 14 bits άρα είναι της μορφής BBBBBBBB BBBBBBxx έτσι δεν είναι; Ή εννοεί xxBBBBBB BBBBBBBB; Ναι το x^2 βγαίνει όντως βολικά... Τέσπα η επέκταση προσήμου στηρίζεται στο ότι "σε έναν αρνητικό που είναι σε μορφή συμπλήρωμα του 2, βάζω όσους άσσους θέλω στα αριστερά χωρίς να αλλάζει η τιμή"?
είναι της μορφής για την μορφή να το σκεφτώ λίγο

ασήμαντα lsb εννοώ ότι :
εάν δεν έχουμε πλήρη ακρίβεια τότε τα 2 τελευταία fraction  χάνονται και δεν μας νοιάζει. Άρα μετά τα asr ror έχουμε τον Y 12 bit = 3bit integer . 8  bit fract
 άρα 8:8 εσύ κομπλέ.
Με πλήρη ακρίβεια σημαίνει δεν χάνω δεκαδικό άρα μπορείς να κάνεις διάφορους τρόπους άρα δεν υπάρχουν ασήμαντα lsb. Προφανώς αφού είναι προσημασμενο στα msb είναι το πρόσημο.
για το άθροισμα ναι η επέκταση δεν σου αλλάζει τον αριθμό σε γλιτώνει από μερικές συνθήκες και όρια τιμών για overflow αλλά τρώει ένα καταχωρητή.
Logged
Andromedas
Εθισμένος στο ΤΗΜΜΥ.gr
*****
Posts: 504



View Profile
Re: [Συστ. Μικροϋπολογιστών] Λυμένα Θέματα
« Reply #50 on: February 04, 2016, 20:11:35 pm »

Μίλησα με ένα συνάδελφο που το έδωσε και έχουμε την εξής συμβουλή
μην κάνετε ADIW SUBIW πέρα από τις x,y,z το παίρνει σαν λάθος.
Στα λυμένα τα δικά μου έχω μερικά comp2 σε 16 bit που τα κάνω με com adiw ενώ δεν χρησιμοποιώ τους Z,X,Y που είναι λάθος
 
Logged
Andromedas
Εθισμένος στο ΤΗΜΜΥ.gr
*****
Posts: 504



View Profile
Re: [Συστ. Μικροϋπολογιστών] Λυμένα Θέματα
« Reply #51 on: February 04, 2016, 20:33:00 pm »

Quote from: Andromedas on February 04, 2016, 20:01:14 pm
Quote from: Indy on February 04, 2016, 19:26:04 pm
Quote from: Andromedas on February 04, 2016, 16:19:25 pm
Quote from: Indy on February 04, 2016, 07:30:40 am



Ασήμαντα lsb εννοώ ότι εφόσον λέει 14 bits άρα είναι της μορφής BBBBBBBB BBBBBBxx έτσι δεν είναι; Ή εννοεί xxBBBBBB BBBBBBBB; Ναι το x^2 βγαίνει όντως βολικά...
λοιπόν αφού έχουμε fix point δεν μας ενοχλεί αλλά πρέπει να γίνει  balanced η πράξη
 
πχ [πρόσημο msb B15]ΒΒΒ ΒΒ.ΒΒ  [άλλο byte] ΒΒΒΒ BBBx   μορφή  6:10
λόγω ευκολίας χωρίς την διαίρεση
ο Χ^2 είναι [προσημασμενος]      8:8  πρέπει να έρθει για να γίνει balanced το pont στην ίδια μορφή όπως παραπάνω άρα  θέλουμε άλλο ένα high λόγω ορίων = επεκτάσεις προσήμων... x= 16:8
και 2 φορες lsr ror's  τον x ώστε  x= 14:10
θα γραψω και τον κωδικα πιο μετα.
 
Αυτή η μορφή είναι πολύ μανούρα. καλύτερα Yl,Yf μορφη 8 low :8 fract
Logged
Xbaremenos
Θαμώνας
****
Posts: 315



View Profile
Re: [Συστ. Μικροϋπολογιστών] Λυμένα Θέματα
« Reply #52 on: February 04, 2016, 20:47:45 pm »

Quote from: Indy on February 03, 2016, 22:21:31 pm
Σεπτέμβρης 15, Θέμα 2ο


Φίλε δεν έχω καταλάβει ακριβώς τι κάνεις με τους καταχωρητές, αλλά νομίζω οτι έχεις λάθος.

Εδώ για το πως κάνουμε πολ/σμο 16x16 --> 32   (bit)

http://www.8052.com/mul16
Logged

"Σκατά στα σαββατόβραδα,στις αναμονές,στους ανεκπλήρωτους έρωτες,στα τηλέφωνα και σε όλη την εξουσία της άδειας νύχτας "
greekoo
Εθισμένος στο ΤΗΜΜΥ.gr
*****
Gender: Male
Posts: 517



View Profile
Re: [Συστ. Μικροϋπολογιστών] Λυμένα Θέματα
« Reply #53 on: February 04, 2016, 21:01:17 pm »

Quote from: lady_of_winter on February 04, 2016, 19:35:18 pm
εχει ασχοληθει κανεις με το θεμα 3 του σεπτεμβρη του 10??
το τελευταιο γινομενο πως θα το χειριστουμε?
αν κανουμε Y*sin θα εχουμε εναν καταχωρητη ακεραιο κ εναν καταχωρητη με το κλασματικο
μετα πως θα πολλαπλασιασουμε και το X??

τσέκαρε αυτό φίλε. πρέπει να χρησιμοποιήσουμε την εντολή mulsu όταν έρθει  η ώρα να γίνει πολ/σμος μεταξύ του δεκαδικού που είναι ένα 8μπιτο πλήρες usnigned με έναν signed 8 βιτ αριθμό.

.include "m16def.inc"


.def w=r16
.def ufract1=r17
.def ufract2=r18
.def resint=r19
.def resfract1=r20
.def resfract2=r21


;pollaplasiasmos w * u opou w = 8 bit signed (5 akeraio 3 klasmatiko ) kai u = 16 bit thetikos klasmatikos (ola ta bit klasmatika) 0.16

;init
;estw w = 10010.111 = -13.125

;kai u = 0.101010101110001 = 0.667510986328125

;apotelesma 24 bits (3 bytes) , me tin ypodiastoli na brisketai 19 8eseis aristera apo to pio LSBIT tou 3-byte ari8mou
;=-8.761081695556640625


ldi w, 0b10010111 ; - 13.125
ldi ufract1,0b10101010
ldi ufract2, 0b11100010


clr resint
clr resfract1
clr resfract2

mulsu w,ufract2
mov resfract2,r0
mov resfract1,r1
sbrc resfract1,7
ser resint; επέκταση προσήμου, πολύ σημαντικό. αν εχω αρνητικό πρέπει όλο το high Να είναι ασοι για να γίνει σωστά το add κατω

mulsu w,ufract1
add resfract1,r0
adc resint,r1

;αυτο εδω κατω δε χρειάζεται απλά το κάνω για να επιβεβαίωσω ότι είναι σωστός αριθμός
;βάλτο στο exploringbinary.com
;kanw manually neg ton ari8mo na dw pios eine

ldi r22,1 ;βοηθητικοί καταχωρητές
ldi r23,0
com resfract2
com resfract1
com resint
add resfract2,r22
adc resfract1,r23
adc resint,r23
Logged
Indy
Θαμώνας
****
Gender: Male
Posts: 367


View Profile WWW
Re: [Συστ. Μικροϋπολογιστών] Λυμένα Θέματα
« Reply #54 on: February 04, 2016, 21:39:55 pm »

Σεπτέμβριος 13, Θέμα 3ο

.include "m16def.inc"
.def xi=r16
.def xih=r17
.def yil=r18
.def yi=r19
.def resl=r20  ; mono dekadika
.def resm=r21  ; 3 akeraia kai 5 dekadika
.def resh=r22  ; mono akeraia
.cseg
.org 0

rjmp reset
reset:

; 8X
clr xih
lsl xi
rol xih
lsl xi
rol xih
lsl xi
rol xih

; Y/4
clr yil
asr yi
ror yil
asr yi
ror yil

; low
clr resl
sub resl, yil

; mid
ldi resm, xi
subc resm, yi

; high
ldi resh, xih
clr yi
subc resh, yi

Σχόλια και διορθώσεις more than welcome
Logged

Programs must be written for people to read, and only incidentally for machines to execute.
Indy
Θαμώνας
****
Gender: Male
Posts: 367


View Profile WWW
Re: [Συστ. Μικροϋπολογιστών] Λυμένα Θέματα
« Reply #55 on: February 04, 2016, 21:44:46 pm »

Γενικά τα Χ και Υ που λέει εννοεί τους pointers X και Y ή κάποιες άσχετες μεταβλητές; Επίσης θέλει να τους δώσουμε αρχικά κάποιες τιμές σαν παράδειγμα ή απλά να κάνουμε πράξεις κατευθείαν πάνω τους (με τα σκουπίδια που θα έχουν μέσα) όπως πχ στην παραπάνω λύση μου;
Θα θελα πάντως να δω λυμμένα κι άλλα με πίνακες που λέει, πχ Σεπτέμβριος 13 το 2ο θέμα αν το χει κανείς;
« Last Edit: February 04, 2016, 21:52:40 pm by Indy » Logged

Programs must be written for people to read, and only incidentally for machines to execute.
eleftheria_94
Νεούλης/Νεούλα
*
Posts: 41


View Profile
Re: [Συστ. Μικροϋπολογιστών] Λυμένα Θέματα
« Reply #56 on: February 04, 2016, 23:30:59 pm »

Quote from: Andromedas on February 04, 2016, 20:11:35 pm
Μίλησα με ένα συνάδελφο που το έδωσε και έχουμε την εξής συμβουλή
μην κάνετε ADIW SUBIW πέρα από τις x,y,z το παίρνει σαν λάθος.
Στα λυμένα τα δικά μου έχω μερικά comp2 σε 16 bit που τα κάνω με com adiw ενώ δεν χρησιμοποιώ τους Z,X,Y που είναι λάθος
 

Στο instruction set παντως λεει για την adiw Rd+1:Rd,K  ότι  d ∈ {24,26,28,30}, 0 ≤ K ≤ 63. Δηλαδη απο οτι καταλαβαινω περα απο τους Χ,Υ,Ζ μπορεις να χρησιμοποιησεις και το ζευγαρι R25:R24...
Logged
Andromedas
Εθισμένος στο ΤΗΜΜΥ.gr
*****
Posts: 504



View Profile
Re: [Συστ. Μικροϋπολογιστών] Λυμένα Θέματα
« Reply #57 on: February 05, 2016, 00:19:42 am »

Quote from: eleftheria_94 on February 04, 2016, 23:30:59 pm
Quote from: Andromedas on February 04, 2016, 20:11:35 pm
Μίλησα με ένα συνάδελφο που το έδωσε και έχουμε την εξής συμβουλή
μην κάνετε ADIW SUBIW πέρα από τις x,y,z το παίρνει σαν λάθος.
Στα λυμένα τα δικά μου έχω μερικά comp2 σε 16 bit που τα κάνω με com adiw ενώ δεν χρησιμοποιώ τους Z,X,Y που είναι λάθος
 

Στο instruction set παντως λεει για την adiw Rd+1:Rd,K  ότι  d ∈ {24,26,28,30}, 0 ≤ K ≤ 63. Δηλαδη απο οτι καταλαβαινω περα απο τους Χ,Υ,Ζ μπορεις να χρησιμοποιησεις και το ζευγαρι R25:R24...
Εχεις δικιο απλα χρησιμοποιησα σε λυσεις μου για ευκολεια 2complimet =
com R17
com R18
 adiw R17:R16,1
που είναι λάθος
Logged
gmtms
Guest
Re: [Συστ. Μικροϋπολογιστών] Λυμένα Θέματα
« Reply #58 on: February 05, 2016, 01:29:20 am »

εναλλακτικά δε θα'ταν πρακτικότερο να πεις
neg LSB
com MSB
ή έστω
com LSB
inc LSB
com MSB
για να αποφυγεις αυτο τον μπελά; χάνω ίσως κάποια ειδική περίπτωση;
Logged
ClockWork
Ανερχόμενος/Ανερχόμενη
**
Posts: 60



View Profile
Re: [Συστ. Μικροϋπολογιστών] Λυμένα Θέματα
« Reply #59 on: February 05, 2016, 01:36:40 am »

Quote from: antoniat on February 03, 2016, 22:46:52 pm
Quote from: gmtms on February 03, 2016, 20:01:46 pm
Φεβρούαριος 2012 Θέμα 3

Ο αλγόριθμος πάει ως εξής
Σειρά Ν:  αλλάζουν από Ν*(Ν-1) ως Ν*Ν -1
Ν-1: από Ν(Ν-2)+1 ως Ν(Ν-1) -2
Ν-2: από Ν(Ν-3)+2 ως Ν(Ν-2) -3
Ν-i: από N(N-1-i)+i ως Ν(Ν-i)-i-1

δηλαδή ανά row αλλάζουν κάθε φορά Ν -2 *i στοιχεία

με βάση αυτό ο αλγόριθμος τσεκάρει πόσες σειρές πρέπει να αλλάξει, και μετά σειρά σειρά τοποθετείται στην κατάλληλη θέση, και αλλάζει όσα στοιχεία οφείλει πριν μετακινηθεί στην επόμενη


.def i
.def maxi
.def N
.def counter
.def stadlo
.def stadhi
.def load
.def temp

; find maxi
mov i, N
lsr i
brvc found_i
inc i ; if N/2 returns overflow, (e.g. 5/2=2.5, increment result)
clv
found_i:
ldi temp, 0
mov maxi, i
dec maxi ; count starts at zero
add stadlo, N
adc stadhi, temp ; move to end of array

;start
ldi i, 0
mov counter, N ; last row- swap out all elements

read_row:
clr load
mov temp, i
inc temp
sub stadlo, temp
sbc stadhi, load ; subtract from current address > stad -i-1
ld read, X
neg read
st -x, read
dec counter
brne read_row

; finished a row
ldi read, 0
sub stadlo, i
sbc stadhi, read ; go up i bytes (start of finished row)
scpe i, maxi ; if i==maxi
rjmp done ; complete
inc i ; else increase i
mov counter, n ; reset counter
clc
mov temp,i
lsl temp ; temp=2*i
clc
sub counter, temp ; new counter = counter -2 *i
rjmp read_row


ps: εφαγα μιαμιση ωρα για 33 γραμμες 'κωδικα', γιατι τοσο δυσκολο αυτο το μαθημα και γιατι κανενας δεν αγχωνεται;
να σε ρωτήσω λίγο κάτι...αν εδώ έχω Ν γραμμές και Ν στήλες τότε τα συνολικά στοιχεία του πίνακα δεν θα είναι ΝxN ?οπότε αν θες να πας στο τελευταίο στοιχείο το ΝχΝ δεν έπρεπε να προσθέσεις στις διευθύνσεις?
Αφου ο πίνακας είναι κάτω τριγωνικός δεν πρέπει απλά να ελέγχουμε τα στοιχεία που ειναι διάφορα του μηδενος και αυτα να αλλάζουμε σε συμπλήρωμα του 2? Ή θέλει και το μηδέν?
Logged
Pages: 1 2 3 [4] 5 6 ... 11 Go Up Print
Jump to:  

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