Εργαστήριο Αρχιτεκτονική Υπολογιστών ΙΙ ΤΡΑΠΕΖΑ ΘΕΜΑΤΩΝ

Εργαστήριο Αρχιτεκτονική Υπολογιστών ΙΙ
ΤΡΑΠΕΖΑ ΘΕΜΑΤΩΝ
Άσκηση 1
Γράψτε το περιεχόμενο του καταχωρητή στο δυαδικό (συμπληρώστε με μηδενικά όπου
είναι απαραίτητο) μετά την εκτέλεση της εντολής MOV AX,AM
ΑΗ=
Άσκηση 2
ΑL=
Ποια θα είναι η νέα τιμή του DX (δεκαδικό) ?
MOV DX,(AM+1000)10
MOV DH,0
Άσκηση 3
Ένα σύστημα διαχειρίζεται μνήμη με το μοντέλο Segment:Offset με Εύρος Segment: [0,
(AM+10)10] και Εύρος Offset: [0,ΑΜ10]
Πόσες είναι οι συνολικές θέσεις μνήμης = ?
Άσκηση 4
Διορθώστε πιθανό σφάλμα στο ακόλουθο πρόγραμμα και εξηγείστε τη λειτουργία του
mov BH,1
a:
cmp
BH,10
jle L2
jmp L3
L2:
jmp a
L3:
Άσκηση 5
Δίνεται το ακόλουθο πρόγραμμα:
mov ax,1
mov bx,1
a:
εντολή-1
εντολή-2
εντολή-3
jle a
Διορθώστε πιθανό σφάλμα του προγράμματος και συμπληρώστε τις κατάλληλες εντολές
ώστε να γίνεται υπολογισμός:
S=1+3+5+7+9
Δρ. Παναγιώτης Παπάζογλου, Επίκουρος Καθηγητής
Άσκηση 6
Δίνεται το ακόλουθο πρόγραμμα:
;AL=κώδικας
ASCII
χαρακτήρα
που
πληκτρολόγιο στο διάστημα ['b','z']
mov DL,AL
sub DL,1
;Αποθήκευση του DL στον πίνακα
διαβάστηκε
από
το
Ο κώδικας επαναλαμβάνεται ώστε να γίνεται ανάγνωση ενός κειμένου 9 χαρακτήρων το
οποίο αποθηκεύεται σε πίνακα.
Ποιο είναι το τελικό κείμενο που θα αποθηκευτεί στον πίνακα Αν έχει διαβαστεί το
κείμενο hellogood ?
Άσκηση 7
Δίνεται το ακόλουθο πρόγραμμα:
PUSH AX
PUSB BX
POP AX
POP BX
Γράψτε το αντίστοιχο πρόγραμμα Assembly χωρίς τη χρήση των εντολών PUSH/POP
Άσκηση 8
Δίνεται ο ακόλουθος κώδικας VHDL:
Process
A<=M; B<=N; D<=R;
C<=A;
A<=N;
A<=R
End Process
Ποια θα είναι η τιμή των σημάτων μετά την έξοδο από το Process ?
Άσκηση 9
Έστω process οργανωμένα ως εξής:
Ομάδα 1 : proc1, proc2, proc3
Ομάδα 2 : proc4
Ομάδα 3 : proc5, proc6, proc7
Γράψτε τη γενική μορφή του κώδικα VHDL ώστε τα process να ενεργοποιούνται με τη
σειρά: Ομάδα 1, Ομάδα 2, Ομάδα 3.
Δρ. Παναγιώτης Παπάζογλου, Επίκουρος Καθηγητής
Άσκηση 10 Το ακόλουθο πρόγραμμα διαβάζει ένα χαρακτήρα από πληκτρολόγιο
mov ah,1
int 21h
mov dl,al
sub dl,30h
Να συμπληρωθεί ο κώδικας ώστε το πρόγραμμα να υπολογίζει τον κύβο του αριθμού που
εισάγεται. Θα πρέπει αρχικά να γίνει έλεγχος αν ο χαρακτήρας που έχει διαβαστεί
αντιστοιχεί σε ψηφίο του δεκαδικού συστήματος.
Άσκηση 11 Το ακόλουθο πρόγραμμα διαβάζει ένα χαρακτήρα από πληκτρολόγιο
mov ah,1
int 21h
mov dl,al
sub dl,30h
Αν το ψηφίο ανήκει στο δεκαδικό σύστημα θα εμφανίζεται ένας αστερίσκος και αν ανήκει
στο δεκαεξαδικό θα εμφανίζεται ο χαρακτήρας “F”.
Άσκηση 12 Το ακόλουθο πρόγραμμα διαβάζει ένα χαρακτήρα από πληκτρολόγιο
mov ah,1
int 21h
mov dl,al
sub dl,30h
Να γίνουν οι κατάλληλες τροποποιήσεις και προσθήκες ώστε το πρόγραμμα να διαβάζει
δύο ψηφία και να υπολογίζει την τελική αξία του αριθμού.
Άσκηση 13 Το ακόλουθο πρόγραμμα εμφανίζει το μήνυμα “hello” 10 φορές
mov cx,0010
start:
#εκτύπωσε “hello”
loop start
Να υλοποιηθεί πρόγραμμα που να εμφανίζει επίσης το μήνυμα “hello” αλλά χωρίς τη
χρήση της εντολής loop.
Άσκηση 14 Να γραφεί πρόγραμμα με δύο φωλιασμένους βρόχους ώστε το πλήθος των επαναλήψεων
να είναι ίσο με το ΑΜ σας.
Δρ. Παναγιώτης Παπάζογλου, Επίκουρος Καθηγητής
Άσκηση 15 Να υλοποιηθεί σε INTEL Assembly ο ακόλουθος ψευδοκώδικας:
Sum=0
I=1
Επανέλαβε
Sum=Sum+I
I=I+1
Όσο Ι<=5
Άσκηση 16 Να σχεδιαστεί ψευδοκώδικας ή διάγραμμα ροής για το ακόλουθο πρόγραμμα:
mov BH,1
start:
cmp BH,10
jle L2
jmp L3
L2:
; εντολές
inc bh
jmp start
L3:
Άσκηση 17 Να αναπτυχθεί πρόγραμμα που να υπολογίζει το 13+23+33+...+103
Άσκηση 18 Δίνεται το ακόλουθο πρόγραμμα:
mov CX,...........
..................
Again:
mov AH,09h
int 21h
..................
..................
exit:
mov
int
mes1
mes2
mes3
mes4
mes5
ax,4C00h
21h
DB
DB
DB
DB
DB
'TEI of Lamia
',0ah,0dh,'$'
'Dept. of Informatics',0ah,0dh,'$'
'& Computer
',0ah,0dh,'$'
'Technology
',0ah,0dh,'$'
'Lamia, Greece
',0ah,0dh,'$'
Να συμπληρωθούν οι κατάλληλες εντολές ώστε να εμφανιστούν στην οθόνη τα ακόλουθα
μηνύματα (με τη συγκεκριμένη σειρά):
Δρ. Παναγιώτης Παπάζογλου, Επίκουρος Καθηγητής
TEI of Lamia
Dept. of Informatics
& Computer
Technology
Lamia, Greece
Σημείωση: η κλήση της συνάρτησης εμφάνισης θα αναγράφεται μόνο μια φορά στο
πρόγραμμα.
Άσκηση 19 Σε ένα πρόγραμμα Assembly έχουν δηλωθεί τρεις πίνακες ως εξής:
pinakasA db 1, 9, 12, 2
pinakasB db 3, 1, 9, 7
pinakasC db ?, ?, ?, ?
Συμπληρώστε τα κατάλληλα ορίσματα και εντολές ώστε κάθε στοιχείο του τρίτου πίνακα
να αποτελεί το άθροισμα των αντίστοιχων στοιχείων από τους δύο πρώτους πίνακες.
mov SI, ...............................
mov BX, .............................
mov DI, ..............................
mov CX, ............................
start:
mov AL, [........]
add .....................................
mov [..................], AL
inc ......................
............................
............................
loop start
exit:
mov AX,4c00h
int 21h
pinakasA db 1, 9, 12, 2
pinakasB db 3, 1, 9, 7
pinakasC db ?, ?, ?, ?
Δρ. Παναγιώτης Παπάζογλου, Επίκουρος Καθηγητής
Άσκηση 20 Η συνάρτηση 1 της ομάδας 21h διαβάζει ένα χαρακτήρα από το πληκτρολόγιο. Να
αναπτυχθεί πρόγραμμα που να υπολογίζει το άθροισμα 1+2+...+Ν, όπου Ν εισάγεται από
το πληκτρολόγιο και είναι μονοψήφιος αριθμός.
Άσκηση 21 Η συνάρτηση 2ah της ομάδας 21h διαβάζει την ημερομηνία του συστήματος (RTC) και
επιστρέφει:
AL=ημέρα της εβδομάδας (0=Κυριακή)
CX=έτος (1980-2099)
DH=μήνας (1-12)
DL=ημέρα (1-31)
Θεωρήστε ότι έχει γίνει ήδη η κλήση της. Αναπτύξτε πρόγραμμα που να ελέγχει αν
βρισκόμαστε στην ημερομηνία 1 Νοεμβρίου και να εμφανίζει σχετικό μήνυμα.
Άσκηση 22 Η συνάρτηση 2ah της ομάδας 21h διαβάζει την ημερομηνία του συστήματος (RTC) και
επιστρέφει:
AL=ημέρα της εβδομάδας (0=Κυριακή)
CX=έτος (1980-2099)
DH=μήνας (1-12)
DL=ημέρα (1-31)
Θεωρήστε ότι έχει γίνει ήδη η κλήση της. Αναπτύξτε πρόγραμμα που να ελέγχει αν
βρισκόμαστε στο πρώτο εξάμηνο του έτους και να εμφανίζει σχετικό μήνυμα.
Άσκηση 23 Να σχεδιαστεί ψευδοκώδικας ή διάγραμμα ροής για το ακόλουθο πρόγραμμα:
cmp BH,0
jg L1
jl L2
; Ομάδα εντολών #1
jmp L3
L1:
; Ομάδα εντολών #2
jmp L3
L2:
; Ομάδα εντολών #3
L3:
Δρ. Παναγιώτης Παπάζογλου, Επίκουρος Καθηγητής
Άσκηση 24 Να συμπληρωθεί ο ακόλουθος κώδικας VHDL ώστε να γίνεται υλοποίηση ενός D FlipFlop με ασύγχρονο Reset.
Entity DFFR is
port (D, Clock, Reset : in bit;
Q : out bit);
End DFFR;
Architecture ARDFFR of DFFR is
begin
process (........................................)
begin
.................................
.................................
.................................
.................................
end process;
End ARDFFR;
Άσκηση 25 Να συμπληρωθεί ο ακόλουθος κώδικας VHDL ώστε να γίνεται υλοποίηση ενός
καταχωρητή 8 bit.
Entity Register8bit is
port(D: .................................
Clock: .............................
Q: .................................);
End Register8bit;
Architecture Ar8 of Register8bit is
begin
process (..........................)
begin
if .................................. then
Q <= D;
end if;
end process;
End Ar8;
Δρ. Παναγιώτης Παπάζογλου, Επίκουρος Καθηγητής
Άσκηση 26 Να συμπληρωθεί ο ακόλουθος κώδικας VHDL ώστε να γίνεται υλοποίηση ενός D FlipFlop με σύγχρονο Reset.
Entity DFFR is
port (D, Clock, Reset : in bit;
Q : out bit);
End DFFR;
Architecture ARDFFR of DFFR is
begin
process (........................................)
begin
.................................
.................................
.................................
.................................
end process;
End ARDFFR;
Άσκηση 27 Να συμπληρωθεί ο ακόλουθος κώδικας VHDL ώστε να γίνεται υλοποίηση ενός πλήρη
αθροιστή
Entity fulladder1 is
port (
..................................
..................................
);
End fulladder1;
Architecture fua of fulladder1 is
begin
.................................
.................................
.................................
.................................
End fua;
Δρ. Παναγιώτης Παπάζογλου, Επίκουρος Καθηγητής
Άσκηση 28 Να συμπληρωθεί ο ακόλουθος κώδικας VHDL ώστε να γίνεται υλοποίηση ενός D FlipFlop με σύγχρονο Clear και ασύγχρονο Preset.
Entity DFFR is
port (D, Clock, Clear, Preset : in bit;
Q : out bit);
End DFFR;
Architecture ARDFFR of DFFR is
begin
process (........................................)
begin
.................................
.................................
.................................
.................................
end process;
End ARDFFR;
Άσκηση 29 Να συμπληρωθεί ο ακόλουθος κώδικας VHDL ώστε να γίνεται υλοποίηση ενός D FlipFlop με ασύγχρονο Clear και σύγχρονο Preset.
Entity DFFR is
port (D, Clock, Clear, Preset : in bit;
Q : out bit);
End DFFR;
Architecture ARDFFR of DFFR is
begin
process (........................................)
begin
.................................
.................................
.................................
.................................
end process;
End ARDFFR;
Δρ. Παναγιώτης Παπάζογλου, Επίκουρος Καθηγητής
Άσκηση 30 Να συμπληρωθεί ο ακόλουθος κώδικας VHDL ώστε να γίνεται υλοποίηση ενός D FlipFlop με ασύγχρονο Clear και ασύγχρονο Preset. Όταν θα είναι και τα δύο σήματα
ενεργοποιημένα (Clear, Preset), η έξοδος Q θα είναι το συμπλήρωμα της εισόδου D.
Entity DFFR is
port (D, Clock, Clear, Preset : in bit;
Q : out bit);
End DFFR;
Architecture ARDFFR of DFFR is
begin
process (........................................)
begin
.................................
.................................
.................................
.................................
end process;
End ARDFFR;
Άσκηση 31 Να γίνουν οι κατάλληλες αλλαγές στο πρόγραμμα VHDL ώστε τα δύο process να
εκτελούνται ακολουθιακά.
Architecture ARC of testEntity is
begin
A: process
begin
s <= a xor b;
end process A;
B: process
begin
c <= a and b;
end process B;
End ARC;
Άσκηση 32 Το ακόλουθο process εκτελείται με την ενεργοποίηση κάποιου από τα δύο σήματα στη
λίστα ενεργοποίησης. Γράψτε την αντίστοιχη υλοποίηση με χρήση ενεργοποίησης τύπου
wait.
Architecture ARC of testEntity is
begin
A: process (a,b)
begin
s <= a xor b;
end process A;
End ARC;
Δρ. Παναγιώτης Παπάζογλου, Επίκουρος Καθηγητής
Άσκηση 33 Δείξτε πως τρία process μπορούν να εκτελεστούν ακολουθιακά.
Άσκηση 34 Γράψτε κώδικα VHDL που να περιέχει τρία process με το τρίτο να εκτελείται μόνο αν το
επιτρέψουν τα πρώτα δύο.
Άσκηση 35 Έστω ότι σε ένα πρόγραμμα Assembly έχουν δηλωθεί τα ακόλουθα μηνύματα:
mes1
mes2
mes3
mes4
mes5
mes6
DB
DB
DB
DB
DB
DB
'message1',
'message2',
'message3',
'message4',
'message5',
'message6',
0ah,
0ah,
0ah,
0ah,
0ah,
0ah,
odh,
odh,
odh,
odh,
odh,
odh,
'$'
'$'
'$'
'$'
'$'
'$'
Η συνάρτηση 09 της ομάδας 21h εμφανίζει μήνυμα ξεκινώντας από τη διεύθυνση που
δείχνει ο καταχωρητής DX. Γράψτε κατάλληλο πρόγραμμα το οποίο να εμφανίζει τα
μηνύματα ως εξής:
message1
message2
message3
message4
message5
message6
Η αναγραφή για την κλήση της συνάρτησης εμφάνισης (συνάρτηση 09) θα γίνεται μόνο
μια φορά στο πρόγραμμα.
Άσκηση 36 Δίνεται το ακόλουθο πρόγραμμα:
PUSH AX
PUSB BX
POP AX
POP BX
PUSH CX
Με δεδομένα τα αρχικά περιεχόμενα (πριν την εκτέλεση του προγράμματος) των
καταχωρητών AX=0FAB, BX=0100, CX=34FF, γράψτε τα νέα τους περιεχόμενα μετά
την εκτέλεση του παραπάνω προγράμματος.
ΑΧ=
ΒΧ=
Άσκηση 37 Δίνεται το ακόλουθο πρόγραμμα:
DEC AX
PUSH AX
PUSB BX
DEC BX
MOV CX,0ffffh
Δρ. Παναγιώτης Παπάζογλου, Επίκουρος Καθηγητής
CX=
POP AX
PUSH CX
POP BX
Με δεδομένα τα αρχικά περιεχόμενα (πριν την εκτέλεση του προγράμματος) των
καταχωρητών AX=0FAB, BX=0100, CX=34FF, γράψτε τα νέα τους περιεχόμενα μετά
την εκτέλεση του παραπάνω προγράμματος.
AX=
BX=
CX=
Άσκηση 38 Δίνεται το ακόλουθο πρόγραμμα:
DEC AX
PUSH AX
start:
PUSB BX
DEC BX
loop start
POP AX
PUSH CX
POP BX
Με δεδομένα τα αρχικά περιεχόμενα (πριν την εκτέλεση του προγράμματος) των
καταχωρητών AX=0FAB, BX=0100, CX=0002, γράψτε τα νέα τους περιεχόμενα μετά
την εκτέλεση του παραπάνω προγράμματος.
AX=
BX=
CX=
Άσκηση 39 Δίνεται το ακόλουθο πρόγραμμα Assembly:
mov BH,-5
again:
mov AX,000
.........................
mul AL
mov CL,AL
cmp CL,0
jz L1
dec CL
again2:
#εκτύπωση κενών
.........................
Να συμπληρωθεί το πρόγραμμα με τις κατάλληλες εντολές ώστε να εκτυπώνεται η
γραφική παράσταση της συνάρτησης f(x)=x2
Δρ. Παναγιώτης Παπάζογλου, Επίκουρος Καθηγητής
Άσκηση 40 Να γραφεί πρόγραμμα VHDL (τμήμα Entity και Architecture) που να υλοποιεί ένα ημιαθροιστή.
Δρ. Παναγιώτης Παπάζογλου, Επίκουρος Καθηγητής