Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: flony en 30 Diciembre 2013, 00:55 am



Título: problema asm
Publicado por: flony en 30 Diciembre 2013, 00:55 am
hola amigos como esta, como pasaron la navidad? ojala que bien  ;-) ;-)
bueno mi problema es el siguiente
datos previos:
                      visual studio 2012
                      procesador intel core i5 x64
preparación del proyecto
                      cambio de win 32 a 64
                      personalización de compilación marcar masm
para proyectos chicos estaba bien, ahora cuando hago este proyecto, el cual obtuve de http://www.youtube.com/watch?v=kQc85ci6BRk&list=PL0C5C980A28FEE68D (http://www.youtube.com/watch?v=kQc85ci6BRk&list=PL0C5C980A28FEE68D)
me sale el siguiente error
Citar
>Compilación iniciada a las 29/12/2013 20:11:01.
1>Main.obj : error LNK2019: símbolo externo ZerroArray sin resolver al que se hace referencia en la función main
1>C:\Users\Administrador\Documents\Visual Studio 2012\ConsoleApplication5\x64\Debug\ConsoleApplication5.exe : fatal error LNK1120: 1 externos sin resolver
1>
1>ERROR al compilar.
1>
y me canse de buscarle la vuelta
aca los code
main.cpp
Código:
#include<iostream>
#include<stdlib.h>


#include "ZerroArray.h"
using namespace std;

int main ()
{
int count =1024;
char *arr=new char [count];

for (int i = 0; i < count; i++)
{
arr[i]=(char)rand();
}
for (int j = 0; j < count; j++)
{
cout<<(int)arr[j]<<" ";
}

ZerroArray(arr, count*sizeof(char));

for (int k = 0; k < count; k++)
{
cout<<(int) arr [k]<<" " ;
}

cin.get();
delete[] arr;
return 0;
}

ZerroArray.h
Código:
#ifndef ZERROARRAY_H
#define ZERROARRAY_H
extern "C" void ZerroArray(void *arr, int countInBytes);


#endif
y ZerroArray.asm
Código:
.code
ZerroArray proc
cmp edx, 0
jle Finished

cmp edx, 1
je SetFinalByte

mov ax, 0
mov r8d, edx
shr edx,1

MainLoop:
mov word ptr [rcx], ax
add rcx,2
dec edx
jnz MainLoop

and r8d,1
jz Finished

SetFinalByte:
mov byte prt [rcx],0

Finished:
ret
ZerroArray endp
end


Título: Re: problema asm
Publicado por: leosansan en 30 Diciembre 2013, 06:13 am
Perdona que te moleste, pero ¿me puedes indicar que programa usas para escribir en asm?. O lo haces directamente en un editor o en tu IDE de C++?:

Gracias de antemano y:


(http://st.forocoches.com/foro/images/smilies/aaaaa.gif)


¡¡¡¡ Saluditos! ..... !!!!

:rolleyes: ;) ;) ;) :rolleyes:



Título: Re: problema asm
Publicado por: flony en 30 Diciembre 2013, 11:22 am
leosansan
si el mismo ide...solo que estarías usando masm...
fíjate el tutorial esta bueno para trabajar en 64 bit que es algo que buscaba, todo bien con 32 pero si mi pc es de 64 porque trabajar con 32?


Título: Re: problema asm
Publicado por: amchacon en 30 Diciembre 2013, 14:22 pm
fíjate el tutorial esta bueno para trabajar en 64 bit que es algo que buscaba, todo bien con 32 pero si mi pc es de 64 porque trabajar con 32?
Pues que a lo mejor estás compilando el cpp en 32 bits.

Perdona que te moleste, pero ¿me puedes indicar que programa usas para escribir en asm?. O lo haces directamente en un editor o en tu IDE de C++?:
Lo que es "escribir" se puede hacer en el notepad ++.

¿Ensamblar? Pues depende, lo mejor es mezclar C y ASM. La mayoría de los compiladores permiten asm embebido (es decir, mezclar C y asm en el mismo código).