Pregunta

Me gustaría aprender a programar en Assembler.Hice un poco de ensamblaje antes (durante mi curso de Computación de nivel A), pero definitivamente fue un 'pseudoensamblador' simplificado.Tomé prestado el antiguo manual de referencia del ensamblador Z80 de mi papá y parece bastante interesante, así que, si es posible, me gustaría probar el ensamblador Z80.

Sin embargo, no tengo un procesador Z80 a mano y me gustaría hacerlo en mi PC (tengo Windows o Linux, así que cualquiera de los dos es bueno).He encontrado varios ensambladores en Internet, pero no estoy particularmente interesado en ensamblarlo en 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.Encontré algunos fragmentos 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 simuladores/IDE disponibles para otro tipo de ensamblador, entonces podría intentarlo (suponiendo que haya un buen manual de referencia en línea disponible).

¿Fue útil?

Solución

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

Escribe uno.Lo mejor es elegir un conjunto de instrucciones sencillo y agradable (el Z80 debería ser perfecto).Recuerdo haber hecho esto como un ejercicio de primer año de pregrado; creo que escribimos el simulador en C++ y simulamos el ensamblado 6800, pero en realidad cualquier lenguaje/conjunto de instrucciones servirá.

La idea de "aprender lenguaje ensamblador" en estos días es tener una idea de cómo funcionan las computadoras en el nivel más bajo, solo unos pocos seleccionados (escritores de compiladores, etc.) tienen alguna razón real para escribir código ensamblador en estos días.Los procesadores modernos están repletos de funciones diseñadas para ser utilizadas por compiladores para ayudar a optimizar el código en cuanto a velocidad/ejecución simultánea/consumo de energía/etc., y tratar de escribir un ensamblado a mano para un procesador moderno sería una pesadilla.

No se preocupe por preparar su aplicación para producción a menos que así lo desee; con toda probabilidad, los fragmentos de software que ha encontrado hasta ahora fueron escritos por personas exactamente como usted que querían descubrir cómo funciona el ensamblaje y escribieron su propio simulador. Luego me di cuenta de cuánto trabajo implicaría tenerlo "listo para producción" para que el público en general pudiera usarlo.

Otros consejos

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

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

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

Pero este no es compatible con Windows 98 o inferior, por eso es necesario comprobar otros simuladores como "GnuSim8085".

MipSim es GRATIS

http://www.mipsim.com

Características principales de MIPSim 2

  • Editor de código incorporado con funciones como resaltado de sintaxis y plegado
  • Mostrar valores de registro y memoria en diferentes representaciones (entero con signo, entero sin signo, hexadecimal y ASCII)
  • Establezca el tamaño del bloque (palabra completa, media palabra, byte) de las celdas de memoria para examinar más fácilmente los valores de la memoria.
  • Cambie los valores de los registros y las celdas de memoria con un solo clic incluso durante la simulación y la depuración
  • La actualización de la interfaz de usuario en tiempo real le permite ver cómo cambian los valores de los registros y las celdas de memoria durante la ejecución.
  • Depurador integrado con ejecución de instrucciones paso a paso, omisión de instrucciones y funciones de punto de interrupción
  • Herramientas para insertar cadenas ASCII, UNICODE y valores enteros en la memoria para probar su código
  • Herramientas para comprobar etiquetas y parámetros de instrucciones duplicados o faltantes
  • Guarde el estado de la computadora (valores de todos los registros y celdas de memoria) para que la próxima vez que ejecute el simulador pueda continuar desde donde lo dejó.
  • Establezca la velocidad de simulación: las velocidades bajas son excelentes para rastrear su código y ver cómo se comporta.
  • Codificar instrucciones: producir código de máquina en representación binaria o hexadecimal
  • Detectar errores de tiempo de ensamblaje y tiempo de ejecución
  • Depuración más sencilla con mensajes de error descriptivos
  • Diseño de subprocesos múltiples: MIPSim no se atasca (con suerte;) incluso si el código ensamblador ejecutado es erróneo o contiene bucles infinitos
  • API MIPSim: cree sus propios programas que puedan leer y escribir en los registros y la memoria de MIPSim, ¡gran flexibilidad para pruebas potentes!

¡Apuntar más alto!Pruebe y obtenga un simulador para un lenguaje ensamblador más potente.Recuerde, Z80 y 808x eran procesadores de gama baja con conjuntos de instrucciones incómodos y de gama baja.

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

Quizás te interese este para un simulador Z80, y he tenido buenas experiencias con WinAsm.

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

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

Si ya conoce .NET, esto puede resultarle útil:

http://www.viksoe.dk/code/asmil.htm

Es un poco limitado y es posible que solo funcione con .NET 1.1, pero al menos podría usar un IDE "moderno" y hay muchos documentos disponibles 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 quieres ir al "núcleo duro", es conseguir algo como FreeDOS y VMWare, y usarlo.Estoy seguro de que será una venta de garaje (¿venta de maleteros de coche?¿venta de garaje?) o una librería de segunda mano tendría una copia de la antigua biblia de interrupciones DOS de Peter Norton.:)

Personalmente, aprendí x86 asm usando Turbo Pascal (que creo que ahora está libre de Borland), que tenía la capacidad de incrustar instrucciones de ensamblaje dentro de una función.Fue más fácil configurar la aplicación y pude concentrarme en las cosas que quería hacer.Más tarde usé MacVAX en la Universidad de Auckland, lo cual estuvo bien, pero el VAX está prácticamente muerto; también puedes aprender x86 :)

SimpSim Definitivamente vale la pena echarle un vistazo.Es sólo para Windows, pero el conjunto de funciones es bastante decente:

  • Memoria principal y visualización de registros.
  • Editor incorporado con resaltado de sintaxis
  • Funciones de ejecución, paso y pausa

WinApe es un buen emulador de un Amstrad CPC.El Amstrad CPC fue un ordenador doméstico producido en los años 80.Usó un Z80 como CPU.Usando el emulador puedes mostrar muchos de los aspectos internos mientras programas.Incluye un depurador y un desensamblador del código Z80.

Esto no tendría ningún significado para usted ahora, sino sólo para la gente que pasa por aquí.Este es el mejor simulador de código ensamblador que he encontrado.¡Realmente vale la pena!

http://www.emu8086.com/

Echa un vistazo a Emuladores Thomas Scherrer Z80 para obtener una lista de posibles emuladores que podría utilizar.

Escribo z80 asm para ZX Spectrum (aún así, lo sé :)) y uso SJasmPlus para vincular a un archivo de emulador de espectro.Muchos de los mejores emuladores de Spectrum, como Fuse y ZXSpin, también tienen editores integrados para depurar y parchear sobre la marcha.

Cuando estaba en la universidad usábamos microprocesadores PIC.Están fabricados por una empresa llamada Microchip.También tienen un excelente IDE con un emulador/simulador de chip que puede permitirle hacer cosas sin tener los chips.

¿Por qué utilizar un emulador?

Descargar MASA o NASM y escribir la vieja arquitectura 80386.Un montón de muestras en línea y herramientas de aprendizaje.

¡Muchas razones del mundo real para usar ensamblador!

Existe un simulador Visual6502 para enseñar los fundamentos de la arquitectura de microprocesadores.Tiene editor, ensamblador, operación de E/S y animación de cómo funciona un microprocesador.Estoy disponible en el siguiente enlace.

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top