Sermac Δημοσ. 12 Ιουνίου 2007 Δημοσ. 12 Ιουνίου 2007 Αν γνωρίζει κάποιος αυτήν την ριμάδα την γλώσσα ας μου πει: Έχω έναν μονοδιάστατο πίνακα 8μπιτων αριθμών. Βρήκα το sum (άθροισμα στοιχείων πίνακα) και ξέρω και το v (μέγεθος πίνακα). Γίνεται να υπολογίσω τα: sum/v (δηλ. την μέση τιμή) & sum^2/v - (sum/v)^2 (διακύμανση) Με τόσες διαιρέσεις και δυνάμεις άντε να βρώ άκρη στους καταχωρητές.
GCMH Δημοσ. 12 Ιουνίου 2007 Δημοσ. 12 Ιουνίου 2007 Για τί επεξεργαστή μιλάμε; Για 80x86 χρησιμοποίησε DIV και MUL. Αν θες και άλλο χώρο χρησιμοποίησε την στοίβα ή μια θέση στη μνήμη. Μήπως κάτι μου διαφεύγει; Γιατί μου φαίνεται απλό.
Sermac Δημοσ. 13 Ιουνίου 2007 Μέλος Δημοσ. 13 Ιουνίου 2007 Thanks για την απάντηση. Ο επεξεργαστής είναι ο 8088 (ίδιο σχεδόν με τον 8086). Το τετράγωνο πώς θα το βρω; Να βάλω πχ στον καταχωρητή ΑΧ το sum/v και να κάνω MUL ΑΧ;
Chemical Δημοσ. 13 Ιουνίου 2007 Δημοσ. 13 Ιουνίου 2007 νομίζω οτι θα πρέπει να χρησιμοποήσεις μια beq sto v & loop se afto
alkisg Δημοσ. 13 Ιουνίου 2007 Δημοσ. 13 Ιουνίου 2007 Για 8 bit ποσότητα, βάζεις την τιμή στον al και κάνεις mul al. Το αποτέλεσμα πάει στον ax και φυσικά είναι 16 bit. Για 16 bit ποσότητα, βάζεις την τιμή στον ax και κάνεις mul ax. Το αποτέλεσμα πάει σε δύο καταχωρητές, dx:ax, και φυσικά είναι 32 bit. Δες και κανά online manual: http://www.olemiss.edu/courses/EE/ELE_485/Fall2001/Handouts/8088_instruction_set_summary_rev.htm
alkisg Δημοσ. 13 Ιουνίου 2007 Δημοσ. 13 Ιουνίου 2007 Υ.Γ. αν θες μελέτησε και τις εντολές lodsb και lodsw, θα σου φανούν χρήσιμες.
ladhm Δημοσ. 20 Ιουνίου 2007 Δημοσ. 20 Ιουνίου 2007 Αυτό πιστεύω θα βοηθήσει αν το χρειάζεσαι ακόμα... πολλαπλασιάζει δύο δεκαεξαδικές λέξεις, δημιουργεί το τετράγωνο της πρώτης και τον κύβο της δεύτερης...
ladhm Δημοσ. 20 Ιουνίου 2007 Δημοσ. 20 Ιουνίου 2007 Οσο για το πρώτο μέρος της ασκησης σου κατι τετοιο είναι, χωρις να το έχω testari... >.MODEL .STACK .DATA COUNT EQU 10 ;Tope8etoume enan counter = ME ARI8MO STIXION ARRAY DW 3,8,17,66,32,58,10,49,73,24 ;topo8etoume ta noumera piliko Dw 00 ypolipo dw 00 sinolo DW 00 .CODE MOV AX, SEG ARRAY ;.startup MOV DS,AX MOV ES,AX LEA SI,ARRAY MOV CX,[COUNT] ;o metritis mpeni ston cx START: MOV AX,ARRAY[sI] ;tope8etoume to proto stixio tou pinaka ston AH DEC CX ;mionume ton metriti -1 ADD BX,ARRAY[sI] INC SI ;af3anoume to si +1 INC SI ;af3anoume to si +1 AFOU KA8E ARI8MOS 2 BYTES JCXZ FIN ;elenxoume an o counter ine 0 JMP START ;pigeni stin arxi FIN: mov [sINOLO],bx ;APO8IKEVOUME TO SINOLO MOV Ax,bx ; mov bx,[count] DIV BX ;kanei ax/bx to ypolipo ston dx to piliko ston ax mov [piliko],ax ;MESOS OROS mov [ypolipo],dx .EXIT 0 ;.exit END
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.