Kovix.gr

  • Nikoleta Kova Greece
  • emu8086
  • mediagallery
  • moodle2

Assembly 8086

Φύλλο εργασίας 1

Φύλλο εργασίας 1


Για την συγγραφή των προγραμμάτων του επεξεργαστή 8086, έχει χρησιμοποιηθεί το πρόγραμμα εξομοίωσης Emu8086, που μπορείτε να το βρείτε στην σελίδα http://www.emu8086.com/


 

  • Ο επεξεργαστής 8086, βασικοί καταχωρητές
  • Εκμάθηση του εξομοιωτή “emu8086”
  • 1η άσκηση (απόδοση τιμής σε καταχωρητές και μνήμη )

Βασικό περιβάλλον emulator 8086 :

f1 1

Για να εκτελέσουμε τον κώδικα πατάμε το κουμπί emulate, και εφόσον δεν έχουμε λάθος στον κώδικα βλέπουμε το παρακάτω παράθυρο

f1 2

Παρακάτω βλέπουμε βασικές λειτουργίες του παραθύρου view

f1 3

  • Γράψτε στον emulator το παρακάτω πρόγραμμα :

;Το πρώτο μας πρόγραμμα στον emulator 8086

;Με ελληνικό ερωτηματικό βάζουμε σχόλια ο emulator τα αγνοεί

Org 100h

MOV AX,1024

MOV BX,AX

MOV [0400h],BX

MOV CX,[0400h]

MOV [0402h],0FFh

INT 20h ; Με την εντολή αυτή θα τελειώνουμε τα προγράμματά μας

  • Διορθώστε, αν υπάρχουν λάθη
  • Δείτε το πρόγραμμα να τρέχει βήμα-βήμα πατώντας “single step” παρατηρήστε τις τιμές στους καταχωρητές και στην μνήμη σε κάθε βήμα.
  • Από το παράθυρο με τους καταχωρητές (registers) αλλάξτε τις τιμές του AX,BX,CX σε 0001,0002,0003 αντίστοιχα.
  • Βάλτε στις θέσεις μνήμης 0400h έως και 0402h τις τιμές 50d,51d,52d σε δεκαεξαδικές τιμές


 

Φύλλο εργασίας 2


Φύλλο εργασίας 2


  • Αναπαράσταση αριθμών.
  • Αποθήκευση αριθμών στη μνήμη.
  • Εντολές πρόσθεσης

Εργασία 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

  1.    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