Ensamblador - ayuda

 
Vista:

ayuda

Publicado por JOSE ORTEGA (2 intervenciones) el 21/02/2007 10:22:15
Bueno ya resolvi mas o menos el problema que tenia con el problema que plantee ayer pero ahora me encuentro con otro problema.
Tengo que realizar la siguiente operacion:

sen(x)=(x[(x2)[(x2)[(x2)[(x2)K9]+K7]+K5]+K3]+K1])

el dos de cada X es ke esta elevado al cuadrado, pues bien, empiezo desde dentro del parentesis, es decir primero hago el cuadrado de x para multiplicarlo por k9 y me pasa esto:

MOV BX,AX
IMUL AX ---------->para hacer el cuadrado
ahora como sabreis este comando al ser los dos registros de 16 bits mete el resultado en AX y en dx de forma que el resultado que me queda en los dos es:
AH 01110001 AL 10000100 parte baja del cuadrado en AX
DH 00000000 DL00001011 parte alta del cuadrado en DX

LUEGO EL NUMERO COMPLETO ES: 00000000000010110111000110000100 = 749956 signed
bien lo que yo quiero es reducirlo de forma que me quede 0001110101001011= 7499 signed

y ahi va mi problema como puedo simplificar ambas partes para recortar el numero de 32 bits y meterlo en un solo registro de 16 bits para poder seguir operando?????
Por favor agradeceria mucho vuestra ayuda mil gracias!!!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder