Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - GeorgArming

#371
Programación General / Re: ASM y C
26 Noviembre 2011, 00:10 AM
Disculpad mi ignorancia, pero tengo otra duda. He estado investigando sobre cómo incluir ASM in line en C, con gcc. Tengo el código en ASM siguiente (y me funciona):

[BITS 16]
ORG 0

main:
cli
mov     ax, 0x07C0
mov     ds, ax
mov     es, ax
mov     fs, ax
mov     gs, ax
mov     ax, 0×0000
mov     ss, ax
mov     sp, 0xFFFF
sti
mov si, msgTexto
call DisplayMessage

DisplayMessage:
lodsb
or      al, al
jz      .DONE
mov     ah, 0x0E
mov     bh, 0×00
mov     bl, 0×07
int     0×10
jmp     DisplayMessage
.DONE:
jmp Loop
Loop:
jmp Loop
msgTexto db 0x0D, 0x0A, "Hola mundo!!", 0×00
times 510-($-$$) db 0
dw 0xAA55

Vale, pues he visto diferentes maneras de incluir eso en C. Y ninguna me ha funcionado. Alguien sabría cómo hacerlo en este caso concreto?

Por ejemplo, he probado:

int main()
{
asm(
código asm
);
__asm__(...

y otros pero no me funciona. Seguro que por aquí hay alguna mente brillante capaz de solucionarlo.
#372
Programación General / Re: ASM y C
25 Noviembre 2011, 23:07 PM
ok, gracias!
#373
Programación General / Re: ASM y C
25 Noviembre 2011, 16:59 PM
como quiera, pero cuál es la mejor opción? en el caso de linux, está en C y incluyendo ASM o al revés?

y no, no estoy aprendiendo con tutoriales, estoy aprendiendo, básicamente, con libros, como Sistemas Operativos de Tanenbaum, pero al principio, para crear el bootloader, sí miré algún tutorial.
#374
Programación General / Re: ASM y C
24 Noviembre 2011, 23:13 PM
OJO, la pregunta seguramente es muy estúpida pero, por favor, os pido que me contestéis directamente. Ya he leído mucha documentación  pero no entiendo esa parte.
#375
Programación General / ASM y C
24 Noviembre 2011, 23:07 PM
Hace poco os pregunté sobre cómo hacer un OS y me redirigísteis hacia otros posts e informaciones. Tengo una duda y, por favor, alguien me la podría resolver? He buscado información pero no he encontrado exactamente lo que busco, y por esto os pregunto a vosotros.

Tomando un tutorial y un ejemplo con ASM, conseguí arrancar en virtualbox un bootloader que imprimiera en pantalla el mensaje X. Haciendo lo mismo pero en C con otros tutorailes, no lo conseguí.

Pero vayamos a lo importante. Si quiero programar un OS, els mejor que escriba el código fuente en ASM pero incluyendo funciones en C o hacerlo al revés (es decir, haciendo el códgo fuente en C incluyendo ASM)?
#376
Programación General / Re: Crear OS
11 Noviembre 2011, 16:15 PM
Otra cosa, ya que intento hacer un OS, me gustaría aportar algo novedoso. ¿Qué se os ocurre?Yo he pensando en que se base en la nube, pero también puedas trabajar en modo local. Cada vez que tengas conexión, todo lo local se pasa a la red. Me gustaría también implementar buenos back-ups y hacer que el usuario no se "entere" de que existen los directorios (vamos, que para encontrar los archivos se tenga que buscar con un motor de búsqueda o, directamente, entrar en la app - situada en un panel, con las demás - correspondiente y desde allí abrir el archivo (app de texos, abrir todos los textos, app de vídeos,...).

¿Qué pensáis? ¿Hacia dónde tendría que orientar el OS?
#377
Programación General / Re: Crear OS
10 Noviembre 2011, 21:36 PM
muchas gracias! había buscado mucha información pero la que decís es bastante más interesante  ;D
#378
Programación General / Re: Crear OS
10 Noviembre 2011, 18:26 PM
nadie sabe?
#379
GNU/Linux / Re: Internet en Ubuntu
6 Noviembre 2011, 15:49 PM
Cita de: xemnas en  6 Noviembre 2011, 12:04 PM
1-haz un ifconfig para ver si el router te esta dando ip a la interfaz
2-luego haz ping a la ip del router "puerta de enlace" normalmente 192.168.1.1
3- si no te funciona nada de eso configura tpc/ip manualmente en la interfaz gráfica.
prueba tambien desactivando y activando la red,click derecho donde configuras la red de forma gráfica.
si tienes alguna duda comentalo

vale, cuando pueda eso haré. gracias. ya contaré los resultados.
#380
Programación General / Crear OS
5 Noviembre 2011, 23:04 PM
Bueno, hace unos años empecé a interesarme por la informática y me documenté, así que los conceptos generales los tengo bastante aprendidos. Más tarde, empecé a programar en C. Pero un día me planteé la posibilidad de crear un OS muy simple. Sé que es muy difícil y complicado y más para un novato como yo, así que no crea que lo consiga. Lo quiero intentar básicamente para aprender.

Según vi, tendría que programarlo en assembler y en C. He buscado información, estoy leyendo algunos libros (por ejemplo, estoy empezando Sistemas Operativos de Tanenbaum) y tutoriales, pero tengo las siguientes dudas:

-Si assembler es diferente para cada arquitectura de procesador, ¿significa que si hiciera un OS tendría que hacer una versión diferente para cada una? ¿No hay un assembler válido para todos los procesadores y ordenador? Si no es así, ¿podría programar el OS muy poquito en assembler y hacerlo casi todo en C para sólo tenga que modificar la pequeña parte del assembler porque C es portable? Es que, por ejemplo, cuando yo me descargo Ubuntu, sólo me pide si el procesador 32 bits o de 64, nada más. Si hiciera un OS de 32 bits, ¿sólo tendría una versión?

-¿Es recomendable la arquitectura ewa?

-Para programar en C, ¿cómo tendría que hacerlo? Porque si hago el OS de cero, no tengo ni compilador ni librerías de nada. ¿Tendría que hacer todo esto de nuevo? ¿Las librerías se programan en assembler?

-¿En qué formato debe estar el "arrancable" de un OS (es decir, lo que pones en un CD de arranque)? Porque en Ubuntu he hecho lo siguiente: he copiado un pequeño código de Hello World en assembler, lo he guardado .asm, con nasm lo he  ensamblado y ahora es un archivo .o. ¿Es suficiente así para que arranque? ¿O de .o lo tengo que transformar a .iso o .img? Si es así, ¿cómo lo hago?

-Cuando programo un programa para ponerlo "de arranque", de modo que se muestre sin haber entrado en ningún OS, ¿qué tengo que hacer, un sólo programa que contenga ASM y C o un programa en ASM que llame a otro en C?

-¿Cómo se hace para incluir C en un código ASM? ¿Las librerías, dónde debo ponerlas? ¿Al principio del programa? Porque un printf no puedo hacerlo.

Sé que tengo demasiadas dudas, y seguramente la mayor parte de ellas estúpidas porque me debo estar haciendo un cacao tremendo con toda la información que estoy mirando. Pero seguro que por aquí hay alguien capaz de ayudarme  :D.