Passing Arguments Through Stack [EMULATOR 8086]

συζητήσεις για assembly

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
lmenios
Δημοσιεύσεις: 2
Εγγραφή: 20 Φεβ 2010 18:48

Passing Arguments Through Stack [EMULATOR 8086]

Δημοσίευση από lmenios » 20 Φεβ 2010 19:19

Θέλω την βοήθεια σας σε ασκησούλα.Περνάω δύο arguments μέσω στοίβας και τα προσθέτω se local var.Επιστρέφω το αποτέλεσμα στον καταχωρητή AX.
Αν είναι δυνατόν πείτε μου είναι σωστό το script μου;

Κώδικας: Επιλογή όλων

ORG 100H

PUSH WORD OFFSET PTR[X]
PUSH WORD OFFSET PTR[Y]
CALL FOO


MOV AX,4C00H
INT 21H


FOO:
PUSH BP
MOV BP,SP
SUB SP,2
MOV WORD[BP-2],10
MOV AX,WORD[BP-2]
ADD AX,WORD[BP+4]
ADD AX,WORD[BP+6]
MOV SP,BP
POP BP
RET

X DW 3
Y DW 2

LightForce
WebDev Moderator
Δημοσιεύσεις: 3812
Εγγραφή: 13 Απρ 2003 23:49

Passing Arguments Through Stack [EMULATOR 8086]

Δημοσίευση από LightForce » 20 Φεβ 2010 19:37

Ναι είναι, αλλα μην ξεχνάς να ισορροπήσεις την στοίβα σου.

Κώδικας: Επιλογή όλων

        PUSH WORD OFFSET PTR [X]
        PUSH WORD OFFSET PTR [Y]
        CALL FOO
        ADD SP,4

lmenios
Δημοσιεύσεις: 2
Εγγραφή: 20 Φεβ 2010 18:48

Passing Arguments Through Stack [EMULATOR 8086]

Δημοσίευση από lmenios » 20 Φεβ 2010 20:04

Πολύ αωστά καλύτερα να είμαστε απόλυτοι :P Ευχαριστώ για την απάντηση LightForce. Nα ρωτήσω κάτι ακόμα, πως μεταφράζεται το script στα 32bit;
Learning Assembly in Emulator 8086

Απάντηση

Επιστροφή στο “Assembly”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 1 επισκέπτης