Χρειάζομαι επεξήγηση σε 2 κομμάτια κώδικα 8051

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

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

Απάντηση
serjio
Δημοσιεύσεις: 2
Εγγραφή: 27 Ιουν 2011 01:41

Χρειάζομαι επεξήγηση σε 2 κομμάτια κώδικα 8051

Δημοσίευση από serjio » 27 Ιουν 2011 01:49

Θα ήθελα αν μπορούσε κάποιος να μου εξηγήσει τι ακριβώς συμβαίνει σε αυτά τα κομμάτια κώδικα αν είναι εύκολο διότι δεν μπορώ να βγάλω άκρη στο πως βγαίνουν τα συγκεκριμένα αποτελέσματα...
Σας τα παραθέτω εδώ τις εκφωνήσεις μαζί με τις απαντήσεις:
Ποια θα είναι η τιμή του καταχωρητή Α σε έναν μικροελεγκτή της οικογένειας των 8051 (σε δεκαεξαδικό), μετά την εκτέλεση των παρακάτω εντολών ;

MOV A, 080H ; Εδώ για παράδειγμα ποιο είναι το περιεχόμενο αυτής της θέσης το 128;
MOV R1,#010H ; Εδώ βάζει στην Register Bank 1 τον αριθμό 16 στο δεκαδικό σύστημα;
MOV R2,#0F2H ; Στο R2 το 242 στο δεκαδικό σύστημα και πάλι
ADD A,R1 ; Προσθέτει το 16 στον συσσωρευτή Α αλλά δεν μπορώ να καταλάβω τι περιεχόμενο έχει ο συσσωρευτής Α, γιατί δεν γνωρίζω τι περιέχει η θέση μνήμης 080;
SUBB A,R2 ; Εδώ γίνεται η αφαίρεση αλλά, όταν την κάνω εγώ, το απότελεσμα βγαίνει -98

A = 0CH ; Πως προκύπτει εδώ αυτό το αποτέλεσμα;
Ποια θα είναι η τιμή (σε δεκαεξαδικό) του καταχωρητή Α μετά την εκτέλεση του παρακάτω προγράμματος;

TEST EQU 00AH
ORG 000H
MOV TEST,#055H
MOV A,#2
MOV R4,#3
STACK_LOOP:
PUSH ACC
INC A
DJNZ R4,STACK_LOOP
MOV A,TEST
END
A = 04H
; Πως προκύπτει & εδώ αυτό το αποτέλεσμα;


Ευχαριστώ εκ τν προτέρων
ole8ros

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

Χρειάζομαι επεξήγηση σε 2 κομμάτια κώδικα 8051

Δημοσίευση από LightForce » 28 Ιουν 2011 00:27

Hi serjio,

Για το δεύτερο κομμάτι κώδικα,
Δεν γνωρίζω τα χαρακτηριστικά του 8051 αλλά έτρεξα τον κώδικα στον EdSim51
Eίδα πως αρχικά η στοίβα ξεκινάει σε 07h και εάν σπρώξεις μια τιμή σε αυτή, αποθηκεύεται στην επόμενη εσωτερική διεύθυνση μνήμης (Data Memory) 08h

Παρακολούθα τον δείκτη στοίβας και τις θέσεις μνήμης 8,9,Α και θα δεις γιατί A = 04H στο τέλος.

serjio
Δημοσιεύσεις: 2
Εγγραφή: 27 Ιουν 2011 01:41

Χρειάζομαι επεξήγηση σε 2 κομμάτια κώδικα 8051

Δημοσίευση από serjio » 29 Ιουν 2011 18:55

Νομίζω πως το συγκεκριμένο πρόγραμμα java με βοήθησε στο να καταλάβω τι ακριβώς παίζει φίλε μου συγνώμη που άργησα να σου απαντήσω αλλά έχω εξεταστική και είμαι σε μια εγρήγορση, σε ευχαριστώ και πάλι να είσαι καλά. =)
ole8ros

Απάντηση

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

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

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