freestuff.gr αρχική σελίδα
 FAQFAQ    ΑναζήτησηΑναζήτηση   Λίστα ΜελώνΛίστα Μελών   Ομάδες ΜελώνΟμάδες Μελών   <b>Εγγραφή Μέλους</b>Εγγραφή Μέλους 
 ΠροφίλΠροφίλ   Επιλογές μέλους Επιλογές   Τα bookmarks μου Τα bookmarks μου   Προσωπικά μηνύματαΠροσωπικά μηνύματα 
  διαφήμιση  

Καλώς ήρθατε στο forum μας! Για να συμμετάσχετε στις συζητήσεις θα πρέπει να είσαστε μέλος. Γίνετε μέλος τώρα!.
 

Emu 8086 βοήθεια σε πρόγραμμα!


 Forum index » Δημιουργία Web Sites, Γραφικών & Προγραμματισμός » Γλώσσες Προγραμματισμού » Assembly
Moderators:  Super-Moderators, WebDev Moderators
Εισαγωγή νέου Θέματος   Απάντηση στο Θέμα Σελίδα 1 από 1 [9 Μηνύματα]      Bookmarks Tags: Πρόγραμμα Mark the topic unread :: Προηγούμενο θέμα :: Επόμενο θέμα
ΑποστολέαςΜήνυμα
kotsos13


Μέλος από: 15 Μαρ 2012
Μηνύματα: 5

View users profile
ΜήνυμαΣτις: 29 Μαη 2012 16:09    Θέμα: Emu 8086 βοήθεια σε πρόγραμμα! Απάντηση με παράθεση  Mark this post and the followings unread

Προσπαθώ να δω το αποτέλεσμα απο τον παρακάτω κώδικα στον emu 8086!

κώδικας:

#make_bin#

mov ax,[0200h]
mov bx,[0202h]
add ax,bx
mov [0204h],ax

hlt


Όταν όμως κάνω emulate και δίνω τιμές στον ΑΧ και στον ΒΧ δεν πηγαίνει στις σωστές διευθύνσεις!Τί κάνω λάθος?
http://tinypic.com/view.php?pic=25ztjtf&s=6
http://tinypic.com/view.php?pic=2wn798j&s=6
LightForce
WebDev Moderator

Μέλος από: 13 Απρ 2003
Μηνύματα: 256+
Περιοχή: Μοσχάτο
View users profile Visit posters website
ΜήνυμαΣτις: 30 Μαη 2012 12:10    Θέμα: Re: Emu 8086 βοήθεια σε πρόγραμμα! Απάντηση με παράθεση  Mark this post and the followings unread

Αν ψάχνεις το αποτέλεσμα στην θέση μνήμης 0204h σύρε την scrollbar εκεί που θέλεις, η απευθείας στο πεδίο segment:offset βάλε την διεύθυνση π.χ xxxx:0204.
Eίναι το πεδίο πάνω από το πράσινο μαρκαρισμένο πλαίσιο στην πρώτη photo.

Υπ' όψιν πως με χρήση brackets τοποθετείς στον ax την λέξη που βρίσκεται στην θέση μνήμης xxxx:0200h (η οποία εφόσον δέν έχει πρώτα οριστεί είναι undefined - τυχαία)
κώδικας:

mov ax,[0200h]          ; το ίδιο με mov ax,word[0200h]


Ενώ χωρίς, τοποθετείς στον ax απευθείας την δεκαεξαδική τιμή 0200h
κώδικας:

mov ax,0200h
kotsos13


Μέλος από: 15 Μαρ 2012
Μηνύματα: 5

View users profile
ΜήνυμαΣτις: 30 Μαη 2012 12:55    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

Το έχω δοκιμάσει και αυτό lightforce αλλά τα αποτελέσματα ειναι όλα 00!
LightForce
WebDev Moderator

Μέλος από: 13 Απρ 2003
Μηνύματα: 256+
Περιοχή: Μοσχάτο
View users profile Visit posters website
ΜήνυμαΣτις: 30 Μαη 2012 15:32    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

Είπαμε ότι προσθέτεις 2 undefined (null στην περίπτωση σου) τιμές.
Δοκίμασε να δώσεις πρώτα τιμές στις θέσεις μνήμης και μετά να προσθέσεις.

κώδικας:

mov [0200h], 0200h
mov [0202h], 0202h     
mov ax,[0200h]
mov bx,[0202h]
add ax,bx                      ; ax = 0402h
hlt
kotsos13


Μέλος από: 15 Μαρ 2012
Μηνύματα: 5

View users profile
ΜήνυμαΣτις: 30 Μαη 2012 16:07    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

Πάλι τα δικά του κάνει!Ποιό άλλο emulator είναι καλό για assembly;
LightForce
WebDev Moderator

Μέλος από: 13 Απρ 2003
Μηνύματα: 256+
Περιοχή: Μοσχάτο
View users profile Visit posters website
ΜήνυμαΣτις: 30 Μαη 2012 18:02    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

Δεν νομίζω, κάπου μπερδεύεσαι.
Κάνε copy-paste τον κώδικα σε empty workspace, πάτα emulate->run.
Τι σου εμφανίζει?, εμένα αυτό.

ps. τα λέμε το βραδάκι.
kotsos13


Μέλος από: 15 Μαρ 2012
Μηνύματα: 5

View users profile
ΜήνυμαΣτις: 30 Μαη 2012 19:16    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

Ναι αυτό ακριβώς μου βγάζει και εμένα αλλά που είναι το 0402;Σε ότι αφορά τον δικό μου αρχικό κώδικα λέω ότι είναι λάθος τα αποτελέσματα επειδή κοιτάω αυτό το παράδείγμα!Κάνω ακριβώς ότι και στην φωτογραφία και μου βγάζει ότι να 'ναι
http://tinypic.com/view.php?pic=hsnczs&s=6
LightForce
WebDev Moderator

Μέλος από: 13 Απρ 2003
Μηνύματα: 256+
Περιοχή: Μοσχάτο
View users profile Visit posters website
ΜήνυμαΣτις: 30 Μαη 2012 21:29    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

To 0402h είναι στον ax, δες αριστερά τους καταχωρητές, το υψηλό byte ah είναι 04h και το χαμηλό byte al είναι 02h.
Εγώ προσθέτω το 0200h και το 0202h ενώ εσύ προσθέτεις δύο τυχαίες τιμές από δύο θέσεις μνήμης, άρα το αποτέλεσμα στον ax είναι τυχαίο.
Χμ, δεν ξέρω αν μπορώ να το εξηγήσω καλύτερα.
kotsos13


Μέλος από: 15 Μαρ 2012
Μηνύματα: 5

View users profile
ΜήνυμαΣτις: 30 Μαη 2012 22:00    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

Α ναι σωστά!Χαζή απορία!Νόμιζα ότι θα το έβγαζε το αποτέλεσμα εκεί που σταματάει το run!Στο 01015 δηλαδή!Ευχαριστώ για την βοήθεια!
Εμφάνιση Μηνυμάτων:   
Εισαγωγή νέου Θέματος   Απάντηση στο Θέμα Σελίδα 1 από 1 [9 Μηνύματα] Mark the topic unread :: Προηγούμενο θέμα :: Επόμενο θέμα
 Forum index » Δημιουργία Web Sites, Γραφικών & Προγραμματισμός » Γλώσσες Προγραμματισμού » Assembly
Τώρα είναι 01 Αυγ 2014 03:41 | All times are UTC + 2


Email This Page to Someone! add to Favorites

     Powered by p h p B B © 2001,2005 p h p B B Group
Για άμεση επικοινωνία με τον διαχειριστή του freestuff.gr στο email: freestuff.gr(παπάκι)gmail.com


Copyright © 1999-2013 Freestuff.gr All Rights Reserved  
Version Aegean, designed by N. Tsaganos