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
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