2010-11-16 27 views
23

Sé que puede parecer extraño y buscar problemas, pero creo que experimentar lo que los antiguos programadores experimentaron 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.)¿Puedo escribir un programa en binario directamente? ¿Cómo puedo hacer que la computadora lo ejecute?

Solo quiero escribir una serie de bits como 111010111010101010101 y ejecutar eso. Entonces, ¿cómo puedo hacer eso?

+13

Usted no será capaz de ejecutar '111010111010101010101'. Tienes un error de sintaxis en el segundo bit. ;) – gnovice

+1

Creo que no se puede usar algún lenguaje de programación y compilador o escribir un archivo por lotes. – Pratik

+2

Un editor hexadecimal * funcionaría *. Aunque no habrá ninguna opción cómoda ... la programación en el montaje ya es una perra, diviértanse sin mnemotécnicos. – delnan

Respuesta

43

Utilice un editor hexadecimal. Necesitarás encontrar el formato ejecutable relevante para tu sistema operativo, por supuesto, suponiendo que quieras usa un sistema operativo ... Supongo que siempre puedes escribir tu propio gestor de arranque y simplemente ejecutar el código directamente de esa manera, si quieres obtener todo hardcore.

no creo que usted realmente estar experimentando lo que los programadores experimentados en ese entonces, aunque - por un lado, que no va a utilizar tarjetas perforadas, cinta de papel, etc. Por otra parte, el contexto es totalmente diferente - usted sabe cómo son las computadoras ahora, por lo que se sentirá dolorosamente primitivo para usted ... mientras que en ese momento, habría sido agotador y emocionante solo por esos motivos.

+5

¿Qué hay de la programación con solo transistores e interruptores? – CMCDragonkai

+0

¿Qué hay de la programación mediante el uso de una aguja magnetizada en el disco? –

5

Utilice un editor hexadecimal para crear su archivo, asegúrese de utilizar un formato que comprenda el cargador de su sistema operativo respectivo y haga doble clic en él.

16

Utilice un editor hexadecimal, escriba sus bits y guárdelo como un archivo ejecutable (ya sea con la extensión de archivo .exe en Windows o con en Linux).

El problema es que también debe escribir todas las cosas específicas del sistema operativo en formato binario, y tendrá que tener una tabla que traduzca del código del ensamblador a material binario.

Por qué no, si desea experimentar la programación de bajo nivel, dele D.E. ¿El ensamblador de Knuth MMIX es un intento?

9

Realmente depende de la plataforma que esté utilizando. Pero eso es algo irrelevante en función de su propósito propuesto. Los programadores más antiguos de las computadoras modernas que usted piensa en ellos hicieron el programa no en binario - programaron en el ensamblaje.

No aprenderá nada tratando de programar en binario para un sistema operativo específico y tipo específico de CPU utilizando un editor hexadecimal.

Si desea saber cómo funcionan los programadores de premontaje (con datos binarios simples), busque .

.

2

O simplemente está escribiendo algún código malicioso. He visto algunos métodos divertidos que usan un AVR como emulador de teclado, abre un editor de texto simple, escribe el código que está en la memoria eeprom AVR y lo canaliza a "depurar" (en sistemas Windows) y lo ejecuta. Es una buena manera de escapar de algunas restricciones también;)

4


la mayoría de los ensambladores (MMIX ensamblador, por ejemplo, ver www.mmix.cs.hm.edu) no me importa si de escribir instrucciones o datos.

Así que en lugar de wirting

 
Main ADD $0,$0,3 
    SUB $1,$0,4 
    ... 

puede escribir

 
Main TETRA #21000003 
    TETRA #25010004 
    ... 

Así de esta manera se puede armar su programa a mano y luego tienen el ensamblador lo transforman en una forma que necesita el cargador. Entonces lo ejecutas. Normalmente se usa la notación hexadecimal no binaria porque hacer un seguimiento de tantos dígitos es difícil. También puede usar decimal, pero los gráficos que le dicen qué instrucciones tienen qué códigos están típicamente en notación hexadecimal.

¡Buena suerte! Tenía que hacer cosas como esta cuando comencé a programar computadoras. Todo el mundo estaba contento de tener un ensamblador o incluso un compilador en ese momento. Martin

2

Imagino que al interactuar directamente con el hardware puede escribir en binario. Para voltear los bits binarios correctos, puede usar una aguja magnetizada en su unidad de disco. O mariposas

Cuestiones relacionadas