Frage

Ich möchte lernen, wie man in Assembler programmiert.Ich habe schon ein bisschen Assembler gemacht (während meines A-Level-Computing-Kurses), aber das war definitiv ein vereinfachter „Pseudo-Assembler“.Ich habe mir das alte Z80-Assembler-Referenzhandbuch meines Vaters ausgeliehen, und das scheint ziemlich interessant zu sein. Deshalb würde ich, wenn möglich, gerne Z80-Assembler ausprobieren.

Allerdings habe ich keinen Z80-Prozessor zur Hand und würde es gerne auf meinem PC machen (ich habe Windows oder Linux, also ist beides gut).Ich habe im Internet verschiedene Assembler gefunden, bin aber nicht besonders an der Assemblierung in eine Hex-Datei interessiert, ich möchte es einfach zu etwas zusammenbauen können, das eine Art Simulator auf dem PC ausführen kann.Am liebsten würde mir dieser Simulator den Inhalt aller Register, Speicherorte usw. zeigen und mich die Anweisungen schrittweise durchgehen lassen.Ich habe ein paar Softwareteile gefunden, die darauf hindeuten, dass sie das tun könnten – aber sie verweigern entweder die Kompilierung oder scheinen nicht richtig zu funktionieren.Hat jemand Vorschläge?Wenn es gute Simulator-/IDE-Dinge für einen anderen Assemblertyp gibt, könnte ich das stattdessen versuchen (vorausgesetzt, es ist ein gutes Online-Referenzhandbuch verfügbar).

War es hilfreich?

Lösung

Ich habe ein paar Software -Teile gefunden, die darauf hindeuten, dass sie dies tun könnten - aber sie weigern sich entweder zu kompilieren oder scheinen nicht richtig zu funktionieren.Hat jemand Vorschläge?

Schreiben Sie eins.Am besten wählen Sie einen schönen, einfachen Befehlssatz (Z80 sollte perfekt sein).Ich erinnere mich, dass ich das als Übung im ersten Studienjahr gemacht habe – ich glaube, wir haben den Simulator in C++ geschrieben und 6800-Assembly simuliert, aber eigentlich reicht jede Sprache/jeder Befehlssatz aus.

Heutzutage besteht die Idee beim „Erlernen der Assemblersprache“ darin, eine Vorstellung davon zu bekommen, wie Computer auf der untersten Ebene funktionieren. Nur wenige Auserwählte (Compiler-Autoren usw.) haben heutzutage einen wirklichen Grund, tatsächlich Assembler-Code zu schreiben.Moderne Prozessoren sind vollgestopft mit Funktionen, die von Compilern verwendet werden sollen, um Code hinsichtlich Geschwindigkeit, gleichzeitiger Ausführung, Stromverbrauch usw. zu optimieren, und der Versuch, Assemblys für einen modernen Prozessor von Hand zu schreiben, wäre ein Albtraum.

Machen Sie sich keine Sorgen darüber, Ihre Anwendung produktionsbereit zu machen, es sei denn, Sie möchten es – aller Wahrscheinlichkeit nach wurden die Softwareteile, die Sie bisher gefunden haben, von Leuten wie Ihnen geschrieben, die herausfinden wollten, wie Assembly funktioniert, und ihren eigenen Simulator geschrieben haben. Dann wurde mir klar, wie viel Arbeit es kosten würde, es „produktionsbereit“ zu machen, damit es von der breiten Öffentlichkeit genutzt werden kann.

Andere Tipps

Vielleicht möchten Sie sich den Open-Source-8085-Simulator ansehen.GnuSim8085„Es ist speziell für Bildungszwecke gedacht und wurde tatsächlich von einem Studenten geschrieben, der sich auf seine Prüfungen vorbereitete.Es läuft sowohl unter Linux als auch unter Windows.

Wenn Sie Windows verwenden 8085-Simulator ist die beste Wahl.8085 Simulator by J-tech Softwares

Die Benutzeroberfläche ist hervorragend als bei jedem anderen Simulator.Außerdem bietet dieser Simulator jederzeit eine Live-Ansicht der Speicherzuordnung (auch während der Ausführung).

Dieser unterstützt jedoch nicht Windows 98 oder niedriger, daher müssen Sie andere Simulatoren wie „GnuSim8085“ überprüfen.

MipSim ist KOSTENLOS

http://www.mipsim.com

Hauptmerkmale von MIPSim 2

  • Integrierter Code-Editor mit Funktionen wie Syntaxhervorhebung und Faltung
  • Register- und Speicherwerte in verschiedenen Darstellungen anzeigen (vorzeichenbehaftete Ganzzahl, vorzeichenlose Ganzzahl, Hexadezimal und ASCII)
  • Legen Sie die Blockgröße (Vollwort, Halbwort, Byte) der Speicherzellen fest, um die Überprüfung der Speicherwerte zu erleichtern
  • Ändern Sie Werte von Registern und Speicherzellen mit einem einzigen Klick, sogar während der Simulation und beim Debuggen
  • Durch die Aktualisierung der Benutzeroberfläche in Echtzeit können Sie sehen, wie sich die Werte von Registern und Speicherzellen während der Ausführung ändern
  • Integrierter Debugger mit schrittweiser Befehlsausführung, Befehlsüberspringen und Haltepunktfunktionen
  • Tools zum Einfügen von ASCII-, UNICODE-Zeichenfolgen und Ganzzahlwerten in den Speicher zum Testen Ihres Codes
  • Tools zur Überprüfung doppelter oder fehlender Etiketten und Anweisungsparameter
  • Speichern Sie den Computerstatus (Werte aller Register und Speicherzellen), damit Sie beim nächsten Ausführen des Simulators dort fortfahren können, wo Sie aufgehört haben!
  • Legen Sie die Simulationsgeschwindigkeit fest – niedrige Geschwindigkeiten eignen sich hervorragend, um Ihren Code zu verfolgen und zu sehen, wie er sich verhält
  • Anweisungen kodieren – Maschinencode entweder in binärer oder hexadezimaler Darstellung erzeugen
  • Erkennen Sie Montagezeit- und Laufzeitfehler
  • Einfacheres Debuggen mit beschreibenden Fehlermeldungen
  • Multithread-Design – MIPSim bleibt (hoffentlich ;) nicht hängen, selbst wenn der ausgeführte Assembler-Code fehlerhaft ist oder Endlosschleifen enthält
  • MIPSim-API – Erstellen Sie Ihre eigenen Programme, die aus den Registern und dem Speicher von MIPSim lesen und in sie schreiben können, große Flexibilität für leistungsstarke Tests!

Ziele höher!Versuchen Sie, einen Simulator für eine leistungsfähigere Assemblersprache zu besorgen.Denken Sie daran, dass Z80 und 808x Low-End-Prozessoren mit Low-End- und umständlichen Befehlssätzen waren.

So etwas wie VAX von DEC galt als Rolls-Royce unter den Befehlssätzen.Und dann gibt es noch verrückte Risc-Befehlssätze, die einige wirklich seltsame Dinge bewirken.Vielleicht können Sie Definitionen dafür finden, damit Sie einen Versuch unternehmen können, sie umzusetzen.

Vielleicht sind Sie daran interessiert Das für einen Z80-Simulator, und ich habe gute Erfahrungen damit gemacht WinAsm.

Sie könnten auch darüber nachdenken, die x86-Assemblersprache zu erlernen, was Sie mit dem Inline-Assembler in Visual Studio tun könnten – obwohl es sich um einen größeren Befehlssatz als Z80 handelt, hätten Sie den Vorteil, dass Sie viel bessere Tools verwenden könnten, als für die verfügbar wären Z80.

Ich habe mich auch gerade daran erinnert, dass die Keil 8051- und Arm-Tools einen Simulator in der IDE haben – es gibt größenbeschränkte Versionen davon, die kostenlos von www.keil.com heruntergeladen werden können

Wenn Sie .NET bereits kennen, kann dies von Nutzen sein:

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

Es ist etwas eingeschränkt und funktioniert möglicherweise nur mit .NET 1.1, aber Sie könnten dafür zumindest eine „moderne“ IDE verwenden, und es gibt zahlreiche Dokumente dafür.

<%@ 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 %>

Eine andere Option, wenn Sie „Hardcore“ wollen, ist, sich etwas wie FreeDOS und VMWare zu besorgen und diese zu verwenden.Ich bin mir sicher, dass es einen Flohmarkt (Flohmarkt?) gibt.Flohmarkt?) oder ein Antiquariat hätte ein Exemplar von Peter Nortons alter DOS-Unterbrechungsbibel.:) :)

Persönlich habe ich x86 asm mit Turbo Pascal gelernt (was meiner Meinung nach jetzt kostenlos von Borland ist?), das die Möglichkeit hatte, Assembleranweisungen in eine Funktion einzubetten.Das Einrichten der App wurde einfacher und ich konnte mich auf die Dinge konzentrieren, die ich tun wollte.Später habe ich MacVAX an der Auckland Uni verwendet, was in Ordnung war, aber VAX ist so gut wie tot – Sie können genauso gut x86 lernen :)

SimpSim ist auf jeden Fall einen Blick wert.Es ist nur Windows, aber der Funktionsumfang ist ziemlich anständig:

  • Hauptspeicher und Registeranzeige
  • Integrierter Editor mit Syntaxhervorhebung
  • Run-, Step- und Break-Funktionen

WinApe ist ein guter Emulator eines Amstrad CPC.Der Amstrad CPC war ein Heimcomputer, der in den 80er Jahren hergestellt wurde.Als CPU kam ein Z80 zum Einsatz.Mit dem Emulator können Sie beim Programmieren viele Interna anzeigen.Es enthält einen Debugger und einen Disassembler für Z80-Code.

Das würde für Sie jetzt keinen Sinn ergeben, außer für die Leute, die vorbeikommen.Dies ist der beste Assembler-Code-Simulator, den ich je gesehen habe.Es lohnt sich wirklich!

http://www.emu8086.com/

Schauen Sie mal rein Thomas Scherrer Z80-Emulatoren für eine Liste potenzieller Emulatoren, die Sie verwenden könnten.

Ich schreibe z80 asm für das ZX Spectrum (ich weiß es immer noch :)) und verwende SJasmPlus, um eine Verknüpfung zu einer Spectrum-Emulatordatei herzustellen.Viele der besseren Spectrum-Emulatoren wie Fuse und ZXSpin verfügen auch über integrierte Editoren für spontanes Debuggen und Patchen.

Als ich am College war, verwendeten wir PIC-Mikroprozessoren.Sie werden von einer Firma namens Microchip hergestellt.Sie verfügen außerdem über eine großartige IDE mit einem Chip-Emulator/Simulator, mit dem Sie Dinge tun können, ohne tatsächlich über die Chips zu verfügen.

Warum einen Emulator verwenden?

Herunterladen MASM oder NASM und schreibe die gute alte 80386-Architektur.Zahlreiche Online-Beispiele und Lerntools.

Viele reale Gründe, Assembler zu verwenden!

Es gibt einen Simulator, Visual6502, der die Grundlagen der Mikroprozessorarchitektur vermittelt.Es verfügt über einen Editor, Assembler, E/A-Operationen und eine Animation zur Funktionsweise eines Mikroprozessors.Ich bin unter folgendem Link erreichbar.

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

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top