Question

J'aimerais apprendre à programmer en Assembleur.J'ai déjà fait un peu d'assemblage (pendant mon cours A-Level Computing), mais il s'agissait très certainement d'un « pseudo-assembleur » simplifié.J'ai emprunté l'ancien manuel de référence de l'assembleur Z80 de mon père, et cela semble assez intéressant, donc si possible, j'aimerais essayer l'assembleur Z80.

Cependant, je n'ai pas de processeur Z80 sous la main et j'aimerais le faire sur mon PC (j'ai Windows ou Linux donc l'un ou l'autre est bon).J'ai trouvé divers assembleurs sur Internet, mais je ne suis pas particulièrement intéressé par l'assemblage dans un fichier hexadécimal, je veux simplement pouvoir l'assembler en quelque chose qu'une sorte de simulateur sur PC peut exécuter.De préférence, ce simulateur me montrerait le contenu de tous les registres, emplacements mémoire, etc., et me permettrait de parcourir les instructions.J'ai trouvé quelques logiciels qui suggèrent qu'ils pourraient le faire - mais soit ils refusent de compiler, soit ne semblent pas fonctionner correctement.Quelqu'un a-t-il des suggestions ?S'il existe de bons simulateurs/IDE disponibles pour un autre type d'assembleur, je pourrais essayer cela à la place (en supposant qu'il existe un bon manuel de référence en ligne disponible).

Était-ce utile?

La solution

J'ai trouvé quelques bits de logiciels qui suggèrent qu'ils pourraient le faire - mais ils refusent de compiler, soit ne semblent pas fonctionner correctement.Quelqu'un a-t-il des suggestions ?

Écrivez-en un.Il est préférable de choisir un jeu d'instructions simple et agréable (le Z80 devrait être parfait).Je me souviens avoir fait cela comme un exercice de première année de premier cycle - je pense que nous avons écrit le simulateur en C++ et simulé l'assemblage 6800, mais n'importe quel langage/ensemble d'instructions fera vraiment l'affaire.

L'idée de "l'apprentissage du langage assembleur" de nos jours est d'avoir une idée du fonctionnement des ordinateurs au niveau le plus bas, seuls quelques privilégiés (rédacteurs de compilateurs, etc.) ont de réelles raisons d'écrire du code assembleur de nos jours.Les processeurs modernes regorgent de fonctionnalités conçues pour être utilisées par les compilateurs pour aider à optimiser le code en termes de vitesse/exécution simultanée/consommation d'énergie/etc., et essayer d'écrire un assemblage à la main pour un processeur moderne serait un cauchemar.

Ne vous inquiétez pas de préparer votre application pour la production, à moins que vous ne le souhaitiez - il est fort probable que les logiciels que vous avez trouvés jusqu'à présent ont été écrits par des personnes exactement comme vous qui voulaient comprendre comment fonctionne l'assemblage et ont écrit leur propre simulateur, puis j'ai réalisé combien de travail serait nécessaire pour le préparer à la production afin que le grand public puisse l'utiliser.

Autres conseils

Vous voudrez peut-être consulter le simulateur open source 8085 "GnuSim8085", il est spécifiquement destiné à être utilisé à des fins pédagogiques, et il a en fait été rédigé par un étudiant alors qu'il préparait ses examens.Il fonctionne sous Linux et Windows.

Si vous êtes sous Windows 8085 Simulateur est le meilleur choix.8085 Simulator by J-tech Softwares

Son interface utilisateur est excellente par rapport à tout autre simulateur.Ce simulateur fournit également une vue en direct de la carte mémoire à tout moment (également pendant l'exécution).

Mais celui-ci ne prend pas en charge Windows 98 ou version antérieure, vous devez donc vérifier d'autres simulateurs comme "GnuSim8085".

MipSim est GRATUIT

http://www.mipsim.com

Principales caractéristiques de MIPSim 2

  • Éditeur de code intégré avec des fonctionnalités telles que la coloration syntaxique et le pliage
  • Afficher les valeurs du registre et de la mémoire dans différentes représentations (entier signé, entier non signé, hexadécimal et ASCII)
  • Définissez la taille du bloc (mot complet, demi-mot, octet) des cellules mémoire pour un examen plus facile des valeurs de la mémoire
  • Modifiez les valeurs des registres et des cellules mémoire en un seul clic, même pendant la simulation et le débogage
  • La mise à jour de l'interface utilisateur en temps réel vous permet de voir comment les valeurs des registres et des cellules mémoire changent pendant l'exécution.
  • Débogueur intégré avec exécution d'instructions étape par étape, saut d'instructions et fonctionnalités de point d'arrêt
  • Outils pour insérer des chaînes ASCII, UNICODE et des valeurs entières en mémoire pour tester votre code
  • Outils pour vérifier les étiquettes et les paramètres d'instruction en double ou manquants
  • Enregistrez l'état de l'ordinateur (valeurs de tous les registres et cellules de mémoire) afin que la prochaine fois que vous exécuterez le simulateur, vous puissiez continuer là où vous l'avez laissé !
  • Définissez la vitesse de simulation : les vitesses faibles sont idéales pour tracer votre code et voir comment il se comporte.
  • Encoder les instructions : produire du code machine en représentation binaire ou hexadécimale
  • Détecter les erreurs de temps d'assemblage et d'exécution
  • Débogage plus facile avec des messages d'erreur descriptifs
  • Conception multithread - MIPSim ne reste pas bloqué (espérons-le ;) même si le code assembleur exécuté est erroné ou contient des boucles infinies
  • API MIPSim - créez vos propres programmes capables de lire et d'écrire dans les registres et la mémoire de MIPSim, une grande flexibilité pour des tests puissants !

Viser plus haut!Essayez d'obtenir un simulateur pour un langage assembleur plus puissant.N'oubliez pas que les Z80 et 808x étaient des processeurs bas de gamme avec des jeux d'instructions bas de gamme et maladroits.

Quelque chose comme VAX de DEC était considéré comme la Rolls-Royce des jeux d'instructions.Et puis il y a des jeux d'instructions Risc fous qui font des choses vraiment étranges.Peut-être pourrez-vous en trouver des définitions afin de pouvoir les mettre en œuvre.

Vous etes peut etre intéressé ce pour un simulateur Z80, et j'ai eu de bonnes expériences avec GagnerAsm.

Vous pouvez également envisager d'apprendre le langage assembleur x86, ce que vous pouvez faire en utilisant un assembleur en ligne dans Visual Studio - bien qu'il s'agisse d'un jeu d'instructions plus important que Z80, vous auriez l'avantage de pouvoir utiliser de bien meilleurs outils que ceux disponibles pour le Z80.

Je viens également de me rappeler que les outils Keil 8051 et Arm disposent d'un simulateur dans l'IDE - il existe des versions à taille limitée disponibles en téléchargement gratuit sur www.keil.com

Si vous connaissez déjà .NET, ceci peut être utile :

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

C'est un peu limité et ne fonctionne peut-être qu'avec .NET 1.1, mais vous pouvez au moins utiliser un IDE "moderne" pour cela, et il existe de nombreux documents à ce sujet.

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

Une autre option, si vous voulez devenir "hard core", est d'obtenir quelque chose comme FreeDOS et VMWare, et de l'utiliser.Je suis sûr qu'il s'agit d'un vide-grenier (vide-grenier ?vide-grenier ?) ou une librairie d'occasion aurait une copie de la vieille bible des interruptions DOS de Peter Norton.:)

Personnellement, j'ai appris l'asm x86 en utilisant Turbo Pascal (qui, je pense, est désormais gratuit de Borland ?), qui avait la capacité d'intégrer des instructions d'assemblage dans une fonction.La configuration de l'application a été plus facile et j'ai pu me concentrer sur les choses que je voulais faire.Plus tard, j'ai utilisé MacVAX à Auckland Uni, ce qui était ok, mais le VAX est bien mort - autant apprendre le x86 :)

SimSim vaut vraiment le détour.Il s'agit uniquement de Windows, mais l'ensemble des fonctionnalités est plutôt correct :

  • Mémoire principale et affichage du registre
  • Éditeur intégré avec coloration syntaxique
  • Fonctions d'exécution, d'étape et d'arrêt

WinApe est un bon émulateur d'un Amstrad PCC.L'Amstrad CPC était un ordinateur domestique produit dans les années 80.Il utilisait un Z80 comme processeur.En utilisant l'émulateur, vous pouvez afficher de nombreux éléments internes lors de la programmation.Il comprend un débogueur et un désassembleur pour le code Z80.

Cela n'aurait aucun sens pour vous maintenant, mais seulement pour les gens qui passeraient par là.C'est le meilleur simulateur de code assembleur que j'ai rencontré.Ça vaut vraiment le coup !

http://www.emu8086.com/

Jeter un coup d'œil à Thomas Scherrer Émulateurs Z80 pour une liste des émulateurs potentiels que vous pourriez utiliser.

J'écris z80 asm pour le ZX Spectrum (encore, je sais :)) et j'utilise SJasmPlus pour créer un lien vers un fichier d'émulateur de spectre.La plupart des meilleurs émulateurs Spectrum comme Fuse et ZXSpin ont également des éditeurs intégrés pour le débogage et l'application de correctifs à la volée.

Quand j'étais à l'université, nous utilisions des microprocesseurs PIC.Ils sont fabriqués par une société appelée Microchip.Ils disposent également d'un excellent IDE avec un émulateur/simulateur de puce qui peut vous permettre de faire des choses sans réellement avoir les puces.

Pourquoi utiliser un émulateur ?

Télécharger MASM ou MSNA et écrivez la bonne vieille architecture 80386.De nombreux échantillons et outils d'apprentissage en ligne.

De nombreuses raisons concrètes d'utiliser l'assembleur !

il existe un simulateur qui est Visual6502 pour enseigner les bases de l'architecture des microprocesseurs.Il dispose d'un éditeur, d'un assembleur, d'une opération d'E/S et d'une animation sur le fonctionnement d'un microprocesseur.Je suis disponible sur le lien suivant.

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top