Título: Sintaxis FASM Publicado por: ferk93 en 8 Julio 2009, 17:43 pm Mi pregunta es, como se puede mover el valor de un registro a una variable?
include 'C:\fasm\INCLUDE\WIN32AX.inc' .data num1 db 3 num2 db 2 .code mov eax, num1 add eax, num2 mov num2, eax Asi deberia mover el valor de la suma a la variable num2, pero visto que no tambien probe a hacerlo asi include 'C:\fasm\INCLUDE\WIN32AX.inc' .data num1 db 3 num2 db 2 num3 db 0 .code mov eax, num1 add eax, num2 add num3, eax ; tambien con mov num3, eax como tampoco funciono intente hacerlo con la pila include 'C:\fasm\INCLUDE\WIN32AX.inc' .data num1 db 3 num2 db 2 .code mov eax, num1 add eax, num2 push eax pop num2 Donde falla? Gracias a todos.. Título: Re: Sintaxis FASM Publicado por: Erik# en 8 Julio 2009, 19:04 pm Código
Título: Re: Sintaxis FASM Publicado por: YST en 8 Julio 2009, 21:51 pm Código
Esew coded te deja el primer byte de Numero2 en 12 Título: Re: Sintaxis FASM Publicado por: Erik# en 8 Julio 2009, 22:01 pm Código
Esew coded te deja el primer byte de Numero2 en 12 cl son instrucciones de 16 bits? o eran 8? Título: Re: Sintaxis FASM Publicado por: YST en 8 Julio 2009, 22:03 pm Código
Esew coded te deja el primer byte de Numero2 en 12 cl son instrucciones de 16 bits? o eran 8? CL no es una instruccion si no que es un registro :xD Título: Re: Sintaxis FASM Publicado por: Erik# en 8 Julio 2009, 22:20 pm Código
Esew coded te deja el primer byte de Numero2 en 12 cl son instrucciones de 16 bits? o eran 8? CL no es una instruccion si no que es un registro :xD YST marica tu sabes que siempre me confundo xD, de cuanto es ese registro: 8,16 bits? Título: Re: Sintaxis FASM Publicado por: ny0x en 8 Julio 2009, 22:30 pm como te habras dado cuenta el identificador dentro de corchetes [] es el valor de la variable y sin corchetes es su direccion en memoria ;-)
Título: Re: Sintaxis FASM Publicado por: ferk93 en 8 Julio 2009, 22:41 pm Ok, todo bien, pero un par de cosas:
ese "xor cl, cl" pone a cero el registro verdad? porque usas el registro "cl"? porque pones "byte" delante de [Numero1]? que hace exactamnt ese "ret"? Gracias, y por cierto, en primer codigo q ha posteado Erik# no lo compila el FASM, de hecho tengo la duda de que se pueda hacer un "pop" a una variable definida en .data es posible? Gracias y un saludo! Título: Re: Sintaxis FASM Publicado por: Erik# en 8 Julio 2009, 22:44 pm Ok, todo bien, pero un par de cosas: ese "xor cl, cl" pone a cero el registro verdad? porque usas el registro "cl"? porque pones "byte" delante de [Numero1]? que hace exactamnt ese "ret"? Gracias, y por cierto, en primer codigo q ha posteado Erik# no lo compila el FASM, de hecho tengo la duda de que se pueda hacer un "pop" a una variable definida en .data es posible? Gracias y un saludo! ret es como el exitprocess o el return de c (creo), el xor lo pone a 0. Mi código que puse no es nada, es solo que puse: start: y .end start Y en assembly no se compila, se ensambla. Título: Re: Sintaxis FASM Publicado por: YST en 8 Julio 2009, 22:55 pm Ok, todo bien, pero un par de cosas: Estan caros los manuales de ASM que no se leen uno ? ¬¬'ese "xor cl, cl" pone a cero el registro verdad? porque usas el registro "cl"? porque pones "byte" delante de [Numero1]? que hace exactamnt ese "ret"? Gracias, y por cierto, en primer codigo q ha posteado Erik# no lo compila el FASM, de hecho tengo la duda de que se pueda hacer un "pop" a una variable definida en .data es posible? Gracias y un saludo! xor cl,cl pone cl en 0. Uso el registro cl por que se me da la regalada gana , podria usar al ,ah,ch,etc.. ( Siempre de tamaño de un byte ya que estoy trabajdno con un byte) El byte antes de los corchetes es para expesificar el tamaño que quiero. ret según lo que yo se saca EIP de la pila y lo restaura :P Título: Re: Sintaxis FASM Publicado por: Erik# en 8 Julio 2009, 23:32 pm Ok, todo bien, pero un par de cosas: Estan caros los manuales de ASM que no se leen uno ? ¬¬'ese "xor cl, cl" pone a cero el registro verdad? porque usas el registro "cl"? porque pones "byte" delante de [Numero1]? que hace exactamnt ese "ret"? Gracias, y por cierto, en primer codigo q ha posteado Erik# no lo compila el FASM, de hecho tengo la duda de que se pueda hacer un "pop" a una variable definida en .data es posible? Gracias y un saludo! xor cl,cl pone cl en 0. Uso el registro cl por que se me da la regalada gana , podria usar al ,ah,ch,etc.. ( Siempre de tamaño de un byte ya que estoy trabajdno con un byte) El byte antes de los corchetes es para expesificar el tamaño que quiero. ret según lo que yo se saca EIP de la pila y lo restaura :P xD ¿Regalada gana? que vocabulario tan completo. (vés como al es de 1 byte :P(8 bits)). Código
¿Porque no trabajas con dd? son usados para numeros, van genial, ya te digo que con db no vas a poder sumar mucho (: Título: Re: Sintaxis FASM Publicado por: ferk93 en 8 Julio 2009, 23:38 pm Ok, gracias a los dos y ya nos veRemos q me da q voy a tener muchas dudas con esto del ASM.
Título: Re: Sintaxis FASM Publicado por: Erik# en 8 Julio 2009, 23:41 pm Ok, gracias a los dos y ya nos veRemos q me da q voy a tener muchas dudas con esto del ASM. De nada, ya sabes, cualquier duda, todos los programadores de asm (no me incluyo xD) te podran ayudar y los usuarios noobs como yo en asm tambien :) ¬¬ ya no soy tan noob xd Título: Re: Sintaxis FASM Publicado por: YST en 9 Julio 2009, 04:03 am Es ridiculo usar cl si estas trabajando con dword :xD .
Código
Título: Re: Sintaxis FASM Publicado por: Erik# en 9 Julio 2009, 09:37 am Es ridiculo usar cl si estas trabajando con dword :xD . Código
Pero sin indicarle que son dword, funciona :P Título: Re: Sintaxis FASM Publicado por: YST en 9 Julio 2009, 09:50 am Pero es lo mismo solamente que el ensamblador te lo detecta , no ahorras ni un byte :P .
Título: Re: Sintaxis FASM Publicado por: Erik# en 9 Julio 2009, 09:57 am Pero es lo mismo solamente que el ensamblador te lo detecta , no ahorras ni un byte :P . Tambien es una forma de economizar xD! Voy a mirarlo en los procesos. EDIT: La diferencia de uso de bytes es muy pequeña, casi ni se nota :) |