Autor Tema: Assembler + C  (Leído 5988 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado macedo

  • PIC18
  • ****
  • Mensajes: 270
Assembler + C
« en: 09 de Marzo de 2012, 16:14:24 »
Hola les hago una pregunta se puede incluir en el lenguaje de ASM códigos o archivos de include que estén echos en C ya que muchas aplicaciones están en C y no entiendo mucho de este lenguaje.
Gracias

Desconectado bigluis

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 511
    • Tutoriales de Qt C++
Re: Assembler + C
« Respuesta #1 en: 10 de Marzo de 2012, 02:17:36 »
Hasta donde se eso no es posible, pero talvez podrías compilar esas librerías en específico e incluir el codigo Assambler generado por el compilador en tu codigo ensamblador.

Se que si intentas hacer lo contrario, incluir ASM dentro de C, si es posible utilizando ciertos comandos propios de C.

Te recomiendo que estudies C es mejor aprender eso que usar ASM para programar ya que existen muchas más librerías y te disminuye el tiempo de desarrollo.
Tutoriales de Qt C++

No es necesario que hagamos Grandes cosas, sino que lo que hagamos sea importante.

SI la NECESIDAD es la MADRE del CONOCIMIENTO, SEGURAMENTE la PEREZA su TÍA.

Cuando el ARTE requiere de PRECISION le llamamos CIENCIA

Desconectado macedo

  • PIC18
  • ****
  • Mensajes: 270
Re: Assembler + C
« Respuesta #2 en: 10 de Marzo de 2012, 13:53:50 »
Si es un tema pendiente que tengo.
Gracias de todos modos vi que se podía incluir ASM en C y pensé que se podía hacer lo contrario pero cuando me puse a ver las lineas de código ahí me di cuenta que no iba a ser posible.
Saludos y gracias.

Desconectado MerLiNz

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2463
Re: Assembler + C
« Respuesta #3 en: 10 de Marzo de 2012, 14:21:29 »
puedes incluir tus archivos .s y .c juntos en el mismo proyecto, solo tendrias que declarar las funciones o variables como extern en caso de que quieras usar una funcion de asm en c, para viceversa nose como seria la declaracion en asm pero seguro que tu si.

Desconectado bigluis

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 511
    • Tutoriales de Qt C++
Re: Assembler + C
« Respuesta #4 en: 10 de Marzo de 2012, 17:27:55 »
Lo que ocurre con los compiladores en C es que ellos transforman el codigo en C que es parecido al humano al código ASM que se parece al de 1 y 0 de máquina.
Tutoriales de Qt C++

No es necesario que hagamos Grandes cosas, sino que lo que hagamos sea importante.

SI la NECESIDAD es la MADRE del CONOCIMIENTO, SEGURAMENTE la PEREZA su TÍA.

Cuando el ARTE requiere de PRECISION le llamamos CIENCIA

Desconectado macedo

  • PIC18
  • ****
  • Mensajes: 270
Re: Assembler + C
« Respuesta #5 en: 13 de Marzo de 2012, 11:48:33 »
Hola y se puede obtener ese código?
Saludos

Desconectado bigluis

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 511
    • Tutoriales de Qt C++
Re: Assembler + C
« Respuesta #6 en: 13 de Marzo de 2012, 12:34:32 »
Si se puede, por ejemplo en CCS existe la opcion de view assambly code, y tambien en MikroC y MikroBasic cuando pueda pongo una imagen.
Tutoriales de Qt C++

No es necesario que hagamos Grandes cosas, sino que lo que hagamos sea importante.

SI la NECESIDAD es la MADRE del CONOCIMIENTO, SEGURAMENTE la PEREZA su TÍA.

Cuando el ARTE requiere de PRECISION le llamamos CIENCIA

Desconectado RICHI777

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1498
Re: Assembler + C
« Respuesta #7 en: 13 de Marzo de 2012, 12:39:11 »
Hola,

Citar
Hola les hago una pregunta se puede incluir en el lenguaje de ASM códigos o archivos de include que estén echos en C ya que muchas aplicaciones están en C y no entiendo mucho de este lenguaje.

El assembler no entiende de archivos H, para lo único que sirven estos archivos es para instruir al compilador de C del valor de ciertas constantes, definiciones ( tipos )  y como son la declaración de funciones ( parámetros y retorno ).
Lo que es totalmente posible en cualquier entorno de programación es llamar desde assembler a cualquier función de C, como se hace ? Bueno debes buscar la ayuda de tu compilador y ver como es el convenio de llamadas, es decir como hace el compilador para obtener los parametros de las funciones, desde el stack o travez de registros, y cual va a ser el registro o la forma que devuelve al retornar de una función. Ya sea cuando retorna un char, un int o un long.
Una vez resuelto eso, lo único que tienes que hacer es llenar esto ( stack, registros ) y realizar un call a la función de C que queres llamar.

Saludos !

Desconectado macedo

  • PIC18
  • ****
  • Mensajes: 270
Re: Assembler + C
« Respuesta #8 en: 13 de Marzo de 2012, 18:08:01 »
Opa! yo creí que no se podía,
gracias voy a tratar de hacerlo y les comento
Saludos

Desconectado RICHI777

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1498
Re: Assembler + C
« Respuesta #9 en: 13 de Marzo de 2012, 18:11:14 »
Suerte !!!, olvide mencionar que dentro del módulo assembler debes incliur un extern ( cada assembler tiene su propia sintaxis ) a la función C que queres llamar.

Saludos !

Desconectado MGLSOFT

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 7918
Re: Assembler + C
« Respuesta #10 en: 13 de Marzo de 2012, 18:14:05 »
No precisa hacer primero un archivo .obj , desde el archivo en C ??
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado RICHI777

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1498
Re: Assembler + C
« Respuesta #11 en: 13 de Marzo de 2012, 18:16:33 »
Hola, todo depende de como lo incluya en el proyecto, puede ser como obj o como lib.

Saludos !

Desconectado macedo

  • PIC18
  • ****
  • Mensajes: 270
Re: Assembler + C
« Respuesta #12 en: 14 de Marzo de 2012, 08:27:18 »
Hola, volviendo de pasar a ASM, este C que tengo esta en C18, se puede hacer esto? ya que no conozco estos compiladores.
Saludos

Desconectado RICHI777

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1498
Re: Assembler + C
« Respuesta #13 en: 14 de Marzo de 2012, 17:20:18 »
Hola, no trabajo con C18, lo que yo te comente es usando un proyecto que incluye módulos en C. Se puede realizar directamente tomando un archivo C y convertirlo en obj, pero tampoco es tan fácil porque seguramente vas a tener que definir en el archivo de configuración del linker todas las secciones que define el módulo C.

Saludos !

Desconectado macedo

  • PIC18
  • ****
  • Mensajes: 270
Re: Assembler + C
« Respuesta #14 en: 15 de Marzo de 2012, 14:41:39 »
HOLA TODAVIA NO ESTOY  A ESE NIVEL PERO GRACIAS DE TODAS FORMAS.
SALUDOS


 

anything