Programación General > ASM (Ensamblador)

 Mi Pc No Sabe Dividir

<< < (2/3) > >>

Enko:

--- Citar ---nadie lo probo?
a nadie le funciona?
a todos le funciona?
...

--- Fin de la cita ---

No me manejo muy bien en C y en assambley ni hablar por eso tal vez lo que probe es un desastre pero lo posteo igual, nada tengo que perder

--- Código: Text --- #include &#60;stdio.h&#62;#include &#60;conio.h&#62; int main (void) {int result; asm {   mov ax,10   mov bx,2   div bx   ret   mov ax, result  }  printf(&#34;%d&#34;, result);  getch();  return 1;}  
No se si esta bien el codigo ya que hace rato que no programo en C
el resultado fue:

--- Código: Text --- Divide error  
Si el codigo llegara a estar mal, corregilo por favor y postealo que yo lo pruebo. Uso turbo C 3.X

jorge8603:
no soy un experto pero al parecer encontre tu error
yo he programado cosas muy basicas para el tasm pero supongo debe ser lo mismo

mov ax,10
mov bx,2
div bx

si haces eso estas dividiendo una palabra entre una palabra lo cual es una operacion invalida

solo se puede dividir una palabra entre un byte. Quedaria

and ah,0
mov al,10; no se si sea necesario pero es una buena practica limpiar la parte alta
mov bl,2
div bl

este codigo realizara la operacion ax/bl dejando el cociente en el al y el residuo en el ah (o viceversa no me acuerdo)

espero resuelva tu problema

bob esponja:
lo voy a probar muchas gracias  :kicking:

bob esponja:
FUNCIONO!!! muchas gracias

ahora una duda como hago para dividir por mas de 255?

Forly:
Hola Bob:

Yo también soy nuevo en estas lides, pero como lo explicó Jorje8603, para que la división resulte, siempre el divisor debe ser más pequeño que el dividendo.

Por ejemplo:       DIVIDENDO       DIVISOR
                             word               byte
                         doble word          word
etc.

En el caso de dividendos que ocupan más de un byte, deberás poner
el byte más significativo en el registro DX y el menos significativo en AX.

El resultado quedará en AX.

Espero que te sirva.

Te mando un abrazo.

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

[*] Página Anterior

Ir a la versión completa