binary - sistema - ¿Puedo escribir un programa en binario directamente? ¿Cómo puedo conseguir que la computadora lo ejecute?
sistema binario en informatica (7)
Me imagino que al interactuar directamente con el hardware se podría escribir en binario. Para voltear los bits binarios adecuados, puede usar una aguja magnetizada en su unidad de disco. O mariposas.
Sé que puede parecer extraño y buscar problemas, pero creo que experimentar lo que los antiguos programadores experimentaron antes es algo interesante. Entonces, ¿cómo puedo ejecutar un programa escrito solo en binario? (Supongamos que sé lo que estoy haciendo y no uso el ensamblaje, por supuesto).
Solo quiero escribir una serie de bits como 111010111010101010101
y ejecutar eso. Entonces, ¿cómo puedo hacer eso?
O simplemente está escribiendo algún código malicioso. He visto algunos métodos divertidos que usan un AVR como emulador de teclado, abro un editor de texto simple, escribo el código que está en la memoria de eeprom de AVR, y lo canalizo a "depuración" (en sistemas Windows), y lo ejecuto. También es una buena forma de escapar de algunas restricciones;)
Realmente depende de la plataforma que estés usando. Pero eso es algo irrelevante basado en el propósito propuesto. Los programadores más tempranos de las computadoras modernas, como piensan, no programaron en binario, programaron en ensamblaje.
No aprenderá nada intentando programar en binario para un sistema operativo específico y un tipo de CPU específico utilizando un editor hexadecimal.
Si desea averiguar cómo funcionaron los programadores de pre-ensamblaje (con datos binarios simples), busque las tarjetas perforadas .
.
Usa un editor hexadecimal. Por supuesto, deberá averiguar el formato ejecutable relevante para su sistema operativo, suponiendo que desee utilizar un sistema operativo ... Supongo que siempre puede escribir su propio cargador de arranque y ejecutar el código directamente de esa manera, si Quiero conseguir todo el hardcore.
No creo que realmente estés experimentando lo que los programadores experimentaron en ese entonces, sin embargo, por una parte, no usarás tarjetas perforadas, cinta de papel, etc. Por otra parte, tu contexto es completamente diferente: sabes cómo son las computadoras ahora , por lo que te sentirá dolorosamente primitivo ... mientras que en ese entonces, habría sido sangrante y emocionante solo por esos motivos.
Use un editor hexadecimal para crear su archivo, asegúrese de usar un formato que el cargador de su sistema operativo respectivo comprenda y luego haga doble clic en él.
Use un editor hexadecimal, escriba sus bits y guárdelo como un archivo ejecutable (ya sea solo con la extensión de archivo .exe
en Windows o con chmod a+x filename
en Linux).
El problema es: también tendrías que escribir todas las cosas específicas del sistema operativo en formato binario, y tendrás que tener una tabla que se traduzca del código del ensamblador a cosas binarias.
¿Por qué no, si desea experimentar la programación de bajo nivel, pruebe el ensamblador MMIX de DE Knuth?
la mayoría de los ensambladores (por ejemplo, el ensamblador MMIX vea www.mmix.cs.hm.edu) no le importa si escribe instrucciones o datos.
Así que en lugar de cablear
Main ADD $0,$0,3 SUB $1,$0,4 ...
puedes escribir
Main TETRA #21000003 TETRA #25010004 ...
De esta manera, puede ensamblar su programa a mano y luego hacer que el ensamblador lo transforme en una forma que el cargador necesita. Entonces lo ejecutas. Normalmente, usas la notación hexadecimal, no la binaria, porque es difícil mantener un registro de tantos dígitos. También puede usar decimales, pero los gráficos que le indican qué instrucciones tienen qué códigos están típicamente en notación hexadecimal.
¡Buena suerte! Tuve que hacer cosas como esta cuando comencé a programar computadoras. Todos estaban contentos de tener un ensamblador o incluso un compilador entonces. Martín