Φύλλο εργασίας 2 - Assembly 8086
- Αναπαράσταση αριθμών.
- Αποθήκευση αριθμών στη μνήμη.
- Εντολές πρόσθεσης
Εργασία 1
Γράψτε στον emulator ένα πρόγραμμα που να προσθέτει δύο μη προσημασμένους αριθμούς των 8 bit που θα είναι περιεχόμενα των θέσεων μνήμης 0400h και 04001h και θα αποθηκεύονται στην διεύθυνση μνήμης 0402h:
- Η εκτέλεση του προγράμματος να γίνει και για τις τρείς περιπτώσεις του πίνακα. Επίσης να συμπληρωθεί ο πίνακας ανάλογα.
- Όταν υπάρχει κρατούμενο στην θέση 0402h έχουμε το σωστό αποτέλεσμα ;
0400h
|
0401h
|
0402h
|
|
Hex
|
Dec
|
Hex
|
Dec
|
Αποτέλεσμα
Πρόσθεσης
Dec
|
Αποτέλεσμα
Εργασίας
Dec
|
Αποτέλεσμα
Εργασίας
Hex
|
Σωστό Ναι/Όχι
|
Κρατούμενο Ναι/Όχι
|
84h
|
132
|
93
|
147
|
279
|
|
|
|
|
2Ah
|
42
|
1F
|
31
|
73
|
|
|
|
|
C8h
|
200
|
38h
|
56
|
256
|
|
|
|
|
Εργασία 2
Γράψτε στον emulator ένα πρόγραμμα που να προσθέτει δύο προσημασμένους αριθμούς των 8 bit που θα είναι περιεχόμενα των θέσεων μνήμης 0400h και 04001h και θα αποθηκεύονται στην διεύθυνση μνήμης 0402h:
- Η εκτέλεση του προγράμματος να γίνει και για τις περιπτώσεις του πίνακα. Επίσης να συμπληρωθεί ο πίνακας ανάλογα.
- Ποια αποτελέσματα στην διεύθυνση 0402h είναι σωστά και γιατί ;
0400h
|
0401h
|
0402h
|
|
Hex
|
Dec
|
Hex
|
Dec
|
Αποτέλεσμα
Πρόσθεσης
Dec
|
Αποτέλεσμα
Εργασίας
Dec
|
Αποτέλεσμα
Εργασίας
Hex
|
Σωστό Ναι/Όχι
|
Overflow
Υπερχείλιση
Ναι/Όχι
|
67h
|
+103
|
5Dh
|
+93
|
+196
|
|
|
|
|
82h
|
+130
|
5h
|
+5
|
+135
|
|
|
|
|
25h
|
+37
|
FBh
|
-5
|
+32
|
|
|
|
|
A4h
|
-92
|
C2h
|
-62
|
-154
|
|
|
|
|
Εργασία 3
Γράψτε στον emulator ένα πρόγραμμα που να προσθέτει δύο προσημασμένους αριθμούς των16 bit που θα είναι περιεχόμενα των θέσεων μνήμης, ο πρώτος στις διευθύνσεις 0400h ( χαμηλής τάξης Byte) , 0401h (υψηλής τάξης Byte), ο δεύτερος στις διευθύνσεις 0402h ( χαμηλής τάξης Byte) , 0403h (υψηλής τάξης Byte) και θα αποθηκεύονται το αποτελέσματα στις θέσεις μνήμης 0404h ( χαμηλής τάξης Byte) , 0405h (υψηλής τάξης Byte)
- Η εκτέλεση του προγράμματος να γίνει για όλες τις περιπτώσεις του πίνακα. Επίσης να συμπληρωθεί ο πίνακας ανάλογα.
- Ποια αποτελέσματα είναι σωστά και γιατί ;
Χαμηλής
Τάξης Byte
0400h
|
Υψηλής
Τάξης Byte
0401h
|
Χαμηλής
Τάξης Byte
0402h
|
Υψηλής
Τάξης Byte
0403h
|
Χαμηλής
Τάξης Byte
0404h
|
Υψηλής
Τάξης Byte
0405h
|
Overflow
Υπερχείλιση
Ναι/Όχι
|
24
|
63
|
40
|
AB
|
64
|
0E
|
|
84
|
C7
|
F1
|
B4
|
75
|
7C
|
|
- 6324 C784
+ AB40 +B4F1
______ ______
0E64 7C75
Εργασία 4
Γράψτε στον emulator ένα πρόγραμμα που να προσθέτει δύο προσημασμένους αριθμούς των32 bit που θα είναι περιεχόμενα των θέσεων μνήμης, ο πρώτος στις διευθύνσεις 0400h έως 0403h ο δεύτερος στις διευθύνσεις 0404h έως 0407h και θα αποθηκεύεται το αποτελέσματα στις θέσεις μνήμης 0408h έως 040Bh.
- Η εκτέλεση του προγράμματος να γίνει για όλες τις περιπτώσεις του πίνακα. Επίσης να συμπληρωθεί ο πίνακας ανάλογα.
- Ποια αποτελέσματα είναι σωστά και γιατί ;
Αριθμός 1
0400h έως 0403h
|
Αριθμός 2
0404 έως 0407
|
Αποτέλεσμα Πρόσθεσης
0408 … 040B
|
Overflow
Υπερχείλιση
Ναι/Όχι
|
11111111
|
23232323
|
|
|
6FFFFFFF
|
00000002
|
|
|