2008-08-26 88 views
14

Me gustaría aprender a programar en Assembler. He hecho un poco de montaje antes (durante mi curso de computación A-Level) pero definitivamente era un 'pseudo ensamblador' simplificado. He tomado prestado el viejo manual de referencia de Z80 Assembler de mi padre, y eso parece bastante interesante, así que si es posible, me gustaría probar el ensamblador Z80.Assembler IDE/Simulator para principiante

Sin embargo, no tengo un procesador Z80 a mano, y me gustaría hacerlo en mi PC (tengo Windows o Linux, por lo que es bueno). He encontrado varios ensambladores en Internet, pero no estoy particularmente interesado en ensamblar a un archivo hexadecimal, solo quiero poder ensamblarlo en algo que pueda ejecutar algún tipo de simulador en la PC. Preferiblemente este simulador me mostraría el contenido de todos los registros, ubicaciones de memoria, etc., y me permitiría seguir las instrucciones. He encontrado algunas partes de software que sugieren que podrían hacer esto, pero se niegan a compilar o no parecen funcionar correctamente. ¿Alguien tiene alguna sugerencia? Si hay buenos elementos de simulador/IDE disponibles para otro tipo de ensamblador, entonces podría intentarlo (suponiendo que haya un buen manual de referencia en línea disponible).

Respuesta

10

He encontrado algunas partes de software que sugieren que podrían hacer esto, pero o bien se niegan a compilar, o no parecen funcionar correctamente. ¿Alguien tiene alguna sugerencia?

Escribe uno. Lo mejor es elegir un conjunto de instrucciones simple y sencillo (Z80 debería ser perfecto). Recuerdo haberlo hecho como un ejercicio de pregrado de primer año. Creo que escribimos el simulador en C++ y simulamos el ensamblaje 6800, pero en realidad cualquier conjunto de lenguaje/instrucción servirá. La idea de "aprender lenguaje ensamblador" en estos días es tener la idea de cómo funcionan las computadoras en el nivel más bajo, solo unos pocos (escritores de compiladores, etc.) tienen alguna razón real para escribir código ensamblador. dias. Los procesadores modernos están repletos de características diseñadas para ser utilizadas por compiladores para ayudar a optimizar el código de velocidad/ejecución simultánea/consumo de energía/etc., y tratar de escribir el ensamblaje a mano para un procesador moderno sería una pesadilla.

No se preocupe por que la aplicación esté lista para la producción, a menos que lo desee, con toda probabilidad los fragmentos de software que ha encontrado hasta el momento fueron escritos por personas como usted que querían descubrir cómo funciona el ensamblaje y escribieron su propio simulador, luego se dio cuenta de cuánto trabajo se necesitaría para tenerlo listo para la producción para que el público en general pudiera usarlo.

+1

Escribir un ensamblador es muy divertido. Te enseña muchas trampas también. –

3

Puede que le interese this para un simulador Z80, y he tenido buenas experiencias con WinAsm.

3

También podría considerar aprender el lenguaje de ensamblaje x86, que podría hacer usando un ensamblador en línea en Visual Studio: aunque es un conjunto de instrucciones más grande que Z80, tendría la ventaja de poder utilizar herramientas mucho mejores que las estar disponible para el Z80.

También acabo de recordar que las herramientas de Keil 8051 y el brazo tienen un simulador en el IDE - hay versiones de tamaño restringido de éstos disponibles para su descarga gratuita desde www.keil.com

2

escribo asm z80 para el ZX Spectrum (aún, lo sé :)) y use SJasmPlus para vincular a un archivo emulador de espectro. Muchos de los mejores emuladores de Spectrum como Fuse y ZXSpin también incorporaron editores para la depuración y el parche sobre la marcha.

3

Si por casualidad usted ya sabe .NET, entonces esto puede ser de utilidad:

Es un poco limitado, y sólo puede trabajar con .NET 1.1, pero se puede utilizar al menos una IDE "moderno" para él, y hay muchos documentos para ello.

<%@ page language="Asm80386" %> 
<% 
Str: DB "Testing...", 0 

    mov eax, -2 
    cmp eax, 2 
    jle Label1 
    xor eax, eax 
Label1: 
    lea esi, Str 
    push esi 
    call "Response.Write(string)" 
    pop esi 
%> 
<br>EAX: <%= eax %> 

Otra opción, si usted quiere ir "núcleo duro" es conseguir algo así como FreeDOS y VMware, y usar eso. Estoy seguro de que una venta de garaje (¿venta de maletero? Venta de garaje?) O una librería de segunda mano tendría una copia de la antigua Biblia de interrupciones de DOS de Peter Norton. :)

Personalmente, aprendí x86 asm mediante el uso de Turbo Pascal (que creo que ahora está libre de Borland?), Que tenía la capacidad de incrustar instrucciones de montaje dentro de una función. Facilité la configuración de la aplicación y pude centrarme en las cosas que quería hacer. Más tarde usé MacVAX en Auckland Uni, que estaba bien, pero el VAX está muy muerto. También puedes aprender x86 :)

3

SimpSim es definitivamente vale la pena echarle un vistazo.Es sólo para Windows, pero el conjunto de características es bastante decente:

  • La memoria principal y registrar pantalla
  • una función de editor con resaltado de sintaxis
  • Ejecutar, paso, y romper las funciones
+0

No tiene pila. De lo contrario, agradable. Recomiendo MipSim en su lugar http://www.mipsim.com/mipsim/screens.aspx –

3

WinApe es un buen emulador de Amstrad CPC. El Amstrad CPC era una computadora hogareña producida en los años 80. Usó un Z80 como su CPU. Usando el emulador puedes visualizar muchas partes internas durante la programación. Incluye un depurador y un desensamblador para el código Z80.

9

Es posible que desee consultar el simulador de código abierto 8085 "GnuSim8085", está destinado específicamente para fines educativos, y de hecho fue escrito por el alumno mientras se preparaba para sus exámenes. Se ejecuta en ambos, Linux y Windows.

+0

+1, esto es lo que he estado buscando. Gracias. – mydoghasworms

3

Apunta más! Intenta obtener un simulador para un lenguaje ensamblador más potente. Recuerde, Z80 y 808x eran procesadores de gama baja con conjuntos de instrucciones de bajo nivel y torpes.

Algo como VAX de DEC se consideraba como el Rolls-Royce de los conjuntos de instrucciones. Y luego están los locos conjuntos de instrucciones Risc que hacen cosas realmente extrañas. Tal vez pueda encontrar definiciones de esos para que pueda tener una oportunidad de implementarlos.

1

Cuando estaba en la universidad utilizamos microprocesadores PIC. Están hechos por una compañía llamada Microchip. También tienen un gran IDE con un simulador/emulador de chip que te permite hacer cosas sin tener las fichas.

5

MipSim es GRATIS

http://www.mipsim.com

Características principales de MIPSim 2

  • Built-in editor de código con las características como el resaltado de sintaxis y plegado
  • valores de registro y memoria
  • de pantalla en diferentes representaciones (entero con signo, entero sin signo, hexadecimal y ASCII)
  • Establezca el tamaño del bloque (f ULL-palabra, media palabra, byte) de las células de memoria para un examen más fácil de la memoria de valores
  • Cambie los valores de los registros y de las células de memoria con un solo clic, incluso durante la simulación y depuración
  • en tiempo real interfaz de usuario de actualización que permite para ver cómo los valores de los registros y las células de memoria cambian durante la ejecución
  • depurador integrado con la ejecución de instrucciones paso a paso, la instrucción de saltar y características de punto de interrupción
  • Herramientas para la inserción de valores enteros ASCII, UNICODE y la memoria para las pruebas de su código
  • Herramientas para verificar las etiquetas duplicadas o faltantes y el parámetro de instrucción rs
  • Guarda el estado de la computadora (valores de todos los registros y celdas de memoria) para que la próxima vez que ejecutes el simulador puedas continuar desde donde lo dejaste.
  • Establecer la velocidad de simulación - bajas velocidades son grandes para rastrear el código y para ver cómo se comporta
  • instrucciones Codificar - código de máquina producto, ya sea en representación binaria o hexadecimal
  • conjunto de fiador errores de tiempo y de tiempo de ejecución
  • más fácil depuración con mensajes de error descriptivos
  • diseño multi-hilo - MIPSim no se atascan (con suerte;) incluso si el código de montaje ejecutado es errónea o contiene bucles infinitos
  • MIPSim API - hacer sus propios programas que pueden leer desde y escribe en los registros ym ¡emory de MIPSim, gran flexibilidad para pruebas potentes!
3

Esto no tendría ningún significado para usted ahora, pero solo para las personas que pasan por allí. Este es el mejor simulador de código de ensamblaje con el que me he encontrado. Realmente vale la pena!

http://www.emu8086.com/

1

¿Por qué utilizar un emulador?

Descargue MASM o NASM y escriba buena arquitectura antigua 80386. Un montón de muestras en línea y herramientas de aprendizaje.

¡Gran cantidad de razones reales para usar el ensamblador!

+0

-1: "¡Un montón de razones reales para usar el ensamblador!" Las buenas razones para usar el lenguaje ensamblador son muy raras. Tienes que ser un experto en microarquitectura para obtener algún beneficio, incluso si tu compilador no ha emitido un buen código. Por lo general, su algoritmo no es óptimo de todos modos, por lo que sería mejor optimizarlo. –

4

Si está en Windows 8085 Simulator es la mejor opción. 8085 Simulator by J-tech Softwares

Su interfaz de usuario es excelente que cualquier otro simulador. Además, este simulador proporciona una vista en tiempo real del mapa de memoria en muy poco tiempo (también durante la ejecución).

Pero este no es compatible con Windows 98 o inferior, para eso debe consultar otros simuladores como "GnuSim8085".

1

hay un simulador que es Visual6502 para la enseñanza fundamental de la arquitectura de microprocesador. Tiene un editor, ensamblador, operación de E/S y animación de cómo trabajar un microprocesador. Estoy disponible en el siguiente enlace.

http://www.pcsistem.net/visual/index.htm

Cuestiones relacionadas