Bubble Sort σε 8086

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

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

Απάντηση
navagos87
Δημοσιεύσεις: 2
Εγγραφή: 03 Απρ 2011 13:44

Bubble Sort σε 8086

Δημοσίευση από navagos87 » 03 Απρ 2011 13:52

Γεια χαρα, ειμαι σπουδαστης του τμηματος Αυτοματισμου, κανω την πρακτικη μου αυτην την περιοδο κ ειναι πολυ περιορισμενος ο χρονος μου. Για το τελευταιο μου μαθημα για πτυχιο εχω την παρακατω εργασια:

"Να υλοποιήσεις τον αλγόριθμο bubble sort σε assembly."-το ακριβες θεμα,χαχα!

μπορει καποιος να με βοηθησει?
ομολογω οτι δεν εχω καλη επαφη με το θεμα, τρια εξαμηνα εχω να παρω το μαθημα.
Ευχαριστω εκ των προτερων..

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

Bubble Sort σε 8086

Δημοσίευση από LightForce » 03 Απρ 2011 18:13

Γεια,

Σύνταξη FASM, πολύ απλός κώδικας.

Κώδικας: Επιλογή όλων

; di -> array
; cx -> length

Bubble:
			pusha
			mov si, di
				A:
			lodsw
			cmp ax, [si]
			jge B
			xchg ax, [si]
				B:
			stosw
			loop A
			popa
			loop Bubble
			ret
Σαν παράδειγμα, έχω μια διάταξη στοιχείων όπως

Κώδικας: Επιλογή όλων

array dw 8, 9, 1, 2, 5, 4, 3, 6, 7, 0
array.length = $ - array  
και καλώ την ρουτίνα όπως

Κώδικας: Επιλογή όλων

mov di, array
mov cx, array.length 
call Bubble
Τα στοιχεία τώρα είναι τοποθετημένα 9 8 7 6 5 4 3 2 1 0

Ενώ εάν το bit της σημαίας κατεύθυνσης είναι 1

Κώδικας: Επιλογή όλων

std     ; set direction flag
mov di, array + (array.length*2)-2
mov cx, array.length
call Bubble
Τα στοιχεία τώρα είναι τοποθετημένα 0 1 2 3 4 5 6 7 8 9

Ένα ολοκληρωμένο παράδειγμα σε 8086 θα βρεις εδώ
Kαλή τύχη.

navagos87
Δημοσιεύσεις: 2
Εγγραφή: 03 Απρ 2011 13:44

Bubble Sort σε 8086

Δημοσίευση από navagos87 » 04 Απρ 2011 00:25

αδερφε σε ευχαριστω παρα παρα πολυ..!
με σωνεις πραγματικα!
το σκ θα κατσω να την κοιταξω κ να την κατανοησω πληρως,
κ παλι σε ευχαριστω πολυ..

Απάντηση

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

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

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