Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

div

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: div Responder citando

Hola a todos

Estoy intentando realizar una transformación de int a ASC, pero mediante ensamblador indexado ( quiero hacer una pruebas) y me estoy peleando con con la función div, que no se como hacerla funcionar, me explico:

He estado mirando la ayuda y dice así
div src, cuando src es un word ( micaso ) realiza la división de dx(parte alta):ax(parte baja) con src, el resultado del cociente se mete en AX y el resto en DX

hago así

asm{
push eax
push edx
mov ax,10
mov dx,10; por probar algo
div 0010 ; para que entienda 10 como word
}

pues me sale el siguiente erro que no se como sulucionar
error A2001: immediate operand not allowed

Como hago para que me divida mediante ensamblador?

Saludos Manolo

Volver arriba
Mensaje    Asunto: div Responder citando

Hola Manolo:

Según entiendo por tu mensaje de error y por la referencia sobre DIV de Intel es que no puedes usar un número directamente, sino un registro o bien una variable (r/m16)

Por ejemplo, si quisiésemos dividir 83810205 entre 6789, (resultado=12345):

- Metemos en DX:AX (1278 *65536+ 55197) = 83810205

  WORD numero = 6789;
  asm
  {
      //...
      mov ax, 55197
mov dx, 1278
      div numero
      //...
  }
  ShowMessage( _AX);

luego en AX nos devuelve el resultado de la división, y en DX el resto si lo hay.

Saludos:
_Leo

Volver arriba
Mensaje    Asunto: div Responder citando

Gracias _LEO, si era ese el problema que no se podia poner directamente el numerito, ya funciona.

Saludos
Manolo

Volver arriba
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.