Viernes 8 de Noviembre de 2024, 16:08
SoloCodigo
Bienvenido(a),
Visitante
. Por favor,
ingresa
o
regístrate
.
¿Perdiste tu
email de activación?
Inicio
Foros
Chat
Ayuda
Buscar
Ingresar
Registrarse
SoloCodigo
»
Foros
»
Programación General
»
ASM (Ensamblador)
(Moderador:
Eternal Idol
) »
¿no Ensambla Este Codigo? :(
« anterior
próximo »
Imprimir
Páginas: [
1
]
Autor
Tema: ¿no Ensambla Este Codigo? :( (Leído 2311 veces)
Rozor
Nuevo Miembro
Mensajes: 14
¿no Ensambla Este Codigo? :(
«
en:
Miércoles 19 de Septiembre de 2007, 12:19 »
0
Hola, he estado codeando con masm32 y siendo correcta la sintaxis segun numentor y otros codes que he echo y me da error :S , me da error en las estructuras WSADATA y SOCKADDR_IN. Aver que se puede hacer gracias.
He lido varias veces post de asm en este foro, y desarrollado como por ejemplo cuando lo del bootstrap. Y hoy me decidi a postear
Error:
Código: Text
Microsoft (R) Macro Assembler Version 6.14.8444
Copyright (C) Microsoft Corp 1981-1997. All rights reserved.
Assembling: C:\masm32\conexion.asm
C:\masm32\conexion.asm(30) : error A2008: syntax error : wsa
C:\masm32\conexion.asm(31) : error A2008: syntax error : sin
_
Assembly Error
Presione una tecla para continuar . . .
El codigo fuente:
Código: Text
.586P
.MODEL FLAT, STDCALL
include \masm32\include\wsock32.inc
include \masm32\include\kernel32.inc
include \masm32\include\user32.inc
includelib \masm32\lib\wsock32.lib
includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\user32.lib
CrearConexion proto
EnviarMensage proto
Error proto
.DATA
wsa WSADATA <> ; <--- ERROR Linea 30
sin SOCKADDR_IN <> ; <--- ERROR Linea 31
ip dq 0100007Fh
port dd 9a02h
buffsend db "#### barata", 0
cap db "Error", 0
txt db "Error no enviado", 0
cap2 db "Adios", 0
txt2 db "A funcado bien xDDD", 0
.DATA?
sock dd ?
.CONST
protocolo dd 06h; IPPROTO_TCP
familia dd 02h ; AF_INET
stream dd 01h ; SOCK_STREAM
sizesin dd 10h ; sizeof sockaddr_in
make dd 101h ; MAKEWORD(1,1)
wm_sock dd 464h; WM_SOCKET = WM_USER+100
f_connect dd 10h ; FD_CONNECT
f_read dd 01h ; FD_READ
f_close dd 20h ; FD_CLOSE
f_all dd 31h ; Suma de los 3
.CODE
Inicio:
xor eax, eax
call CrearConexion
push 00h
push offset cap
push offset txt
push 00h
call MessageBoxA
push sock
call closesocket
call WSACleanup
push 00h
call ExitProcess
end Inicio
CrearConexion proto
push offset wsa
push offset make
call WSAStartup
push offset protocolo
push offset stream
push offset familia
call socket
mov sock, eax
push offset f_all
push offset wm_sock
push 00h
push sock
call WSAAsyncSelect
mov sin.sin_family, offset familia
mov sin.sin_port, offset puerto
mov sin.sin_addr, offset ip
push offset sizesin
push offset sin
push offset sock
call connect
je EnviarMensage
jnz Error
ret; w0w
CrearConexion endp
EnviarMensage proto
push 00h
push 15
push offset sendbuff
push offset sock
call send
ret
EnviarMensage endp
Error proto
push 00h
push offset cap
push offset txt
push 00h
call MessageBoxA
push 00h
call ExitProcess
leave
ret; w0w
Error endp
Gracias.
Tweet
Eternal Idol
Moderador
Mensajes: 4696
Nacionalidad:
Re: ¿no Ensambla Este Codigo? :(
«
Respuesta #1 en:
Miércoles 19 de Septiembre de 2007, 16:58 »
0
Esas estructuras no estan definidas en ninguno de los includes que usas. Estan en windows.inc y la segunda es con minusculas (sockaddr_in).
Averigua en la ayuda como incluir ese archivo.
Nacional y Popular
En mi país la bandera de Eva es inmortal.
Queremos una Argentina socialmente justa, económicamente libre y políticamente soberana.
¡Perón cumple, Evita dignifica!
La mano invisible del mercado me robo la billetera.
Rozor
Nuevo Miembro
Mensajes: 14
Re: ¿no Ensambla Este Codigo? :(
«
Respuesta #2 en:
Miércoles 19 de Septiembre de 2007, 22:21 »
0
Si perdonen por el post, tenia windows.inc y lo quite por que tenia fallo luego no me acorde y no me di cuenta jejejej, reinstale y compilo sin problemas.
Por cierto, el codigo arreglado, ya no me funciona pero a nivel ejecucion, he debugeado y todo va bien hasta "connect", hay falla no pillo el por que :S . ( no es culpa del servidor ).
Código: Text
586p
.model flat, stdcall
option casemap:none
include \masm32\include\wsock32.inc
include \masm32\include\kernel32.inc
include \masm32\include\user32.inc
include \masm32\include\windows.inc
includelib \masm32\lib\wsock32.lib
includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\user32.lib
CrearConexion proto
EnviarMensage proto
Error proto
.data
wsa WSADATA <>
sin sockaddr_in <>
ip db "127.0.0.1", 0
port dd 666
buffsend db "#### barata", 0
cap db "Error", 0
txt db "Error no enviado", 0
cap2 db "Adios", 0
txt2 db "A funcado bien xDDD", 0
.data?
sock dd ?
hand dd ?
.const
protocolo dd 06h; IPPROTO_TCP
familia dd 02h ; AF_INET
stream dd 01h ; SOCK_STREAM
sizesin dd 10h ; sizeof sockaddr_in
make dw 101h ; MAKEWORD(1,1)
wm_sock dd WM_USER+100; WM_SOCKET = WM_USER+100
f_connect dd 10h ; FD_CONNECT
f_read dd 01h ; FD_READ
f_close dd 20h ; FD_CLOSE
f_all dd 31h ; Suma de los 3
.code
Inicio:
xor eax, eax
call CrearConexion
push 00h
push offset cap
push offset txt
push 00h
call MessageBoxA
push sock
call closesocket
call WSACleanup
push 00h
call ExitProcess
CrearConexion proc
push offset wsa
push 101h
call WSAStartup
push 0
push SOCK_STREAM
push AF_INET
call socket
mov sock, eax
.if eax==INVALID_SOCKET
call Error
.endif
push FD_READ+FD_WRITE+FD_CONNECT
push offset wm_sock
push offset hand
push sock
call WSAAsyncSelect
mov sin.sin_family, 02h
push 29ah
call htons
mov sin.sin_port, ax
push offset ip
call inet_addr
mov sin.sin_addr, eax
push sizeof sin
mov eax, offset sin
push eax
push offset sock
call connect
.if eax==SOCKET_ERROR
call Error
.endif
call EnviarMensage
ret; w0w
CrearConexion endp
EnviarMensage proc
push 00h
push 15
push offset buffsend
push offset sock
call send
ret
EnviarMensage endp
Error proc
push 00h
push offset cap
push offset txt
push 00h
call MessageBoxA
push 00h
call ExitProcess
leave
ret; w0w
Error endp
end Inicio
Eternal Idol
Moderador
Mensajes: 4696
Nacionalidad:
Re: ¿no Ensambla Este Codigo? :(
«
Respuesta #3 en:
Miércoles 19 de Septiembre de 2007, 22:32 »
0
hand ... ¿Para que arrancas con sockets asincronos? Mejor hacelo funcionar con sincronos primero.
Nacional y Popular
En mi país la bandera de Eva es inmortal.
Queremos una Argentina socialmente justa, económicamente libre y políticamente soberana.
¡Perón cumple, Evita dignifica!
La mano invisible del mercado me robo la billetera.
Imprimir
Páginas: [
1
]
« anterior
próximo »
SoloCodigo
»
Foros
»
Programación General
»
ASM (Ensamblador)
(Moderador:
Eternal Idol
) »
¿no Ensambla Este Codigo? :(