Βοηθεια σε Assembly

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

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

Απάντηση
hawainen
Δημοσιεύσεις: 1
Εγγραφή: 21 Ιαν 2010 22:32

Βοηθεια σε Assembly

Δημοσίευση από hawainen » 21 Ιαν 2010 22:57

Καλησπερα σε ολους σας.

Μπορει να με βοηθησει καποιος σας παρακαλω στο επομενο ερωτημα?

Θελω να διαβαζω απο ενα αρχειο .txt 32 αριθμους ή γραμματα (1-9,a-z,A-Z) και να μετατρεπω τον αντιστοιχο ascii code σε 8bit δυαδικο και να αποθηκευω μετα, με την σειρα, τους αριθμους σε εναν μονοδιαστατο πινακα. Εφοσον προκειτε για 32 χαρακτηρες με 8 bit ο καθενας ο πινακας θα πρεπει να ειναι 8*32=256 θέσεων φανταζομαι. Πριν όμως τους αποθηκευσώ στον πίνακα θα πρεπει να ελεγχώ το ParityFlag για καθε 8bit δυαδικο που θα περνω και εάν είναι 0 να μετατρέπω το σημαντικότερπ ψηφιο σε '1' και μετα να τον αποθηκέυω στον πίνακα. Εαν το PF είναι '1' περνάω τον 8bit αριθμό όπως είναι χωρίς να τον αλλάξω. Ο κάθε 8bit αριθμός θα μπαίνει στον πινακα μετα το τέλος του προηγούμενου αφου πρόκειτε για μονοδιάστατος.

Συμπληρωνω οτι γνωρίζω πως να ανοίγω αρχειο. Κολλάω στην μετατροπή απο ascii σε δυαδικο και στο πέρασμα στον πινακα αφου πρώτα κάνω τη αλλαγή όπου χρειάζεται.

Καμμιά βοήθεια? :oops:

Ευχαριστω πολυ ολους σας εκ των προτέρων.


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

Βοηθεια σε Assembly

Δημοσίευση από LightForce » 23 Ιαν 2010 00:24

Hi hawainen,
H σημαία ισοτιμίας δείχνει αν είναι περιττός η άρτιος ο αριθμός των bit με τιμή 1 στον καταχωρητή, παράδειγμα

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

          ; al = value to test

          or al, 0    
          jnp .A
          ; Parity even
          jmp .B
.A:      ; Parity odd
.B:  
Για την μετατροπή ascii χαρακτήρα '0'...'9'; 'A'..'F' που βρίσκεται στον al, σε binary

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

        cmp al, '9'
        jbe .10
        sub al, 7
.10:    
        sub al, '0'
Φόρτωσε το αρχείο σου σε buffer και απλώς επεξεργάσου έναν έναν τους χαρακτήρες του.
Χρησιμοποίησε την or για να θέσεις το σημαντικότερο bit σε 1 όπου χρειάζεται.

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

or al, 10000000b

Απάντηση

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

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

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