askisi se assembly

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

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

Απάντηση
souzinak
Δημοσιεύσεις: 2
Εγγραφή: 02 Απρ 2009 18:29

askisi se assembly

Δημοσίευση από souzinak » 05 Μάιος 2009 12:42

paidia exw mia askisi gia to tei mou assembly emu8086 alla den katexw.mipws mporei kapoios na me voithisei? i askisi einai i exis:


Να γραφεί πρόγραμμα με ένα υποπρόγραμμα. Στο κυρίως πρόγραμμα θα εισάγετε εσείς κείμενο έπειτα από μήνυμα προτροπής. Η συμβολοσειρά θα είναι το πολύ 80 χαρακτήρων και μπορούμε να σταματήσουμε την εισαγωγή με το χαρακτήρα ‘#’.
Το υποπρόγραμμα θα διαβάζει από το πληκτρολόγιο ένα χαρακτήρα έπειτα από κατάλληλο μήνυμα. Στη συνέχεια θα εμφανίζει πόσες φορές βρήκε αυτό το χαρακτήρα στη συμβολοσειρά, ενώ αν δεν υπάρχει θα εμφανίζει κατάλληλο μήνυμα. Αν το πλήθος των εμφανίσεων είναι διψήφιος αριθμός, θα εμφανίζεται με τη μορφή δεκάδα-μονάδα.

Άβαταρ μέλους
EkLekTos
WebDev Moderator
Δημοσιεύσεις: 7421
Εγγραφή: 07 Απρ 2005 15:44
Τοποθεσία: Inside the Effects
Επικοινωνία:

askisi se assembly

Δημοσίευση από EkLekTos » 05 Μάιος 2009 13:33

Έχεις κάνει κάτι για να σε βοηθήσει κάποιος; που έχεις κολλήσει;
Το να σου λύσει όλη την άσκηση κάποιος δύσκολα θα βρεις εδώ, να σε βοηθήσουν όμως σίγουρα... ;)
* Apple Technical Support Specialist *
* Apple Sales & Product Professional Certificate since 2011 * Εικόνα
Follow me @Twitter

Άβαταρ μέλους
ksarm
Δημοσιεύσεις: 915
Εγγραφή: 22 Μάιος 2007 10:47

askisi se assembly

Δημοσίευση από ksarm » 05 Μάιος 2009 13:55

Φίλε από 8086 δεν σκαμπάζω γρι, αλλά λογικά θα έχετε κάπου παραδείγματα από τα οποία θα πάρεις τα στοιχεία που χρειάζεσαι.
Χρειάζεσαι:
την δομή που έχει ένα πρόγραμμα και ένα υποπρόγραμμα
τρόπο εμφάνισης μηνύματος
τρόπο εισαγωγής στοιχείων στο πρόγραμμα
προσωρινή αποθήκευση των στοιχείων που εισήγαγες
τρόπο χωρισμού των εισαγμένων δεδομένων σε χωριστά bytes
τρόπο σύγκρισης των bytes με το byte που θα πάρεις από το πληκτρολόγιο και προσωρινή αποθήκευση των δεδομένων σου
κάποιο if... then για τύπωση του αποτελέσματος της σύγκρισης αλλιώς τυπώνεις "no such input in data" (ή κάτι τέτοιο τέλος πάντων)

εάν σου βγάλει διψήφιο αποτέλεσμα θα πρέπει να αποθηκεύσεις το carrier και να τυπώσεις πρώτα εκείνο και μετά να τυπώσεις το LSB.

Άβαταρ μέλους
hik-hok
Reporter
Δημοσιεύσεις: 3571
Εγγραφή: 09 Μαρ 2003 10:45
Τοποθεσία: Agrrrrrrrrrr...... γάβ γάβ!!
Επικοινωνία:

askisi se assembly

Δημοσίευση από hik-hok » 05 Μάιος 2009 16:58

souzinak έγραψε:paidia exw mia askisi gia to tei mou assembly emu8086 alla den katexw.mipws mporei kapoios na me voithisei? i askisi einai i exis:


Να γραφεί πρόγραμμα με ένα υποπρόγραμμα. Στο κυρίως πρόγραμμα θα εισάγετε εσείς κείμενο έπειτα από μήνυμα προτροπής. Η συμβολοσειρά θα είναι το πολύ 80 χαρακτήρων και μπορούμε να σταματήσουμε την εισαγωγή με το χαρακτήρα ‘#’.
Το υποπρόγραμμα θα διαβάζει από το πληκτρολόγιο ένα χαρακτήρα έπειτα από κατάλληλο μήνυμα. Στη συνέχεια θα εμφανίζει πόσες φορές βρήκε αυτό το χαρακτήρα στη συμβολοσειρά, ενώ αν δεν υπάρχει θα εμφανίζει κατάλληλο μήνυμα. Αν το πλήθος των εμφανίσεων είναι διψήφιος αριθμός, θα εμφανίζεται με τη μορφή δεκάδα-μονάδα.
Μήπως σε λένε Χαράλαμπο ?
Εικόνα

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

askisi se assembly

Δημοσίευση από LightForce » 05 Μάιος 2009 17:03

souzinak φοιτητής -φαντάζομαι πληροφορικής- σε TEI μου φαίνεται ότι θα έπρεπε να μπορούσε να δουλέψει μια άσκηση όπως αυτή.
Προσπάθησε έστω, να και λίγος κώδικας με σχόλια για EMU8086, ίσως σε βοηθήσει να ξεκινήσεις.

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

; Στο κυρίως πρόγραμμα θα εισάγετε εσείς κείμενο έπειτα από μήνυμα προτροπής. 
; Η συμβολοσειρά θα είναι το πολύ 80 χαρακτήρων και μπορούμε να σταματήσουμε την    
; εισαγωγή με το χαρακτήρα ‘#’. 

        ORG 100H

MAIN:
        MOV AX, 3                    ; text mode 80x25
        INT 10H    

        PUSH DS                      ; ES = DS
        POP ES
        
        MOV DX, OFFSET PROMPT        ; prompt message
        MOV AH,9
        INT 21H

        CLD                         ; clear direction flag
        MOV DI, TMPSTR              ; string offset
        MOV CX, 80                  ; 80 chars max

GETKEY:
        MOV AH, 1                    ; get pressed key
        INT 21h
        CMP AL, '#'                  ; # pressed?
        JE GOTIT                     ; yes
        STOSB                        ; no, save char & advance DI
        LOOP GETKEY                  ; next char
GOTIT:
        MOV BYTE PTR [DI], '$'       ; terminate string, TMPSTR holds string

        ;                                      
        ;
        ;                                      
        ;
        ;


        MOV AX, 4C00H                ; exit to system
        INT 21H


        PROMPT DB "Enter text: $"
        TMPSTR DB 81 DUP (?)

Άβαταρ μέλους
agelosz
Δημοσιεύσεις: 10
Εγγραφή: 18 Νοέμ 2007 13:45
Τοποθεσία: GREECE

askisi se assembly

Δημοσίευση από agelosz » 10 Μάιος 2009 18:58

Χεχε φοβερο προγραμμα ο emu8086. Eκει εκανα τα πρωτα μου βηματα σε assembly.

Άβαταρ μέλους
ksarm
Δημοσιεύσεις: 915
Εγγραφή: 22 Μάιος 2007 10:47

askisi se assembly

Δημοσίευση από ksarm » 10 Μάιος 2009 22:10

εγώ τα έκανα σε 68HC05. Motorola και ξερό ψωμί ρε!!! (Πλέον Freescale)

Απάντηση

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

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

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