Επιμέλεια: ρ. Ν. Σγούρος ρ. Ι. Κονταξάκης

Σχετικά έγγραφα
ΕΡΓΑΣΤΗΡΙΟ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ ΙΙ Εργαστήριο 2 ο ΔΟΜΗ ΠΡΟΓΡΑΜΜΑΤΟΣ- ΨΕΥΔΟΕΝΤΟΛΕΣ ΜΑΚΡΟΕΝΤΟΛΕΣ- ΔΙΑΔΙΚΑΣΙΕΣ (ΕΙΣΑΓΩΓΗ)

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου

Αρχιτεκτονική Υπολογιστών

Σημειώσεις για τον 80x86

ΘΕΜΑΤΑ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ-ΙΙ

Προηγμένοι Μικροεπεξεργαστές. Εργαστήριο 1 Hello World

ΛΥΣΕΙΣ ΘΕΜΑΤΩΝ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ

Αρχιτεκτονική Υπολογιστών

Στοιχεία από Assembly Γιώργος Μανής

Αρχιτεκτονική Υπολογιστών

ΕΡΓΑΣΤΗΡΙΟ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ Η/Υ

ΕΡΓΑΣΤΗΡΙΟ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ Η/Υ

Αρχιτεκτονική Υπολογιστών

Αρχιτεκτονική Υπολογιστών

Αρχιτεκτονική Υπολογιστών

Οδηγός Εκμάθησης στην Assembly

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου

Θ. Ζαχαριάδης Αν. Καθηγητής. Λ. Σαράκης Καθ. Εφαρμογών

Συστήματα Μικροϋπολογιστών

Προηγμένοι Μικροεπεξεργαστές. Φροντιστήριο 2 Addressing

Θ. Ζαχαριάδης Αν. Καθηγητής. Λ. Σαράκης Καθ. Εφαρμογών

ΕΡΓΑΣΤΗΡΙΟ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ Η/Υ

Αρχιτεκτονική Υπολογιστών

Αρχιτεκτονική Υπολογιστών

0100: MAR ADR; wait;mdr DB; SCR L DH+MDR+CY

Συστήματα Μικροϋπολογιστών

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου

Εργαστήριο Δομής και Λειτουργίας Μικροϋπολογιστών. Βοήθημα για την εργαστηριακή άσκηση 8: Διακοπές του 8051 οφειλόμενες στους απαριθμητές του

Εργαστήριο 3 ΟΡΓΑΝΩΣΗ ΤΗΣ ΚΜΕ. Εισαγωγή

Υποπρογράμματα (Subroutines)

Καταχωρητές & τμήματα μνήμης του Ματθές Δημήτριος Καθηγητής Πληροφορικής

Αρχιτεκτονική Υπολογιστών

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου

Καταχωρητές γενικής χρήσης και δεδοµένων (Data Registers)

Ερωτήσεις θεωρίας MY. Μέρος Α. Υλικό.

Πρόχειρες Σημειώσεις. Θ. Ζαχαριάδης Αν. Καθηγητής. Λ. Σαράκης Καθ. Εφαρμογών

ΜΑΘΗΜΑ: ΜΙΚΡΟΫΠΟΛΟΓΙΣΤΕΣ ΘΕΜΑΤΑ ΙΟΥΝΙΟΥ 2014

Εισαγωγή στους Η/Υ. Γιώργος Δημητρίου. Μάθημα 3-4: Προγραμματισμός MIPS. Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής

ΤΕΙ ΙΟΝΙΩΝ ΝΗΣΩΝ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ - ΕΙΣ

Προηγμένοι Μικροεπεξεργαστές. Φροντιστήριο 3 Έλεγχος Ροής Προγράμματος

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου

ΜΙΚΡΟΫΠΟΛΟΓΙΣΤΕΣ ΛΥΣΕΙΣ ΘΕΜΑΤΩΝ ΦΕΒ 2014 Καθηγητής: Νικολαΐδης Νικ. Ημ/νία εξέτασης:

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου

Αρχιτεκτονικές Συνόλου Εντολών (ΙΙ)

Αρχιτεκτονική-Ι Ενότητα 5:

Αρχιτεκτονική x86(-64) 32-bit και 64-bit λειτουργία. Αρχιτεκτονική x86(-64) Αρχιτεκτονική επεξεργαστών x86(-64) Αρχιτεκτονικές Συνόλου Εντολών (ΙΙ)

Αρχιτεκτονική Υπολογιστών

Διαδικασίες ΙI. ΗΥ 134 Εισαγωγή στην Οργάνωση και στον Σχεδιασμό Υπολογιστών Ι. Διάλεξη 5

Προηγμένοι Μικροεπεξεργαστές. Έλεγχος Ροής Προγράμματος

Αρχιτεκτονική Υπολογιστών

Ο 8086 µπορεί να θεωρηθεί ότι αποτελείται από δύο τµήµατα επεξεργαστές, όπως φαίνεται και στο σχήµα 1, οι οποίοι είναι:

Μικροεπεξεργαστές. Σημειώσεις Μαθήματος Υπεύθυνος: Δρ Άρης Παπακώστας,

ίοδοι Εκποµπής Φωτός

Οργάνωση Υπολογιστών

Αρχιτεκτονικές Υπολογιστών

Α. unsigned int Β. double. Γ. int. unsigned char x = 1; x = x + x ; x = x * x ; x = x ^ x ; printf("%u\n", x); Β. unsigned char

Να γράψετε τα αποτελέσματα αυτού του αλγόριθμου για Χ=13, Χ=9 και Χ=22. Και στις 3 περιπτώσεις το αποτέλεσμα του αλγορίθμου είναι 1

Ι ΑΣΚΩΝ ΚΑΘΗΓΗΤΗΣ: ΚΑΘΗΓΗΤΗΣ ΕΦΑΡΜΟΓΩΝ. ΤΕΙ ΥΤΙΚΗΣ ΜΑΚΕ ΟΝΙΑΣ

Συναρτήσεις-Διαδικασίες

Μικροεπεξεργαστές - Μικροελεγκτές Ψηφιακά Συστήματα

Data-Level Parallelism Linking & Loading

Εργαστήριο Δομής και Λειτουργίας Μικροϋπολογιστών. Βοήθημα εκτέλεσης εργαστηριακής άσκησης 3: Εντολές λογικών πράξεων και εντολές κλήσης ρουτινών

ΑΡΧΙΤΕΚΤΟΝΙΚΗ & ΛΕΙΤΟΥΡΓΙΑ Η/Υ

; Γιατί είναι ταχύτερη η λήψη και αποκωδικοποίηση των εντολών σταθερού μήκους;

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

1 η Άσκηση Στην Αρχιτεκτονική Υπολογιστών

ΑΡΧΙΤΕΚΤΟΝΙΚΗ & ΛΕΙΤΟΥΡΓΙΑ Η/Υ

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ

ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών ARM και x86

ΑΣΚΗΣΗ 1 ΑΣΚΗΣΗ 1. Συγγραφή. Αρχιτεκτονική Η/Υ ΗΜΟΣ ΜΠΟΛΑΝΑΚΗΣ

Αρχιτεκτονική Υπολογιστών Εργαστήριο

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ

Ι ΑΣΚΩΝ ΚΑΘΗΓΗΤΗΣ: ΚΑΘΗΓΗΤΗΣ ΕΦΑΡΜΟΓΩΝ ΠΑΡΑΡΤΗΜΑ ΚΑΣΤΟΡΙΑΣ ΤΕΙ ΥΤΙΚΗΣ ΜΑΚΕ ΟΝΙΑΣ

Προγραμματισμός Ι. Εγγραφές. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Διαδικασιακός Προγραμματισμός

C: Από τη Θεωρία στην Εφαρµογή 2 ο Κεφάλαιο

Διαδικασίες Ι. ΗΥ 134 Εισαγωγή στην Οργάνωση και στον Σχεδιασμό Υπολογιστών Ι. Διάλεξη 4

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΣΠΟΥΔΩΝ ΟΙΚΟΝΟΜΙΑΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ

Αρχιτεκτονική Υπολογιστών

εισαγωγικές έννοιες Παύλος Εφραιμίδης Δομές Δεδομένων και

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΙΑΓΩΝΙΣΜΑ Β

Αρχιτεκτονική Μικροεπεξεργαστών MIPS-32. Αρχείο καταχωρητών και Χάρτης Μνήµης

Υπολογισμός - Συλλογή Δεδομένων - Πίνακες

Διαδικασιακός Προγραμματισμός

ΕΡΓΑΣΤΗΡΙΟ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ Η/Υ

Διαδικασιακός Προγραμματισμός

ΑΝΩΤΑΤΟ ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙ ΕΥΤΙΚΟ Ι ΡΥΜΑ ΣΕΡΡΩΝ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΩΝ ΑΡΧΙΤΕΚΤΟΝΙΚΗ Η/Υ.

Αρχιτεκτονική Υπολογιστών Ι

Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών H/Y Department of Electrical and Computer Engineering. Εργαστήριο 1. Χειμερινό Εξάμηνο

Chapter 2. Εντολές : Η γλώσσα του υπολογιστή. (συνέχεια) Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L.

add $t0,$zero, $zero I_LOOP: beq $t0,$s3, END add $t1, $zero,$zero J_LOOP: sub $t2, $s3, $t0 add $t2, $t2, $s1 int i, j, tmp; int *arr, n;

Θέµατα Φεβρουαρίου

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

Εφαρμοσμένη Πληροφορική ΙΙ (Θ) Είσοδος/Έξοδος Μεταβλητές Τύποι Μεταβλητών Τελεστές και Προτεραιότητα Μετατροπές Μεταξύ Τύπων

Έστω ένας πίνακας με όνομα Α δέκα θέσεων : 1 η 2 η 3 η 4 η 5 η 6 η 7 η 8 η 9 η 10 η

Αρχιτεκτονικές Συνόλου Εντολών (ΙΙ)

Όταν το πρόγραμμα φτάσει σε αυτή την εντολή και ο καταχωρητής PINA έχει την τιμή

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου

Transcript:

Ε Εργαστήριο ή Α Αρχιτεκτονικής ή ΙΙ Εργαστήριο γ Ι: Βασικέςς γνώσεις γ ς Επιμέλεια: ρ. Ν. Σγούρος ρ. Ι. Κονταξάκης

Στόχοι ομή συμβολικού προγράμματος 8086 Υλοποίηση Αλγοριθμικών δομών ( Επιλογή/Επανάληψη ) Ολοκληρωμένα λ παραδείγματα δί

Δομή προγράμματος Ι Τρία κύρια τμήματα Ορισμός μοντέλου τμημάτων μνήμης και σωρού Ορισμός και αρχικοποίηση τιμών μεταβλητών Τμήμα κώδικα Καθορίζονται με ένα σύνολο οδηγιών προς τον συμβολομεταφραστή οι οποίες ξεκινούν με το πρόθεμα τελεία (.) και δεν μεταφράζονται σε κώδικα μηχανής αλλά επηρεάζουν τον κώδικα που παράγει ο συμβολομεταφραστής.

Δομή προγράμματος ΙΙ.model [είδος].stack [μέγεθος μέγεθος] ].exit

Δομή προγράμματος ΙΙΙ.model [είδος].stack [μέγεθος μέγεθος] ].exit

Μοντέλα μνήμης (.model [είδος] είδος]) Είδος εδομένα Κώδικας Tiny Ενιαίο 64KB Small 64KB 64KB Medium 64KB 64KB/Τμήμα Compact 64KB/Τμήμα 64KB Large* οποιοδήποτε οποιοδήποτε Huge* οποιοδήποτε οποιοδήποτε Ενιαίο τμήμα δεδομένων και κώδικα 1 Τμήμα δεδομένων,, 1 Τμήμα κώδικα 1 Τμήμα δεδομένων, >1 Τμήματα κώδικα >1 Τμήματα δεδομένων, 1 Τμήμα κώδικα >1 Τμήματα δεδομένων, >1 Τμήματα κώδικα >1 Τμήματα δεδομένων, >1 Τμήματα κώδικα * Στο μοντέλο Large το μεγαλύτερο μέγεθος μεταβλητής πρέπει να είναι 64KB ενώ στο μοντέλο Huge δεν υπάρχει ο παραπάνω περιορισμός

Δομή προγράμματος ΙV.model small.stack [μέγεθος].exit

Μοντέλα σωρού (.stack) Το μέγεθος του σωρού καθορίζεται με απευθείας τιμή (σε Bytes). Εξ ορισμού το μέγεθος του σωρού είναι 1024 Bytes (δεν αναφέρεται καθόλου το μέγεθος)

Δομή προγράμματος V.model small.stack (ισοδυναμεί δ ί με.stack 1024).exit

Τμ. Δεδομένων - Ορισμός σταθερών Ο ορισμός των σταθερών γίνεται στο τμήμα δεδομένων () Για τον ορισμό μιας σταθεράς χρησιμοποιείται το πρόθεμα equ (equal)

Τμ. Δεδομένων - Ορισμός Μεταβλητών Ο ορισμός των μεταβλητών γίνεται στο τμήμα () Για τις μεταβλητές εκτός από τον ορισμό του τύπου ορίζεται το μέγεθος (π.χ. για πίνακες) και οι ενδεχόμενες αρχικές τιμές Για τις σταθερές ορίζεται η τιμή αντικατάστασης

Τύποι δεδομένων - μεταβλητών Τύπος Λειτουργία db (define byte) Ορίζεται τύπος μεταβλητής με μέγεθος κάθε στοιχείου της μεταβλητής ένα byte dw (define word) dd (define doubleword) Οδηγία Ορίζεται τύπος μεταβλητής με μέγεθος κάθε στοιχείου της μεταβλητής δύο bytes Ορίζεται τύπος μεταβλητής με μέγεθος κάθε στοιχείου της μεταβλητής τέσσερα bytes Λειτουργία dup (duplicate) Καθορισμός πλήθους στοιχείων μεταβλητής dup (?) Ητιμή στην παρένθεση καθορίζει την αρχική τιμή των στοιχείων της μεταβλητής. Όταν η παρένθεση περιέχει το? Η αρχική τιμή των στοιχείων της μεταβλητής είναι αδιάφορη.

Δομή προγράμματος VI.model small.stack len equ 20 var1 1db50d dup (30) var2 db len dup(?).exit

Τμήμα κώδικα () Το Τμήμα αυτό περιέχει τις εντολές του προγράμματος και κλήσεις προς μακροεντολές και διαδικασίες Στην αρχή του κώδικα πραγματοποιείται αρχικοποίηση τμημάτων δεδομένων με αρχικοποίηση του καταχωρητή DS ( ιαδικασία δ ί δύο βημάτων για αποφυγή λάθους!!!) mov AX, @data mov DS,AX ή mov AX, seg [ον. μεταβλ.] mov DS, AX

Δομή προγράμματος VII.model small.stack len equ 20 var1 db 50 dup (30) var2 db len dup(?) mov AX, seg var2 mov DS, AX.exit

Έξοδος στο λειτουργικό σύστημα(.exit) Η συγκεκριμένη οδηγία προς το συμβολομεταφραστή ισοδυναμεί με το τμήμα εντολών:.exit mov AX,4C00h Int 21h δηλαδή με την κλήση της διακοπής λογισμικού που επιστρέφει τον έλεγχο στο Λ.Σ.

Δομή προγράμματος VIII.model small.stack len equ 20 var1 db 50 dup (30) var2 db len dup(?) mov AX, seg var2 mov DS, AX.exit

Βασικές αλγοριθμικές δομές μς

Ακολουθία ΑΡΧΗ a = 10 b = 2 AL = a AH = b AL=AL+AH c= AL.model small.stack a db 10 b db 2 c db? MOV AX, @data MOV DS, AX MOV AL, a MOV AH, b ADD AL, AH ΤΕΛΟΣ MOV c, AL MOV AX, 4C00H INT 21H

Επιλογή Ι ΑΡΧΗ a = 150 AL = a AL > 100 ΝΑΙ AL = AL/2 ΟΧΙ.model small.stack a db 50 c db? MOV AX, @data MOV DS, AX MOV AL, a CMP AL, 100 JBE VAL_to_MEM SHR AL, 1 c = AL VAL_to_MEM: MOV c, AL ΤΕΛΟΣ MOV AX, 4C00H INT 21H

Επιλογή ΙΙ ΑΡΧΗ a = 10 b = 2 AL = a AH = b.model small.stack a db 10 b db 2 c db? MOV AX, @data MOV DS, AX ΝΑΙ AL > AH ΟΧΙ MOV AL, a MOV AH, b c = AH c = AL CMP AL, AH JG CASE2 MOV c, AL JMP TELOS ΤΕΛΟΣ CASE2: MOV c, AH TELOS: MOV AX, 4C00H INT 21H

Επιλογή ΙΙΙ ΝΑΙ ΑΡΧΗ a = 13 AL = a AL <= ΟΧΙ AL <= ΟΧΙ 10 20 ΝΑΙ a db 13 c db?... MOV AL, a CMP AL, 10 JG SEL2 MOV AL, 0 JMP TELOS AL = 0 AL = 10 AL = 20 SEL2: CMP AL, 20 JG SEL3 MOV AL, 10 JMP TELOS c = AL SEL3: MOV AL,20 ΤΕΛΟΣ TELOS: MOV c, AL.exit

Επανάληψη Ι ΑΡΧΗ.model small.stack a db 10 a = 10 MOV AX, @data MOV DS, AX a = a+2 ΝΑΙ a<=100 NEXT: CMP a, 100 JG TELOS ΟΧΙ ADD a, 2 JMP NEXT ΤΕΛΟΣ TELOS: MOV AX, 4C00H INT 21H

Επανάληψη ΙΙ ΑΡΧΗ a = 10.model small.stack a db 10 MOV AX, @data a= a+2 MOV DS, AX ΝΑΙ a<=100 ΟΧΙ ΤΕΛΟΣ NEXT: ADD a, 2 CMP a, 100 JLE NEXT MOV AX, 4C00H INT 21H

Επανάληψη ΙΙΙ ΑΡΧΗ a= 0.model small.stack a db 0 CX = CX-1 CX = 10 MOV AX, @data MOV DS, AX ΝΑΙ a= a+2 CX >0 ΟΧΙ ΤΕΛΟΣ MOV CX, 10 NEXT: ADD a, 2 LOOP NEXT MOV AX, 4C00H INT 21H

Αλγόριθμος Φυσαλίδας

Επανάληψη ΙΙΙ ΑΡΧΗ Α[J 1]<A[J] N I=1.model small loop2: J=5 mov AH,A[di-1] A[di.stack mov BH,A[di] O cmp AH,BH jge nochange A db mov A[di-1],BH 4,5,9,3,1,8 mov A[di],AH temp A[J 1] A[J 1] A[J] N A[J] temp J J 1 J>=I O I I+1 I<=5 N mov AX, seg A mov DS,AX mov si,1 loop1: mov di,5 nochange: dec di cmp di,si jge loop2 inc si cmp si,5 jle loop1.exit 0 O ΤΕΛΟΣ