Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Eternal Idol

#3341
ASM / Re: Como puedo hacer While o For en FASM
27 Agosto 2009, 14:00 PM
Esto es assembly puro, ejecuta el codigo del bucle (inc eax) un numero X de veces (de acuerdo al valor de ECX):

Código (asm) [Seleccionar]
mov ecx, 5
xor eax, eax
bucle:
inc eax
loop bucle


http://pdos.csail.mit.edu/6.828/2006/readings/i386/LOOP.htm

Tambien podes hacerlo con cmp's y jmp's.

Código (asm) [Seleccionar]
mov ecx, 5
xor eax, eax
bucle:
inc eax
dec ecx
cmp ecx, 0
jne bucle


Tambien podrias hacer lo contrario, iniciando el contador a 0, incrementandolo en cada pasada y comprobando si es igual (o mayor como en el ejemplo siguiente) al limite:

Código (asm) [Seleccionar]
xor ecx, ecx
xor eax, eax
bucle:
inc eax
add ecx, 2
cmp ecx, 9
jna bucle


Este bucle se ejecutara mientras el resultado devuelto por func sea diferente de 0:
Código (asm) [Seleccionar]
bucle:
call func
cmp eax, 0
jne bucle


Podes hacer uso de JCC tambien.
#3342
invoke es una directiva que el ensamblador reemplazara por el pasaje de parametro necesario (normalmente push's si la convencion de llamada establece que los parametros van en la pila) y el call mismo. Es decir, finalmente es exactamente lo mismo.
#3344
De nadas  ::) gcc -S archivo.c
#3345
Efectivamente lo hace cualquier compilador, el codigo en assembly es la representacion mnemonica del codigo binario que generan.

VC++: /FA, /Fa (Listing File).

Para otros busca en la ayuda y si queres usar un depurador de verdad usa el WinDbg, un desensamblador el IDA.
#3346
ASM / Re: El falg P !!!
14 Agosto 2009, 18:19 PM
"In x86 processors, the parity flag reflects the parity only of the least significant byte of the result, and is set if the number of ones is even."

http://en.wikipedia.org/wiki/Parity_flag
#3347
ASM / Re: Convertir a hexadecimal !!!
12 Agosto 2009, 12:53 PM
Si, efectivamente puede ser un ELF o ELF64 y se mantiene el mismo principio.
#3348
ASM / Re: Convertir a hexadecimal !!!
12 Agosto 2009, 11:25 AM
Un PE de 64 bits no se puede ejecutar en una maquina (o S.O.) de 32 bits.
#3349
ASM / Re: Convertir a hexadecimal !!!
12 Agosto 2009, 11:10 AM
Si, es un (d=data) registro de segmento:
http://en.wikipedia.org/wiki/X86#x86_registers
#3350
Ya tenes el codigo en assembly y es bastante corto, no necesitas los simbolos, pone un int 3 al principio y listo.