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