¿Qué necesito para empezar a escribir en lenguaje máquina? [cerrado]

Quiero empezar a aprender el lenguaje de máquina, ya conoces el tipo de lenguaje 0010011. ¿Qué programa, si lo hay, puedo utilizar para escribir en lenguaje de máquina? por favor, sé que ustedes me van a decir que "hay mejores idiomas por ahí o por qué querrían aprender eso", comentarios. Soy consciente de eso, así que no publique ninguno de esos comentarios. Gracias.

preguntado el 28 de agosto de 11 a las 02:08

"¿Por qué querrías aprender eso?" Este tipo de comentarios son útiles porque sus razones para querer usar el lenguaje de máquina (¿no el lenguaje ensamblador?) pueden sugerir un consejo diferente. -

Creo que te refieres a binario (si realmente tienes la intención de escribir tu código en 1 y 0), no en lenguaje de máquina. -

¿Te refieres al lenguaje ensamblador? -

Incluso en los viejos tiempos, cuando programaba el lenguaje de máquina, 00010010 habría sido 12. -

Claro, pero aparentemente D Krueger, con bastante sensatez, usó hexadecimal en lugar de decimal. (En el verdaderamente En los viejos tiempos, mucho antes de mi tiempo, 000010010 habría sido 022). -

4 Respuestas

¡Bravo! Soy un programador de ASM veterano y el último en burlarse de su valioso proyecto. Todavía sé que el código de operación Z-80 para CALL es realmente 0xC9 (o, como podría decirlo, 1100 1001). En mi opinión, se beneficiará del ejercicio.

Sin embargo, propongo que, en lugar de comenzar con bits, comience con código ensamblador. Luego, cuando se sienta cómodo, es un cambio rápido al lenguaje de máquina. Puede hacer esto fácilmente con cualquier versión de Visual Studio y, creo, con cualquier IDE razonable.

EDITAR Lo siento mucho: debería haber dicho "cualquier versión de Visual Studio que compile su programa en código de máquina", es decir, al menos VS para C / C ++. Sé menos que nada sobre C #, pero tengo la impresión de que el compilador de C # emite una versión traducida de su código en algo llamado "Lenguaje intermedio" (IL). Por lo tanto (como lo leo) no hay una manera clara de incluir código fuente en lenguaje ensamblador en un programa fuente C #. Hay una discusión sobre cómo llamar a una DLL desde un programa de C # aquí:

http://www.codeproject.com/KB/cs/unmanage.aspx

Su mejor y más fácil apuesta (quizás su única apuesta) es instalar Visual Studio Express para C / C ++ y luego explorar el uso de la .asm directiva:

http://msdn.microsoft.com/en-us/library/aa258994%28v=vs.60%29.aspx .

Quédese con el lenguaje C; ignore el lenguaje C ++ por ahora. Tendrá que aprender suficiente C para ingresar, compilar y ejecutar un pequeño programa de demostración en lenguaje C (por convención e historial, este es un programa llamado hello.c que puedes encontrar en cualquier lugar). Luego, puede insertar una sección de .asm y trabajar con el depurador para experimentar con esa sección.

Sí, dije que te beneficiarías con el ejercicio, pero no dije que sería fácil, es difícil: tienes que aprender mucho sobre lo que hay debajo del capó. El tema podría razonablemente ser un curso de un semestre.

Pero puedes hacerlo, con perseverancia en el tiempo. Ahí es precisamente donde radica el beneficio.

¡A por ello!

Respondido 28 ago 11, 16:08

¿Como empiezo? dijiste que cualquier versión de Visual Studio funcionará, ¿funcionará en Visual C #? y donde escribo mi codigo? ¿puedes darme una dirección? - ángel

Gracias por la información. Sé que todas las ventanas tienen un lenguaje de tipo VBScript integrado, ¿puedo usarlo en su lugar? Solo me preguntaba, porque si puedo usar VBScript, entonces puedo usarlo en cualquier computadora, lo que significará disponibilidad. - ángel

No, me temo que un lenguaje similar a VBScript no funcionará para usted. - Pete Wilson

No escribe 00010010. Necesita estudiar ensamblador para una CPU específica, y luego encontrar un ensamblador para esa CPU y, si no posee esta CPU, un emulador para ejecutar su código ensamblador en ella.

Respondido 28 ago 11, 06:08

Los compiladores son inútiles al escribir en lenguaje de máquina. - D Krueger

@D Krueger: es extraño decirlo. Un compilador para un lenguaje de alto nivel como C # sería inútil para el código de máquina. ¿Pero no es necesario todavía tener algún tipo de compilador / intérprete para organizar y enviar las instrucciones del código máquina al procesador? - Josh Darnell

@ jadarnel27, lo que Krueger quiere decir es que el programa que traduce las instrucciones de ensamblaje al código de máquina real se llama un ensamblador. No existe un "compilador ensamblador" y un compilador se refiere específicamente a algo que traduce un nivel más alto lenguaje que el código ensamblador. - hmakholm dejó a Monica

(Y para aquellos que se preguntan qué que se trataba, Dani escribió originalmente "... luego busca un compilador ensamblador para esa cpu ...", que ya he arreglado). - hmakholm dejó a Monica

@Henning Oh cielos. Voy a guardar mis comentarios sobre el código de máquina para mí a partir de ahora jaja. Gracias por la iluminación, ¡eso tiene mucho más sentido ahora! - Josh Darnell

La gente (normalmente) no escribe en lenguaje de máquina, escribe en mnemotécnicos de ensamblador y hace que el ensamblador genere el código de máquina correspondiente. Si realmente desea escribir en lenguaje de máquina, elija un manual de desarrollador para su procesador, como los manuales de desarrollador de Intel.

Si desea aprender a usar el ensamblaje, obtenga un libro como Programación de ensamblaje profesional de Wrox. Aprenderá cuándo sería útil elegir ensamblado en un lenguaje de nivel superior.

Respondido 28 ago 11, 06:08

Creo que te refieres al lenguaje ensamblador. Consiga una placa PSOC y Google para el tutorial de lenguaje ensamblador ARM. El ensamblaje puede ser realmente divertido una vez que te acostumbras, pero depurarlo puede ser un dolor de cabeza, especialmente si tienes varios bucles internos.

Respondido 28 ago 11, 06:08

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.