Vota por nosotros en el ranking web que participamos
Bienvenido(a),
Visitante
. Favor de
ingresar
o
registrarse
.
¿Perdiste tu
email de activación?
- Octubre 14, 2008, 05:56:44
Visita:
Articulos
-
Juegos Gratis
-
Da Foros
Comunidad Underground Hispana
|
Programacion
|
Programación
|
Carbide C/C#/C++
| Tema:
como poner un codigo assambler en un copido en C?
0 Usuarios y 1 Visitante están viendo este tema.
« anterior
próximo »
Páginas:
1
[
2
]
Autor
Tema: como poner un codigo assambler en un copido en C? (Leído 1836 veces)
dreams_eater
Habitual
Desconectado
Mensajes: 180
Re: como poner un codigo assambler en un copido en C?
«
Respuesta #15 en:
Diciembre 16, 2007, 10:13:25 »
dejo un link, para los que saben sintaxis intel y no at&t como yo...
Necesitas ser usuario para ver los enlaces
Crear Usuario
Hacer Sesion
http://asm.sourceforge.net/articles/linasm.html
Que diablos haces ven0m?
Código:
#include <stdio.h>
int main()
{
__asm{
.model tiny ; Se podria incluir
code segment ;todo esto
assume cs:code,ds:code ;<------
org 100h ;<-- sin que el MSVC me de
;errores?
mov ah,3ch ; el mismo code de arriba
}
return 0;
}
el modelo de memoria lo hace automatico el compilador, hasta algunos te deja elegilo:
Busca y eligelo si tienes tanta obseción por el.
Estas organizando donde van los datos y eso lo hace el compilador (no me sorprenderia que no funcionase).
final en assembly ¿Para que?
Código:
#include <stdio.h>
int main()
{
__asm{
mov ah,3ch
lea dx,file
xor cx,cx
int 21h
mov ah,3eh
int 21h
mov ax,4c00h
int 21h
file db 'C:\file.txt',0
}
return 0;
}
Este tipo de codigos me despierta la curiosidad...
¿que diablos retorna DarkIker?
¿Como capturo lo que retorna un programa? Necesitare ayuda de un buen bachero.
Código:
#include <stdio.h>
void hola()
{
puts("hola");
}
int main()
{
__asm{
call hola;
}
return 0;
}
Este tipo de codigos tambien me despierta la curiosidad...
¿funcionará, ya que no recive argumentos o tomara la direccion de retorno (y sera un caos aleatoreo)?
«
Última modificación: Diciembre 16, 2007, 10:16:05 por dreams_eater
»
En línea
"La juventud envejece, la inmadurez se supera, la ignorancia puede educarse, y la borrachera desperjarse, pero la estupidez dura para siempre" - Aristófanes
DarkIker
Habitual
Desconectado
Mensajes: 264
Colombia Underground Team
Re: como poner un codigo assambler en un copido en C?
«
Respuesta #16 en:
Diciembre 16, 2007, 11:53:34 »
en asm no se pueden llamar a las funciones con prototipos como tal, si no que sus parametros se pasan en ebp + X, normalmente o por medio de la pila, para que una funcion pueda retornar desde asm, debe tene run prejifo naked que significara que todo lo manejara en asm directamente, asi que no te hagas ilusiones con esa funcion, si le pones el prefijo debes mover el valor a retornar a eax y luego la instruccione ret, no debes definir el modelo de memoria y demas ya que este va en el la cabecera del binario la cual no sera modificada por el codigo en asm, si no en los famosos #pragma que te los dejo de tarea aprender
, normalmente el valor de retorno de un programa solo le interesa al sistema, ya que puede informar de posibles errores( naaaaa ), de restoa estudiar interrupciones y los diferentes valores que se le deben de pasar en los registros "menores"( nu me acuerdo como se llaman, si si esos que son ax, bx, etc.. y que solo son de 16 bits ).
PD: Saludos Mancurtex xDD.
Att:
DarkIker
En línea
Necesitas ser usuario para ver los enlaces
Crear Usuario
Hacer Sesion
--> Colombia Underground Team
Necesitas ser usuario para ver los enlaces
Crear Usuario
Hacer Sesion
--> My Blog
_kernel
Colaborador
Desconectado
Mensajes: 780
<3 lisa
Re: como poner un codigo assambler en un copido en C?
«
Respuesta #17 en:
Diciembre 17, 2007, 07:19:35 »
Pos dreams_eater hola
hehe bueno te digo que esos codigos los saque de una pagina de programadores alemanes.. habia un chico que hizo la misma pregunta que mi amigo Ni0... y las respuestas que le dieron fueron basadas al compilador MSVC++ de mocosoft... bueno yo me baje ese compi para probar esos codigos.. pero ese compilador es una *ierda... todavia no se si funcionan.. mejor me quedo con mi querido DEV C++.. y veo como agregar el primer hola mundo a C con AT&T...
PS: Los codigos que postee arriba segun estos alemanes compilan y corren sin error...
oye DarkIker.. estoy leyendo sobre #pragma.. esto encontre
Para todos --- >
Necesitas ser usuario para ver los enlaces
Crear Usuario
Hacer Sesion
salud0s
En línea
R-E-S-P-E-C-T, find out what it means to me
_kernel
Colaborador
Desconectado
Mensajes: 780
<3 lisa
Re: como poner un codigo assambler en un copido en C?
«
Respuesta #18 en:
Diciembre 17, 2007, 10:40:19 »
Bueno al darme cuenta que MSVC++ es una *ierda.. me quedo con el DEV C++ ya que entendi la sintasis del AT&T... ( eso creo.. )... y para comprobarlo dejo un code..
Código:
#include <stdio.h>
int xwin;
int main()
{
asm("movl $0x3c, %eax");
asm("leal _xwin, %edx");
asm("xorl %ecx, %ecx");
asm("int $0x21");
asm("movl $0x3e, %eax");
asm("int $0x21");
asm("movl $0x4c, %eax");
asm("int $0x21");
}
lo posteo y pregunto una cosita que no se como hacer con C y ASM...
lo que quiero es que que xwin se cree en C:\... en asm intel se como hacerlo..
Código:
.model tiny
code segment
assume cs:code,ds:code
org 100h
start:
mov ah,3ch
;Creamos xwin
lea dx,xwin
;Puntero para nombre del archivo
xor cx,cx
;Mire abajo
int 21h
mov ah,3eh ;Cerramos por ahora..
int 21h
ende:
mov ax,4c00h ;Le deja el control a dos :D
int 21h
xwin db 'C:\xWin.com',0 ;Definimos o creamos el archivo en C:\
code ends
end start
Como podria crear xwin en el directorio de mi elegir ?? ?? tendria que crear una funcion en C para que xwin se cree alli y llamar esa funcion desde asm ?? o como se hace ??
salud0s
En línea
R-E-S-P-E-C-T, find out what it means to me
dreams_eater
Habitual
Desconectado
Mensajes: 180
Otra vez assembly en C
«
Respuesta #19 en:
Diciembre 17, 2007, 11:32:46 »
Citar
en asm no se pueden llamar a las funciones con prototipos como tal, si no que sus parametros se pasan en ebp + X, normalmente o por medio de la pila,
Quieres decir que los argumentos estan guardados en la pila (seguido de la direccion de retorno)
igualás ebp=esp, y accedes a los argumentos, sin la necesidad de engorrosos push y pop.
Citar
para que una funcion pueda retornar desde asm, debe tene run prejifo naked que significara que todo lo manejara en asm directamente, asi que no te hagas ilusiones con esa funcion, si le pones el prefijo debes mover el valor a retornar a eax y luego la instruccione ret,
prefijo??
Evidentemente no tengo nada que hacer aca, ya que, no se nada de asm modo protregido. (solo modo real).
En línea
"La juventud envejece, la inmadurez se supera, la ignorancia puede educarse, y la borrachera desperjarse, pero la estupidez dura para siempre" - Aristófanes
Páginas:
1
[
2
]
Comunidad Underground Hispana
|
Programacion
|
Programación
|
Carbide C/C#/C++
| Tema:
como poner un codigo assambler en un copido en C?
« anterior
próximo »
Ir a:
Por favor selecciona un destino:
-----------------------------
Foros De Consulta General
-----------------------------
=> Novedades
=> Dudas, Comentarios Y Sugerencias
=> Top 100
=> Off-Topic
=> Revista E-Zine
===> Noticias
-----------------------------
Phreaking, Hacking y Seguridad
-----------------------------
=> HacK GeneraL
===> Ingenieria Inversa
===> Encriptacion, Cryptografia
===> TV HACK
===> Cursos y Ezines
=====> Trucos Internet
=====> Textos Hacking
===> Defacing
=> Seguridad
=> Phreaking
===> Moviles
=> Bug y Exploits
===> Directorio de Exploits
=> Wargames, Retos Hack
-----------------------------
Hack Novato
-----------------------------
=> Hack para newbies
=> Todo Messenger
=> Troyanos y virus
-----------------------------
Sistemas Operativos
-----------------------------
=> Windows y otros sistemas operativos no libres
===> Problemas Tecnicos Windows
=> Sistemas operativos libres.
===> GNU/Linux
===> Manuales y Tutoriales
===> Descargas
-----------------------------
Programacion
-----------------------------
=> Programación
===> Programación Basica
===> Otros Lenguajes
===> Visual Basic y Net
===> ASM
===> Programacion Shell
===> Perl
===> Carbide C/C#/C++
===> Batch
===> SQL
=> Programacion para webmasters
===> Consultas Generales
===> Php
===> Html, XHTML, CSS
===> Java - Java Script
===> CMS O Scripts Pre-Fabricados
===> Posicionamiento en buscadores
-----------------------------
Artes Graficas
-----------------------------
=> Diseño Grafico
===> Battle Arts
===> Flash
===> Tutoriales
===> Galerías
===> Software
-----------------------------
Area Tecnica
-----------------------------
=> Networking & Wireless
=> Overclocking, Refrigeracion y demas
=> Hardware
===> Biblioteca Tecnica
=> Electronica Y Robotica
-----------------------------
Programas
-----------------------------
=> Software
===> Configuraciones de software
===> Pedidos de software
=> Cracks & Serialz
=> P2p, Bittorrent, Elinks
-----------------------------
Multimedia Y Divx
-----------------------------
=> Juegos PC Y Consolas
===> Dudas ayudas y comentarios de juegos
===> Pedidos de juegos
===> Juegos de Consola
=> Mp3
=> Multimedia
=> Peliculas Divx
-----------------------------
Entretenimiento Y sitios de interes
-----------------------------
=> Juegos, Humor y Adultos. (Diversión)
===> Adultos
=> Paginas Webs Recomendadas
=> Videos
Powered by SMF 1.1.6
|
SMF © 2006-2007, Simple Machines LLC
Loading...