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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

«ΜΙΚΡΟΫΠΟΛΟΓΙΣΤΕΣ» ΕΣΩΤΕΡΙΚΗ ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΚΑΙ ΛΕΙΤΟΥΡΓΙΕΣ

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

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

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Αρχιτεκτονική-Ι. Ενότητα 4: Το Προγραμματιστικό Μοντέλο του 8086

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

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

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

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

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

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

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

Κεφάλαιο 3 Αρχιτεκτονική Ηλεκτρονικού Τμήματος (hardware) των Υπολογιστικών Συστημάτων ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ

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

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

Μάθημα 5: Χαρακτηριστικά της Κ.Μ.Ε.

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Αρχιτεκτονική-Ι. Ενότητα 1: Εισαγωγή στην Αρχιτεκτονική -Ι

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

1ο ΕΡΓΑΣΤΗΡΙΑΚΟ ΜΑΘΗΜΑ

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

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

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

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

ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών Φροντιστήριο: MIPS assembly

Εισαγωγή στην πληροφορική -4

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

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

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

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

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

1. ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΤΟΥ Μ/Ε ΕΣΩΤΕΡΙΚΟΙ ΚΑΤΑΧΩΡΗΤΕΣ

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

Εντολές γλώσσας μηχανής

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

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

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

Παραδείγματα Assembly (Μέρος

ΠΕΡΙΕΧΟΜΕΝΑ 1. Υπορουτίνες Μαθηµατικών Πράξεων 1.1. Προσηµασµένοι και απροσήµαστοι αριθµοί 1.2. Μετατροπές προσηµασµένων και απροσήµαστων αριθµών

Αριθμητικά Συστήματα

ΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών. Intel x86 ISA. Νίκος Μπέλλας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών ΗΥ

Τέτοιες λειτουργίες γίνονται διαμέσου του

Εργαστήριο ΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ

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

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ. ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ, 5 ο εξάµηνο

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

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

Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L. Hennessy. Chapter 5. Ο επεξεργαστής: διαδρομή δεδομένων και μονάδα ελέγχου

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

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

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

(Ιούνιος 2001 ΤΕΕ Ηµερήσιο) Σε κάθε µία από τις παρακάτω περιπτώσεις, να

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

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

Κεντρική Μονάδα Επεξεργασίας (ΚΜΕ) Τμήματα ΚΜΕ (CPU) Ένα τυπικό υπολογιστικό σύστημα σήμερα. Οργάνωση Υπολογιστών (Ι)

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

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

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

O επεξεργαστής: Η δίοδος δεδομένων (datapath) και η μονάδα ελέγχου (control)

Ποια πρόταση είναι αληθής για τον Μ/Ε 8088: Είναι Μ/Ε 16bit, LSI, 40 pins, 20 γραμμές διευθύνσεων, 8 γραμμές δεδομένων

O επεξεργαστής: Η δίοδος δεδομένων (datapath) και η μονάδα ελέγχου (control)

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

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

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

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

Σελίδα 1 από 12. Απαντήσεις στο φυλλάδιο 55. Ερώτηση 1 η : Ένα υπολογιστικό σύστηµα αποτελείται από:

και η µονάδα ελέγχου (control) O επεξεργαστής: Η δίοδος δεδοµένων (datapath) Εντολές διακλάδωσης (branch beq, bne) I Type Σχεδίαση datapath

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

ΕΡΓΑΣΤΗΡΙΟ ΜΙΚΡΟΫΠΟΛΟΓΙΣΤΩΝ

MIPS Interactive Learning Environment. MILE Simulator. Version 1.0. User's Manual

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

Προηγμένοι Μικροεπεξεργαστές. Εργαστήριο 4 - Editor

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ: ΠΛΗ-21

Προτεινόμενες Λύσεις 1 ης Ενδιάμεσης Εξέτασης στο ΗΜΥ213 & Αποτελέσματα

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

ΨΗΦΙΑΚΑ ΣΥΣΤΗΜΑΤΑ Γ ΕΠΑΛ 14 / 04 / 2019

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

Τρόποι Διευθυνσιοδότησης

ΑΣΚΗΣΕΙΣ ΣΤΑ ΣΥΣΤΗΜΑΤΑ ΑΡΙΘΜΗΣΗΣ (σελ στο ΜΥ1011Χ.pdf)

Οργάνωση Η/Υ. Γιώργος Δημητρίου. Μάθημα 2 ο Σύντομη Επανάληψη. Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής

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

Επεξεργαστής Υλοποίηση ενός κύκλου μηχανής

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

Transcript:

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

Στον debugger που χρησιμοποιούμε στο εργαστήριο, όταν γράφουμε δεκαεξαδικούς αριθμούς που το πιο σημαντικό ψηφίο τους είναι Α-F βάζουμε μπροστά από τον αριθμό το 0. Αλλιώς εμφανίζεται μήνυμα μ λάθους. Να βάζετε στο πρόγραμμα σας που και που εντολές NOP (δεν έχουν καμία επίδραση στην εκτέλεση του κώδικα) ώστε σε περίπτωση που θέλετε να προσθέσετε ή να αλλάξετε εντολές να μη χρειάζεται να ξαναγράφετε όλες τις εντολές από εκεί που προσθέσατε/αλλάξατε και κάτω.

NOP No operands No Operation. Algorithm: Do nothing Example: MOVBX65 BX,65 NOP NOP NOP MOV AX, 7

ADD REG, memory Add. memory, REG REG, REG memory, immediate REG, immediate Algorithm: operand1 = operand1 + operand2 Example: MOV AL, 5 ; AL = 5 ADD AL, -3 ; AL = 2

Αριθμός των 16bits που βρίσκεται στις θέσεις μνήμης (στο τμήμα δεδομένων) 00 και 01 (πιο σημαντικό byte στη θέση 1), να προστεθεί στον αριθμό 16bits που βρίσκεται στις θέσεις μνήμης 02 και 03 (πιο σημαντικό byte στη θέση 3) και το αποτέλεσμα (χωρίς το πιθανό κρατούμενο) να αποθηκευθεί στις θέσεις μνήμης 04 & 05 (πιο σημαντικό byte στη θέση 5). Να παρατηρηθεί η σημαία κρατουμένου μετά την πράξη της πρόσθεσης. Παρατηρείστε ότι οι σημαίες δεν αλλάζουν μετά την εκτέλεση της εντολής mov. Mov ax, [0000] Mov bx, [0002] Add ax,bx Mov [0004], ax

Μέχρι τώρα έχουμε δει 2 τρόπους για αναφορά στη μνήμη Άμεση immediate: Τα δεδομένα παρέχονται άμεσα από την εντολή και μπορεί να είναι των 8 ή 16 bit. Mov ax, 568 Απ ευθείας direct: Το 16-bit offset της διεύθυνσης παρέχεται άμεσα από την εντολή Mov ax, [1000H] Ένας πρόσθετος τρόπος αναφοράς στη μνήμη είναι ο παρακάτω: Έμμεση με τη χρήση καταχωρητή - Register indirect: Tο 16-bit offset βρίσκεται σε κάποιον καταχωρητή βάσης ή δείκτη ο οποίος δηλώνεται ρητά στην εντολή. Συνήθως θα χρησιμοποιούμε τον καταχωρητή βάσης BX Mov ds:[bx], 800h ; DS:[BX] <- 00H, DS:[BX+1] <- 08H Mov cx, ds:[bx]

INC REG Increment. memory Algorithm: operand = operand + 1 Example: MOV AL, 4 INC AL ; AL = 5 Except for the carry flag, inc sets the flags the same way as add operand, 1 would

DEC REG Decrement. memory Algorithm: operand = operand - 1 Example: MOV AL, 255 ; AL = 0FFh (255 or -1) DEC AL ; AL = 0FEh (254 or -2)

Να γραφτεί το προηγούμενο ο Πρόγραμμα 1 χρησιμοποιώντας ο αναφορά στη μνήμη «έμμεση μέσω καταχωρητή». Πχ. να θεωρήσετε ότι ο καταχωρητής BX κρατάει το offset της διεύθυνσης που θέλετε να προσπελάσετε στο τμήμα δεδομένων (DS: data segment). Mov bx, 0 Mov ax, ds:[bx] Inc bx Inc bx Mov cx, ds:[bx] Add ax,cx Inc bx Inc bx Mov ds:[bx], ax

ADC REG, memory Add with Carry. memory, REG REG, REG memory, immediate REG, immediate Algorithm: operand1 = operand1 + operand2 + CF Example: STC ; set CF = 1 ; Alternatively, other set of instructions can be used to set the CF MOV AL, 5 ; AL = 5 ADC AL, 1 ; AL = 7

Προσαρμόστε το Πρόγραμμα 1 ώστε το κρατούμενο (0 ή 1) πού προκύπτει από την πρόσθεση των 2 αριθμών των 16bits να αποθηκεύεται στη θέση μνήμης 06 και ο αριθμός στις θέσεις μνήμης 04 και 05. Mov ax, [0000] Mov bx,,[0002] Add ax,bx ; Το κρατούμενο αποθηκεύεται στο Carry flag Mov [0004], ax ; Αποθήκευση του αριθμού στις θέσεις 4 & 5 Mov cx,0 ; Προετοιμασία ώστε ο cx (μπορεί εναλλακτικά να χρησιμοποιηθεί ο cl ή ch) να πάρει την τιμή του κρατουμένου Adc cx,0 ; Πρόσθεση μόνο του κρατουμένου στον cx Mov [06],cl ; Αποθήκευση κρατουμένου στη θέση μνήμης 6

Να προστεθούν 2 αριθμοί των 32bits που βρίσκονται στις θέσεις μνήμης 0-3 (πιο σημαντικό byte στη θέση 3 και λιγότερο σημαντικό στη θέση 0) και 4-7( (πιο σημαντικό byte στη θέση 7 και λιγότερο σημαντικό στη θέση 4) και το αποτέλεσμα να αποθηκευτεί στις θέσεις μνήμης 8-12. Στη θέση 12 να αποθηκευτεί το κρατούμενο και ο υπόλοιπος αριθμός στις θέσεις 8-11 (πιο σημαντικό byte στη θέση 11 και λιγότερο σημαντικό στη θέση 8). Mov ax, [0000] ; ax = [01][00] Mov bx, [0004] ; bx = [05][04] Add ax,bx ; Το κρατούμενο αποθηκεύεται στο Carry flag Mov [0008], ax ; Αποθήκευση του αριθμού στις θέσεις 8& 9 Mov ax, [0002] ; ax = [03][02] Mov bx, [0006] ; bx = [07][06] Adc ax,bx ; Πρόσθεση και παλαιού κρατουμένου - Το νέο κρατούμενο αποθηκεύεται στο Carry flag Mov [000Α], ax ; Αποθήκευση του αριθμού στις θέσεις 10 & 11 Mov cl,0 ; Προετοιμασία ώστε ο cl να πάρει την τιμή του κρατουμένου Adc cl,0 ; Πρόσθεση μόνο του κρατουμένου στον cl Mov [000C],cl ; Αποθήκευση κρατουμένου στη θέση μνήμης 12

SUB REG, memory Subtract. t memory, REG REG, REG Algorithm: memory, immediate REG, immediate operand1 = operand1 - operand2 Example: Sub al, 14H

Να γραφτεί πρόγραμμα που να αφαιρεί τον αριθμό 5 από τις θέσεις μνήμης 0,1,2,3 Mov al,[0] Sub al, 5 Mov [0],al Mov al,[1] Sub al, 5 Mov [1],al Mov al,[2] Sub al, 5 Mov [2],al Mov al,[3] Sub al, 5 Mov [3],al

Να γραφτεί πρόγραμμα που να αφαιρεί διαδοχικα τους αριθμούς 21,27,47,32 από τις θέσεις μνήμης 0,1,2,3 (στις θέσεις βάζω το 32). Mov al,[0] Sub al, 21 Mov [0],al Mov al,[1] Sub al, 27 Mov [1],al Mov al,[2] Sub al, 47 Mov [2],al Mov al,[3] Sub al, 32 Mov [3],al

Το προηγούμενο Πρόγραμμα 5 χρησιμοποιώντας λιγότερες εντολές μεταφοράς από και προς τη μνήμη: Mov ax,[0] Sub al, 5 Sub ah, 5 Mov [0],ax Mov ax,[2] Sub al, 5 Sub ah, 5 Mov [2],ax

XCHG REG, memory memory, REG REG, REG Exchange values of two operands. Algorithm: operand1 < - > operand2 Example: p Xchg bx,ax

Ανταλλάξτε τα περιεχόμενα των θέσεων μνήμης 0 & 1 με τα περιεχόμενα των θέσεων μνήμης 2 & 3. Mov ax, [0] Xchg [2], ax Mov [0],ax

Εύρεση τετραγώνου ενός αριθμού με χρήση πίνακα. Υποθέστε ότι τα τετράγωνα των αριθμών 0 4 είναι αποθηκευμένα στις θέσεις μνήμης ds:0010 ds:0014 (με αντίστοιχες τιμές 0, 1, 4, 9, 16d). Να βρεθεί το τετράγωνο του αριθμού που είναι αποθηκευμένος στη θέση μνήμης ds:0000 και να αποθηκευθεί στη θέση μνήμης ds:0001. Υπόδειξη: Να χρησιμοποιηθεί σαν δείκτης ο καταχωρητής BX Mov bl, [0] ; Φόρτωμα του καταχωρητή με τον αριθμό Mov bh, 0 ; Μηδενισμός για να φτιαχτεί η τιμή του BX Add bx, 10 ; Δημιουργία κατάλληλου offset Mov ax, ds:[bx] Mov [1], al