Título: [DUDA]uso del mov en flat assembler Publicado por: AlxSpy en 25 Junio 2011, 20:39 pm hola hice mi primer code en FASM:
Código: include 'c:\fasm\include\win32ax.inc' la teoria del "mov destino,origen" dice que mueve info del origen al destino, y en FASM al poner la variable entre "[]" [variable] se refiere al valor que contiene supongo que al poner variable sin nada entonces se refiere a su direccion en memoria, en la linea 19 del codigo al principio puse "mov hWin,eax" lo entiendo de esta manera: "lo que valga eax muevelo a la direccion de hWin", pero me daba error (al igual que la linea 39), asi que le puse [hWin] y funciona , el uso del mov y de pasar las variables entre "[]" y sin nada no me queda muy claro ¿alguien me podria dar una mejor explicacion de esto? Título: Re: [DUDA]uso del mov en flat assembler Publicado por: _Enko en 25 Junio 2011, 21:56 pm La manera correcta es
mov [hWin], eax de otra manera no ensambla, no es una operacion valida. Para que entiendas mejor: hWin es una label, una etiqueta, equivale a una direccion de memoria. por ejemplo: label1 dd 5 ; label1 = 0x4000 label2 dd 4; label2 = 04004 (label1 + 4, porque dd=DWORD=4 en 32 bit) En si, con esto no hay problema, porque el ensamblador te dirá que hay un error. Pero que pasa si el mov es al reves. mov eax, [label1] ; eax = 5 si te confundes, y colocas mov eax, label1; eax=0x4000 ambas intrucciones son validas. así que acordate: VARIABLE es direccion de memoria [VARIABLE] es el contenido de esa direccion de memoria. Y ojo, a veces, el contenido tambien puede ser una direccion de memoria, variables PUNTERO. por ejemplo: Código: mov eax, label1 ;eax = 0x4000 Mucho cuidado con eso, son los errores mas comunes a la hora de pasar parametros a una funcion. si ves codigo de masm.... FASM [VARIABLE] = MASM VARIABLE FASM VARIABLE = MASM ADDR VARIABLE , o MASM OFFSET VARIABLE. Saludos. Título: Re: [DUDA]uso del mov en flat assembler Publicado por: AlxSpy en 26 Junio 2011, 23:08 pm bastante claro gracias.
|