Φύλλο εργασίας 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 |
|||||
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 |
|||||
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 |
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 |