Bienvenido(a), Visitante. Por favor, ingresa o regístrate.

Ingresar con nombre de usuario, contraseña y duración de la sesión

 
Búsqueda Avanzada

15.707 Mensajes en 3.130 Temas- por 371 Usuarios - Último usuario: lasfirrot
Mayo 18, 2012, 05:38:00
Foro de Hispabyte.netSistemas operativos y SoftwareSistemas OperativosCreación de un Sistema Operativo (Moderador: JMA_SP)Tema: Código en Ensamblador
Páginas: 1 [2]   Ir Abajo
Imprimir
Autor Tema: Código en Ensamblador  (Leído 7265 veces)
0 Usuarios y 2 Visitantes están viendo este tema.
satdamprogrammer
Visitante
« Respuesta #15 : Septiembre 20, 2003, 04:54:40 »


Ant?s que nada gracias fyncher por tu respuesta, pero aqu? va otra pregunta que compilador de asm est?n usando o me recomiendan usar, porque yo estoy usando el nasm 0.98.37, y capaz que este no acepta macros.

Saludos a todos,
En línea
fyncher
Visitante
« Respuesta #16 : Octubre 21, 2003, 12:29:14 »

No, no hemos muerto
Tengo un codigo en ensamblador que postear, una peque?a libreria de creacion y manejo de ventanas.
La pondre en cuanto valga la pena.

NaCl U2  
En línea
exebsd
Visitante
« Respuesta #17 : Enero 14, 2005, 08:57:26 »

?este post sigue vivo?
btw, hay algunos conceptos medios mal... por un lado uno est? tratando de usar la int21 en linux, en ese caso tendr?a que usar la int80.
por otro, una macro que se llame mucho va a hacer que el tama?o de nuestro binario cresca r?pidamente, pasar los parametros por pila no es malo (ej fbsd), igual lo recomendable ser?a pasar los par?metros por registros como hace linux por ejemplo.
bueno, saludos a todos y espero que no se haya muerto este post, porque el tema es muy interesante.
exe
En línea
LGAR
Visitante
« Respuesta #18 : Mayo 14, 2006, 03:40:51 »

bueno, intente buscar info del fasm en el inter pero no he encontrado mucho, solo cosas demasiado avanzadas para mi... solo quisiera q me pusieran algun codigo para un "hola mundo" o algo asi.... s? entiendo como usar el asm, s? me se unas cuantas instrucciones, es solo q no se la sintaxis del fasm ni nada de eso... se q esta el manual en la pagina del fasm , pero ahi no dan ningun ejemplo completo.... o mejor aun si saben de algun tutorial o de una pagina con ejemplos o algo asi tambien estaria bien...  

...........un saludo  Giñar  
En línea
JMA_SP
Moderator
Miembro Imprescindible
*****
Mensajes: 739



Ver Perfil
« Respuesta #19 : Mayo 14, 2006, 07:18:15 »

Ya lo s?, es que siempre tratan de hacer dif?cil lo que podr?a ser siempre m?s f?cil. Primero que encuentres informaci?n traducida al espa?ol y segundo en este caso encontrar ejemplos descriptivos paso a paso, a mi tambi?n me pas? cuando empece a mirar el ensamblador. Por eso lo de crear un Sistema Operativo desde cero llevaba asociada la idea de documentar todo y eso supone una base com?n a todos.

Pasos previos a todo esto deber?a ser aprender los sistemas de numeraci?n, un manual paso a paso del fasm (supondr?a primero traducir el manual que presentan en internet y ampliarlo/adaptarlo a nuestras necesidades) y un mont?n m?s de conceptos de los cuales yo ni siquiera domino. Mi idea si andaba por traducir alg?n manual, empec? por traducir creo recordar el de nasm y si te digo la verdad no tengo ni idea donde lo puse o si lo he borrado.
Lo del hola mundo para fasm te recomiendo que busques por el "hello world" o "helo, worl" ya que hace alg?n tiempo si encontr? algo bastante bueno como inicio pero luego no se extend?a m?s, pero en ingl?s. Sin embargo llegaba a explicar la estructura elemental de un programa de una forma muy clara.

http://flatassembler.net/

En download se supone que cuando te descargas alguna de las versiones para las diferentes plataformas, contiene documentaci?n y peque?os ejemplos de programaci?n.
« Última modificación: Mayo 14, 2006, 07:28:46 por JMA_SP » En línea
fachamix
Visitante
« Respuesta #20 : Junio 14, 2006, 12:19:27 »

respecto a las dudas kcoder :

yo estoy en la misma fase que ustedes, recien me estoy informando mucho para poder arrancar sin desperdiciar esfuerzos.

cuando programas un sistema operativo tienes que tener las siguientes precauciones (de acuerdo a lo que lei )

1. tienes que definir en que lenguage lo vas a hacer.

2. no importa que lenguage uses, las sentecia de booteo del OS la vamos a tener que hacer en ensamblador.

3. el programa de booteo lo tienes que tirar en binario PURO, no un exe, no un com, sino un binario puro, el GCC te permite hacer esto (tienes que programarlo en ensamblador ovbio y hacer el reto de la compilacion con GCC)

4. generalmente no e vas a largar a hacer un OS en ensamblador ( a no ser que seas fanatico de assembler como los changos de MenuetOS ) entonces seguramente vas a elegir un lenguage como C

5. sea cual sea el lenguage que elijas, en este caso C, por ejemplo , el PRINTF de C no vas a poder usarlo porke tienes que portar las librerias de C!!!!!!!!!!!!!!!!.

6. entonces lo que se hace es programar rutinas en ensamblador y usarlas desde C, hay muchos documenos en internet que explican como hacer esto. luego que ceas tu rutinitas en asembler las vas mesclando con la sintaxis de C haciendo las cosas menos engorrosas.


7. seguramente estas haciendo programas en ensamblador, ya me dijiste que tenias varias rutinas hechas pero ....... te advierto que no puedes usar las interrupciones del sistema operativo en el cual estas desarrolando el tuyo, ejemplo INT 21H.

Porke esas interruciones son del DOS, ?como el codigo de tu OS va a llamar a interrupciones de otro ?

las que tienes que usar son las interrupciones del microprocesador que usas.
Generalmente todos heredan las caracterisitcas del x86, hay manuales en el sitio de FTP de INTEL donde estan todas las interrupciones de cada micro que ellos lanzaron.

obviamente que si usas las interrupciones del PENTIUM II , van a andar jopya corriendo en un PENTIUM III, porke son hereditarias Lengua



de momento esto es todo lo que tengo para aportarles amigos , estoy en muy temprana edad de proyecto asi que si alguien que ya alla empesado o algo se quiere unir, o desarrollar paralelamente cada uno su OS , hagalo saber.


saludos desde santiago del estero, argentina
En línea
Paxet
Visitante
« Respuesta #21 : Agosto 25, 2006, 12:50:09 »

Duda con ensamblador y C

Voy a meterle mano a las interrupciones, y es una cosa que ha de hacerse en ensamblador por narices ya que algunas instrucciones s?lo son accesibles por ese lenguaje.

La duda me llega en: ?Pongo el ensamblador dentro de rutinas de C? ?Mejor lo pongo en un archivo fuente a parte?

Si lo pongo en un archivo fuente a parte me tendr?is que explicar como se hace una llamada desde C a una rutina de ensamblador programada en un fichero externo.


Supongo que esto viene por mis escasos conocimientos de ASM, mucho Java, mucho C# pero ni idea de programar en ensamblador XD.
En línea
octavio
Novato
*
Mensajes: 37


Ver Perfil
« Respuesta #22 : Febrero 16, 2008, 01:41:28 »

Mejor lo pones en un archivo fuente a parte,lo compilas a un archivo objeto y luego lo enlazas.
Para llamar a una rutina en ensamblador desde c lo mejor es que la rutina en ensamblador use las convenciones del lenguaje C ,asi puede ser llamada igual que si estuviese escrita en lenguaje C
ejemplo:

Código:
public sumar
sumar:
       mov eax,[esp+4]  ;primer parametro
       add eax,[esp+8]   ;el segundo
       ret   ;el valor se retorna en el registro eax
y en el programa en c se escribe algo asi
Código:
extern int sumar(int,int);
int total;
total=sumar(1,2);/*ahora total contiene el valor 3 */
       
« Última modificación: Febrero 16, 2008, 02:54:25 por HQH » En línea
Páginas: 1 [2]   Ir Arriba
Imprimir
Foro de Hispabyte.netSistemas operativos y SoftwareSistemas OperativosCreación de un Sistema Operativo (Moderador: JMA_SP)Tema: Código en Ensamblador
Ir a:  


Tema diseñado por RJ-45 para Hispabyte.net basado en el
theme famouspadexx v.09 designed by Formado Comprido
Downloable here. My present to padexx.de