πίνακας Α με 28 στοιχεία (αριθμούς), των 2 bytes

συζητήσεις για assembly

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
vibezz
Δημοσιεύσεις: 2
Εγγραφή: 29 Αύγ 2007 19:07

πίνακας Α με 28 στοιχεία (αριθμούς), των 2 bytes

Δημοσίευση από vibezz » 29 Αύγ 2007 19:11

Δίνεται ο πίνακας Α με 28 στοιχεία (αριθμούς), των 2 bytes. Ζητείται ένα πρόγραμμα για την ταξινόμησή του, ενώ τα περιεχόμενα θεωρούνται αριθμοί προσημασμένοι. Προτείνεται ο απλούστερος σε εσάς αλγόριθμος ταξινόμησης, όπως π.χ. ο bubble-sort. Το πρόγραμμα θα αποτελείται από 2 ρουτίνες (PROC) και το κυρίως μέρος.
1. Το κυρίως πρόγραμμα περνά ως παράμετρο μέσω στοίβας τη διεύθυνση αρχής του πίνακα και καλεί τη ρουτίνα SORT.
2. Η ρουτίνα SORT παίρνει από τη στοίβα τη διεύθυνση και περιέχει το βρόχο που θα επιτελεί την ταξινόμηση. Στο βρόχο αυτό χρειάζεται μερικές φορές η αντιμετάθεση δύο στοιχείων. Στο σημείο αυτό περνά τις διευθύνσεις των προς αντιμετάθεση στοιχείων στους καταχωρητές DX & BX και καλεί τη ρουτίνα SWAP.
3. Η ρουτίνα SWAP θεωρεί ότι στους καταχωρητές DX & BX βρίσκονται οι διευθύνσεις των στοιχείων που πρέπει να αντιμεταθέσει. Εκμεταλλευόμενη τις διευθύνσεις στους DX & BX, η SWAP αντιμεταθέτει τα περιεχόμενα των δύο θέσεων μνήμης.
Ο πίνακας δηλώνεται στο τμήμα DATA του προγράμματός σας με τα εξής περιεχόμενα (δεκαδικοί αριθμοί των 2 bytes):
128, -128, 124, 1, -1, 255, 256

127, 128, 56, 32, 0, 0, 255

1, 0, 0, 32767, 32768, 65535, -1

32000, 65000, -32767, 1, -82, -64, 64

Παρατηρήσεις:
1. Χρησιμοποιήστε τους απλούστερους δυνατούς αλγορίθμους, τους οποίους θα καταθέσετε μαζί με την άσκησή σας σε σχεδιάγραμμα ή ψευδοκώδικα.
2. Οι ρουτίνες πουθενά δεν "βλέπουν" τις global μεταβλητές, δηλαδή τον πίνακα Α. Χρησιμοποιούν πάντα τις παραμέτρους που παίρνουν.
3. Σε κάθε ρουτίνα οι παράμετροι λαμβάνονται όπως έχει οριστεί για τη ρουτίνα (μέσω στοίβας ή μέσω καταχωρητών), όχι κατά βούληση.
4. Όλοι οι αριθμοί θεωρούνται 2 bytes και λαμβάνονται ως προσημασμένοι στη μνήμη, ανεξάρτητα από την αρχική τους μορφή (στο .DATA).
5. Το πρόγραμμα της εργασίας θα είναι σε ένα απλό TXT αρχείο με κατάληξη .ASM, το οποίο θα πρέπει να μπορεί να γίνει EXE με τα συνήθη εργαλεία του εργαστηρίου (MASM, LINK).
6. Ο αλγόριθμος θα πρέπει να κατατεθεί σε κάποια γνωστή ή προφανή μορφή, ως ξεχωριστό αρχείο.

LightForce
WebDev Moderator
Δημοσιεύσεις: 3812
Εγγραφή: 13 Απρ 2003 23:49

πίνακας Α με 28 στοιχεία (αριθμούς), των 2 bytes

Δημοσίευση από LightForce » 30 Αύγ 2007 01:36

vibezz γειά σου,
Δοκίμασες να την γράψεις μόνος σου, αν ναί μέχρι ποιό σημείο έφτασες.
Ζητάς να ταξινομήσεις πίνακα απο words, με bubble sort αλλά η άσκηση ζητάει συγκεκριμένο τρόπο.
Αφού πρέπει να την παραδώσεις κιόλας υποθέτω σε σχολή είσαι φοιτητής πληροφορικής-προγραμματιστής η κάτι παρόμοιο.

Δεν το λέω να σε πικάρω η οτιδήποτε, μήν σκεφτείς αρνητικά για αυτό που θα σου πω αλλά
η άσκηση αυτή, δεν είναι δύσκολη
Γιατί δεν μπορείς να την γράψεις?

Αν προσπάθησες, πολύ, αλλά δεν τα κατάφερες το καταλαβαίνω και πάω πάσο.

Πολύ φιλικά.
Τελευταία επεξεργασία από το μέλος LightForce την 02 Σεπ 2007 02:50, έχει επεξεργασθεί 1 φορά συνολικά.

vibezz
Δημοσιεύσεις: 2
Εγγραφή: 29 Αύγ 2007 19:07

πίνακας Α με 28 στοιχεία (αριθμούς), των 2 bytes

Δημοσίευση από vibezz » 30 Αύγ 2007 05:22

thn exw grapsei sxedon oloklhrh alla exw kolhsei sto swap! den pernw arnhtika ta sxoleia sou
alla den tha elega oti eimai kai programmer! filika vibe

Απάντηση

Επιστροφή στο “Assembly”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες