Autor
|
Tema: Sintaxis FASM (Leído 11,308 veces)
|
ferk93
Desconectado
Mensajes: 28
|
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..
|
|
|
En línea
|
|
|
|
Erik#
Desconectado
Mensajes: 1.138
Gundam
|
include 'C:\fasm\INCLUDE\WIN32AX.inc' .data num1 db 3 num2 db 2 .code start: mov eax, num1 add eax, num2 push eax pop num2 .end start
|
|
|
En línea
|
|
|
|
YST
Desconectado
Mensajes: 965
I'm you
|
include 'win32ax.inc' .data Numero1 db 3 Numero2 db 9 .code start: xor cl,cl mov cl,byte[Numero1] add cl,byte[Numero2] mov byte[Numero2],cl ret .end start
Esew coded te deja el primer byte de Numero2 en 12
|
|
|
En línea
|
Yo le enseñe a Kayser a usar objetos en ASM
|
|
|
Erik#
Desconectado
Mensajes: 1.138
Gundam
|
include 'win32ax.inc' .data Numero1 db 3 Numero2 db 9 .code start: xor cl,cl mov cl,byte[Numero1] add cl,byte[Numero2] mov byte[Numero2],cl ret .end start
Esew coded te deja el primer byte de Numero2 en 12 cl son instrucciones de 16 bits? o eran 8?
|
|
|
En línea
|
|
|
|
YST
Desconectado
Mensajes: 965
I'm you
|
include 'win32ax.inc' .data Numero1 db 3 Numero2 db 9 .code start: xor cl,cl mov cl,byte[Numero1] add cl,byte[Numero2] mov byte[Numero2],cl ret .end start
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
|
|
|
En línea
|
Yo le enseñe a Kayser a usar objetos en ASM
|
|
|
Erik#
Desconectado
Mensajes: 1.138
Gundam
|
include 'win32ax.inc' .data Numero1 db 3 Numero2 db 9 .code start: xor cl,cl mov cl,byte[Numero1] add cl,byte[Numero2] mov byte[Numero2],cl ret .end start
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 YST marica tu sabes que siempre me confundo xD, de cuanto es ese registro: 8,16 bits?
|
|
|
En línea
|
|
|
|
ny0x
Desconectado
Mensajes: 336
|
como te habras dado cuenta el identificador dentro de corchetes [] es el valor de la variable y sin corchetes es su direccion en memoria
|
|
|
En línea
|
|
|
|
ferk93
Desconectado
Mensajes: 28
|
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!
|
|
|
En línea
|
|
|
|
Erik#
Desconectado
Mensajes: 1.138
Gundam
|
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.
|
|
|
En línea
|
|
|
|
YST
Desconectado
Mensajes: 965
I'm you
|
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!
Estan caros los manuales de ASM que no se leen uno ? ¬¬' 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
|
|
|
En línea
|
Yo le enseñe a Kayser a usar objetos en ASM
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
bubblesort en fasm
ASM
|
dewolo
|
5
|
6,327
|
21 Junio 2011, 21:56 pm
por _Enko
|
|
|
Funciones en FASM
ASM
|
fary
|
2
|
4,926
|
28 Septiembre 2011, 21:48 pm
por fary
|
|
|
urldownloadtofile FASM
ASM
|
rmdma()
|
8
|
5,631
|
20 Febrero 2012, 21:11 pm
por Eternal Idol
|
|
|
fasm consola
« 1 2 3 »
ASM
|
bengy
|
24
|
14,984
|
15 Junio 2014, 01:04 am
por Eternal Idol
|
|
|
Cadenas en FASM
ASM
|
Yuki
|
3
|
3,809
|
6 Mayo 2016, 10:28 am
por fary
|
|