PDA

View Full Version : aiuto per assembler 2


shadylane
12-09-2002, 16:13
Ciao, devo costruire in assembler la seguente operazione che serve per passare dalle coordinate cartesiane a cui si trova il cursore all'offset a cui scrivere un carattere:

bx = (y*80+x)*2


Io ho risolto in questo modo:

xor ax,ax

mov al,80 ;preparo al per la mul
mul dh ;ax=al*dh --> y*80
xor dh,dh ;azzero dh,l'ho già utilizzato
add ax,dx ;ax=ax+dx (è solo dl) --> (y*80)+x
mov bx,ax ;sposto ax in bx
mov al,2 ;preparo al per la mul
mul bx ;ax=al*bx --> ((y*80)+x)*2
mov bx,ax ;copio ax in bx, dovrei avere l'offset


E' corretto?

Grazie e ciao

cionci
12-09-2002, 17:28
Ad occhio dovrebbe andare bene...

((Y * 80) + X) * 2

shadylane
14-09-2002, 09:28
Grazie,non capisco però perchè non va,o meglio,funziona in modo strano.Infatti se uso una funzione del bios tutto il programma va,invece quando traduco le coordinate con questa operazione ad un certo punto impazzisce...
Mah???