Αριθμός μεγαλύτερος των 16-BIT

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

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

Απάντηση
Άβαταρ μέλους
RAE2
Δημοσιεύσεις: 5
Εγγραφή: 26 Σεπ 2009 14:05
Επικοινωνία:

Αριθμός μεγαλύτερος των 16-BIT

Δημοσίευση από RAE2 » 10 Οκτ 2009 12:36

Γεια

Στον EMULATOR 8086 το εύρος των καταχωρητών είναι 16-ΒΙΤ [0, 65535] έτσι δεν είναι; Για να εμφανίσω ένα μεγάλο αριθμό (Π.Χ 10000000) πρέπει απ ότι κατάλαβα πρώτα να βάλω τον αριθμό μου στούς καταχωρητές DX:AX. Πως θα γίνει αυτό; Δηλαδή πως θα βάλω το 10000000 στούς καταχωρητές DX:AX; Kαι πως θα το τυπώσω μετα;

Ευχαριστώ προκαταβολικά. :D

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

Αριθμός μεγαλύτερος των 16-BIT

Δημοσίευση από LightForce » 10 Οκτ 2009 15:17

Ορίστε ένας εύκολος τρόπος, απλώς μοίρασέ τον σε 16 bit λέξεις.

10000000 = 989680h

οπότε,

DX = 98h
AX = 9680h
DX:AX = 989680h = 10000000

Tώρα για το δεύτερο σου ερώτημα χρειάζεσαι ρουτίνα που να τυπώνει την 32 bit τιμή που βρίσκεται στους DX:AX.
Δεν έχω κάτι έτοιμο, αλλά νομίζω ότι θα την βρείς στο δίκτυο.

Άβαταρ μέλους
RAE2
Δημοσιεύσεις: 5
Εγγραφή: 26 Σεπ 2009 14:05
Επικοινωνία:

Αριθμός μεγαλύτερος των 16-BIT

Δημοσίευση από RAE2 » 02 Νοέμ 2009 10:22

Ok ευχαριστώ. Θα μπορούσες ίσως να μου πεις πως θα τυπώσω στον EMULATOR 8086 την τιμή στους καταχωρητές DX:AX σε δυαδική μορφή; Και κάτι ακόμα υπάρχουν εντολές όπως IF/WHILE/REPEAT στον EMULATOR 8086;

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

Αριθμός μεγαλύτερος των 16-BIT

Δημοσίευση από LightForce » 03 Νοέμ 2009 01:20

Είσοδος -> αριθμός σε DX:AX
Έξοδος -> δυαδικό string στον buffer
Ο κώδικας χρειάζεται 33 bytes buffer και σώσε τις τιμές στους καταχωρητές.

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

			mov bx, buffer
			mov ch, 20h
		lp:			
			xor cl, cl
			shl ax, 1
			rcl dx, 1
			adc cl, 0
			or cl, 30h
			mov byte PTR [bx], cl
			inc bx
			dec ch
			jne lp
			mov byte PTR [bx], 0	    
Assemblers όπως ο MASM/FASM/TASM/NASM/ κ.α έχουν δομές επανάληψης υψηλού επιπέδου σαν αυτές που έγραψες, αλλά νομίζω ο EMU8086 δεν διαθέτει.

Άβαταρ μέλους
RAE2
Δημοσιεύσεις: 5
Εγγραφή: 26 Σεπ 2009 14:05
Επικοινωνία:

Αριθμός μεγαλύτερος των 16-BIT

Δημοσίευση από RAE2 » 07 Νοέμ 2009 19:17

Ευχαριστώ LightForce .

Απάντηση

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

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

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