Title: TRN-Μικρομνήμη Post by: dagas on May 11, 2006, 16:51:54 pm Όταν κάνω κάποια αλλαγή στην μικρομνήμη, γιατί δεν την δέχεται το πρόγραμμα? Π.χ αλλάζω το όνομα (επιγραφή) της ΕΝΙ σε TDX, χωρίς να αλλάξω την λειτουργία της εντολής. Το αποθηκεύω κανονικά και πάω στον συμβολομεταφραστή. Γράφω ένα απλό τεστ πρόγραμμα και διαπιστώνω ότι την TDX δεν την βρίσκει ενώ την ΕΝΙ την βρίσκει κανονικά! Αν μπορεί να μου εξηγήσει κανείς τι γίνεται θα με βοηθούσε πολύ!
Γενικά, όποια βοήθεια για την δεύτερη άσκηση ευπρόσδεκτη...Ευχαριστώ! Title: Re: TRN-Μικρομνήμη Post by: dim on May 11, 2006, 17:01:13 pm Πρώτα απ'όλα πρέπει να τρέχεις το προ/μα στη μικροπρογραμματιζόμενη αλλαγή..
Έπειτα, όταν τρέξεις το δοκιμαστικό πρόγραμμα, ναι μεν θα βλέπεις το όνομα της παλιάς εντολής (ΕΝΙ), αλλά θα τρέχει ο κώδικας της νέας εντολής (TDX).. Τρέξε λίγο πιο αργά το προ/μα σου να δεις αν εκτελούνται τα "βήματα" της νέας εντολής.. Title: Απ: TRN-Μικρομνήμη Post by: JAs0n-X on May 11, 2006, 17:05:44 pm Γενικα θυμαμαι οτι τετοια bugs ειχα βρει μπολικα στον προσομοιωτη του TRN!
Title: Re: TRN-Μικρομνήμη Post by: dim on May 11, 2006, 17:11:04 pm Ναι, όσοι έκαναν πέρισυ την εργασία τα είχαν βρει αυτά, αν ψάξεις στο τόποικ εργασίες 2005 θα βρεις και πολλά άλλα χρήσιμα πράγματα, που δεν τα καταλαβαίνεις απευθείας μόνος σου..
Εγώ τουλάχιστο βοηθήθηκα πολύ από το τόπικ.. Title: Re: TRN-Μικρομνήμη Post by: dagas on May 15, 2006, 18:16:52 pm Ευχαριστώ για τις απαντήσεις! Αν και δεν το έκανα ακόμη (διάβαζα άλλα), με βοηθήσατε πολύ!
Title: Re: TRN-Μικρομνήμη Post by: dagas on May 20, 2006, 15:45:01 pm Εντάξει! Τώρα νομίζω ότι όλα είναι σωστά. Το μόνο που δεν έκανα είναι να κρατάω την τιμή του Α στην ΤDX. Έχει βρει κανείς άκρη; Ξέρει κανείς (κυρίως παλιός), αν αυτό είναι λόγος να σε κόψουνε;
Title: Re: TRN-Μικρομνήμη Post by: dagas on May 20, 2006, 19:17:29 pm Tελικά βρήκα τρόπο να το κρατάω! :)
Στην αρχή βάζω τον Α στον BR και μετά τον BR στον I. Μετά κάνω ότι έκανα και πριν για να μειώσω τον Χ και στο τέλος φέρνω τον αρχικό Α από τον I στο BR και μετά στον Α. Βγαίνει καμιά 10αριά εντολές μου φαίνεται αλλά μην το φοβηθείτε! Title: Απ: TRN-Μικρομνήμη Post by: Καλλισθένης on May 20, 2006, 21:04:22 pm Βγαίνει καμιά 10αριά εντολές μου φαίνεται αλλά μην το φοβηθείτε! ...ναι, αλλά δεν πρέπει να βγει με 4 μικρορουτίνες?Title: Re: TRN-Μικρομνήμη Post by: dim on May 20, 2006, 21:10:05 pm ...ναι, αλλά δεν πρέπει να βγει με 4 μικρορουτίνες? Όχι, μάλλον είναι αδύνατο..Title: Re: TRN-Μικρομνήμη Post by: Verminoz on May 20, 2006, 21:10:56 pm Όχι μάλλον, δεν υπάρχει περίπτωση...
Title: Απ: TRN-Μικρομνήμη Post by: Καλλισθένης on May 20, 2006, 21:18:52 pm ένας φίλος μου έχει την εξής ιδέα:
ΤDX: JMP (U, FETCH), DCRA JMP (U, CONT), TABR JMP (U, CONT), TBRX JMP (Z, JMP1) με JMP1: JMP (U, FETCH), TIRPC Title: Re: TRN-Μικρομνήμη Post by: Verminoz on May 20, 2006, 21:36:03 pm Μα δεν αρκεί φίλτατε. Ο φίλος σου έχει "φάει" ένα ολόκληρο κομμάτι κώδικα που αφορά την μεταφορά του Χ στο Α...(γιατί άραγε δεν υπάρχει εντολή DCRX? ^banghead^) και συνεπώς την προσωρινή αποθήκευση του Α κάπου αλλού...ένα πρόβλημα μέχρι στιγμής άλυτο...
Title: Απ: TRN-Μικρομνήμη Post by: Καλλισθένης on May 20, 2006, 21:41:51 pm Αν υπήρχε αυτή η DCRX δεν θα χρειαζόταν να σπάμε άδικα το κεφάλι μας......
Και αν ξεφύγουμε πάνω από τις 4 μικρορουτίνες, πως θα περαστεί στον TRN? Κ.Ι.Σ. Title: Re: TRN-Μικρομνήμη Post by: Verminoz on May 20, 2006, 21:50:05 pm Ναι ακριβώς...ο TRN είναι τρομερά ελλειπής και καχεκτικός στην δομή και λειτουργία του.
Αυτό μπορεί να επιτευχθεί με μία εντολή εντολή JMP σε μία ταμπέλα που θα έχουμε ορίσει εμείς οι ίδοι. Δηλαδή κάπως έτσι: ... JMP(U, SUB2), m1, m2, m3... ... όπου SUB2 είναι είναι η ρουτίνα στην οποία πηγαίνουμε. Το άλυτο πρόβλημα είναι η επαναφορά του Α :( Title: Απ: TRN-Μικρομνήμη Post by: kekropas on May 21, 2006, 02:24:17 am Μα και DCRX να υπήρχε πάλι δεν θα μπορούσαμε να κάνουμε JMP με συνθήκη για χ=0.
Τελικά το Ι το κρατάμε και αυτό? Έλεος!!! Title: Re: TRN-Μικρομνήμη Post by: Verminoz on May 21, 2006, 11:23:45 am Η μεταφορά στο Ι συνεπάγεται απώλεια πληροφοριών. Συνεπώς τι νόημα έχει?
Αυτό που σκέφτηκα αλλά δεν το περιλαμβάνει η άσκηση είναι να δίνει ο χρήστης παράμετρο στην TDX με μια διεύθυνση μνήμης την οποία θα μπορεί να χρησιμοποιήσουμε εμείς οι έρμοι για προσωρινή αποθήκευση. Κέκροπας αυτό με τις συνθήκες είναι πάλι αισχρό. Οι συνθήκες είναι ελλειπέστατες...σαν να μην υπάρχουν... Title: Re: TRN-Μικρομνήμη Post by: NetBuster on May 21, 2006, 19:42:45 pm Παιδια εγω την TDX την υλοποιω χρησιμοποιωντας συνεχως αλλες θεσης στη μνημη ελεγχου...Και απο οτι ειδα σε κατι παλια θεματα για την ιδια ακριβως δουλεια το ιδιο κανει και αυτος.Εκει μαλιστα δεν τον ενδιαφερει τι παθαινει ο καταχωρητης Α και τον χρησιμοποιει.Στην τελικη αν με κοψει επειδη ο ΤRN ειναι ανεπαρκης >:( >:(
Τωρα για τον ελεγχο της σωστης μετατροπης στη 2.2 χρησιμοποιησατε καποιο loop??? Title: Re: TRN-Μικρομνήμη Post by: Verminoz on May 21, 2006, 20:52:59 pm Αν εννοείς την SHAX αυτή δεν χρειάζεται loop. Καλεί τον εαυτό της ξανά και ξανά μέχρι να τελειώσει την εργασία της...
Title: Απ: TRN-Μικρομνήμη Post by: Axel on May 21, 2006, 21:45:48 pm Αν εννοείς την SHAX αυτή δεν χρειάζεται loop. Καλεί τον εαυτό της ξανά και ξανά μέχρι να τελειώσει την εργασία της... Η SHAX απ'οτι καταλαβαινω απο το βιβλιο ελεγχει αν το ΑΡ ειναι αρνητικο οποτε και εκτελει την SAX1 η οποια κανει shift το ΑΧ δεξια κατα μια θεση ενω αν το ΑΡ ειναι θετικο κανει shift το ΑΧ αριστερα κατα μια θεση. Σε ποιο σημειο γινεται το loop που λες η τι δεν καταλαβαινω; Ποσες μικροεντολες χρησιμοποιησατε για την υλοποιηση της SHAX n; Title: Re: TRN-Μικρομνήμη Post by: Verminoz on May 21, 2006, 21:53:06 pm Άξελ η παράμετρος n λέει στην εντολή πόσες θέσεις πρέπει να μετατοπίσει τα ΑΧ. Που σημαίνει ότι η SHAX πρέπει να καλέσει τον εαυτό της ξανά και ξανά μέχρι να μετατοπίσει τα AX κατά n θέσεις προφανώς χρησιμοποιώντας κάποιο counter για να μετράει...
Title: Απ: TRN-Μικρομνήμη Post by: Axel on May 21, 2006, 21:55:24 pm Αυτο λεω και γω. Απο μονη της η SHAX δεν εχει loop. Αφου δωσουμε απο το προγραμμα το n τοτε φτιαχνουμε ενα loop μεσα στο οποιο εκτελειται η SHAX. :)
Διορθωση: Το loop θα πρεπει να ειναι μεσα στη SHAX μιας και αυτη την εντολη πρεπει να τροποποιησουμε ωστε να εκτελειται n φορες. Μη βαρατε, τωρα παιδευομαι με την ασκηση... |