View Single Post
Old 08-07-2006, 23:47   #3
Paco De Luciaaaaa
Senior Member
 
L'Avatar di Paco De Luciaaaaa
 
Iscritto dal: Mar 2005
Città: Torino... ma Abruzzo rulez!
Messaggi: 613
Quote:
Originariamente inviato da Label84
Ciao a tutti!!!
ho proprio bisogno di una mano con assembly...qualcuno può darmi una mano???

Devo scrivere un programma in assembly 8086 che prenda in ingresso da tastiera le coordinate di 2 punti, e disegnare il rettangolo che ha come diagonale quei 2 punti....
Sono riuscita a fare la lettura dei dati, ho tentato di spostare il cursore in corrispondenza del primo spigolo con questa procedura: ( "ord" e "asc" contengono i valori di ingresso)

Codice:
SPOSTACURSORE	PROC	NEAR
        MOV	DH,[ORD1]
	MOV	DL,[ASC1]
	MOV	BH,00h
	MOV	AH,02h
	INT	10h

	RET
SPOSTACURSORE	ENDP
..e di stampare un * in quella posizione....ma provando il programma vedo che l'* viene stampato sempre nella stessa posizione indipendentemente dai valori di input....
qualcuno sa dirmi dove sbaglio????

Ah, uso tasm come assembler
grazie mille!!!!!
La

Beh se richiami quella procedura stessa la seconda volta è ovvio che stampi sepre lì l'"*", perchè andrà sempre a prendere il contenuto delle celle di memoria ORD1 e ASC1... secondo me le soluzioni sono:

- o fai una seconda procedura con ORD2 e ASC2 ( molto brutta come soluzione)
- fai una seconda procedura che modifica le 2 celle di memoria ORD1 e ASC1 (ancora bruttina)
- crei una procedura che prenda i parametri direttamente dallo stack previa averglieli pushati nel programma principale (la migliore soluzione secondo me perchè la procedura la puoi usare quanto ti pare con qualsiasi punto)

Ciao
__________________
Case AT big tower - Mobo XXX - amd 486DX2@66Mhz - 8 MB edo-ram - Trident SVGA 2MB - HDD 270MB Conner - CD-ROM Hitachi 4X
"Muletto": DFI Lanparty LT X38@X48 T2R - e8400@3870 1.2xV - 4GB black dragon @ 1147 - 2x320 Barracuda 0Raided - from 8800GT Club3d to 5850 Sapphire
Paco De Luciaaaaa è offline   Rispondi citando il messaggio o parte di esso