Autor
|
Tema: Assembly sin SO ¿? (Leído 13,097 veces)
|
dac
|
Hola a todos! He estado estudiando el lenguaje assembly, pero la mayoría de los textos definen entre programación windows (DOS más especificamente) y Unix, Unix-like, pero lo que a mi me interesa realmente es aprender/entender el funcionamiento interno/básico de una computadora por lo cual me resulta insatisfactorio mostrar una cadena por pantalla haciendo uso de una interrupción o syscall al kerndel del SO local ... me gustaría me recomendaran o me contaran algo al respecto de la programación sin depender del SO, como se maneja el "video" (aun no tengo remota idea de como funciona), teclado, etc,etc... uds me entienden.. quiero saber como funciona.. PD: me refiero a algo como esto http://mikeos.berlios.de/ (no sé lo suficiente como para intentar entender esto) Saludos! y gracias!
|
|
|
En línea
|
|
|
|
x64core
Desconectado
Mensajes: 1.908
|
vos queres saber quiza architectura de la PC, aunque en los libros viejos me e fijado que habla bastante como fucionan el teclado la pantalla, etc, por ejemplo la pantalla hay un cañon que corre infinita veces la pantalla llenandola de pixeles a una velocidad super veloz y todo eso lo podes ver en un libro que se llama universo digital de IBM , PC o algo así en el primer enlace sale de google. no le lei todo a aprendemele de memoria todo pero le di una buena leida. tambien me e fijado que antes, en la programacion en DOS se trataba mucho esos temas, luego con windows ya casí no se trata mucho, obviamente porque windows hace la tarea más facil
|
|
|
En línea
|
|
|
|
|
dac
|
Por un lado conseguí un par de libros de la era "post DOS" y creo que voy ya teniendo donde sacar la info que quiero y también mire los pdf's de intel y me sirvió mucho la info un poco más profunda de los micros. Muchas Gracias!
|
|
|
En línea
|
|
|
|
_Enko
|
DOS es un sistema operativo... si lo usas, no cumples la condicion de tu pregunta (assembly sin SO)
La única librería que podrias usar serían las interupciones de la BIOS y te mantendrias dentro de esa condicion. Pero estarías atado a programar en 16bit.
Podrias programar bajo DOS pero sin usar las interrupciones de DOS, sino los de la BIOS unicamente... igual sería hacer trampa.
|
|
|
En línea
|
|
|
|
Oblivi0n
Desconectado
Mensajes: 392
Odio las ranas.
|
Para usar ensamblador sin sistema operativo, tienes que conocer todos los detalles de los dispositivos que manejes, vease : bancos de registros, mapeos de memoria, tamaño de la memoria, numero de registros accesibles, etc etc. Si quieres, te puedo pasar un programar que usamos en la universidad en una asignatura que es un poco iniciacion a la arquitectura de programación. El programa simula un computador pero por software, tiene su propio ensamblador, que es relativamente parecido al ASM x86 de intel, y puedes ejecutar programas viendo todo lo que pasa ( incluso virtualizar pantalla y teclado ). Eso si, es una lata aprender a usarlo
|
|
|
En línea
|
|
|
|
zu-zu
Desconectado
Mensajes: 31
|
A pesar de que se diga lo contrario, no todo son interrupciones de la BIOS para modo real, ya que existe gran variedad de alternativas para programar aplicaciones sin necesidad de un OS, como por ejemplo los opcodes IN, OUT, LGDT, LIDT, etc.
Al no haber ningún OS instalado, la BIOS debe cargar nuestro bootloader -ubicado en el sector 0 de la unidad correspondiente- en la dirección de memoria de 16 bits 0x7C00 porque después de todo estamos en modo real, para luego cargar el núcleo del programa, pasar a modo protegido, etc.
La memoria de vídeo, al menos en modo texto, es mapeada en una dirección de memoria que ya no recuerdo, y escribiendo allí es posible imprimir caracteres en la pantalla.
La mejor alternativa para aprender a programar a tan bajo nivel sería leer la documentación oficial de Intel y tener conocimientos mínimos sobre hardware. Existe mucha documentación al respecto, sólo hay que saber buscar correctamente.
PD: En vista de que se ha hablado sobre simular un ordenador por software, te recomendaría probar BOCHS.
|
|
« Última modificación: 2 Julio 2012, 22:45 pm por zu-zu »
|
En línea
|
|
|
|
Oblivi0n
Desconectado
Mensajes: 392
Odio las ranas.
|
Desconozco si en los ordenadores convencionales las direcciones de memoria se mapean en unos sitios "predeterminados", pero hasta donde alcanzan mis conocimientos, eso es una decisión del diseño del propio computador, y no tienen porque estar en esa dirección de memoria (corriganme si me que equivoco).
|
|
|
En línea
|
|
|
|
zu-zu
Desconectado
Mensajes: 31
|
Desconozco si en los ordenadores convencionales las direcciones de memoria se mapean en unos sitios "predeterminados", pero hasta donde alcanzan mis conocimientos, eso es una decisión del diseño del propio computador, y no tienen porque estar en esa dirección de memoria (corriganme si me que equivoco).
La memoria de vídeo en modo texto se mapea en 0xB8000, para modo gráfico se encuentra en 0xA0000. Ambas en ordenadores convencionales.
|
|
|
En línea
|
|
|
|
dac
|
_Enko:
Claro que si... pero precisamente por eso busque documentación post DOS , quiero decir antes del DOS
zu-zu:
Me has dado mucha luz en el asunto, lo tengo un poco más claro, donde puedo aprender a manejar la memoria de video? (en que libros) , probaré BOCHS , hace unos días encontré "MSX88" y aluciné; lo usé con DOSBOX sin embargo no me convenció y busque una alternativa que no encontré, gracias por recomendarlmelo
Oblivi0n:
Me podrías decir cual es dicho software? , y donde puedo encontrarlo?, me fascina lo que dices acerca de este
Gracias a todos!
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
[Movido]C + assembly
Programación Visual Basic
|
jose2c
|
0
|
1,425
|
21 Febrero 2006, 23:32 pm
por jose2c
|
|
|
Assembly
Bugs y Exploits
|
VCore
|
3
|
3,426
|
8 Octubre 2010, 13:35 pm
por tragantras
|
|
|
Duda de Assembly
ASM
|
defconx
|
2
|
3,404
|
25 Septiembre 2012, 18:14 pm
por fary
|
|
|
[HLA] High Level Assembly
ASM
|
Stuxnet
|
1
|
4,558
|
14 Noviembre 2015, 02:46 am
por charlymd
|
|
|
me molesta que se crean dioses de assembly
ASM
|
Weeken
|
8
|
6,100
|
14 Diciembre 2012, 16:27 pm
por Eternal Idol
|
|