2009-08-12 5 views
5

Je voudrais essayer l'assemblage d'apprentissage, et éventuellement écrire mon propre assembleur simple (j'ai récemment lu un article intéressant sur la façon de créer un système d'exploitation, et je me suis rapidement rendu compte que une certaine familiarité avec l'assemblage m'aiderait beaucoup ici). Le problème est que, bien que je suis sûr que je n'aurai aucun problème à trouver des articles et des guides sur le langage d'assemblage/code machine, j'ai tendance à apprendre en faisant, et je voudrais vraiment exécuter mes code. Je me dis que j'ai deux options:Comment exécuter le code machine (apprentissage de l'assemblage)

  • Apprenez à créer un exécutable windows
  • Utilisez une sorte de machine virtuelle/émulateur

La deuxième option semble mieux pour moi, car il me protège potentiellement faire des erreurs stupides, et sera probablement plus proche de l'environnement dans lequel je serai en écrivant un système d'exploitation, mais je ne suis pas vraiment sûr de savoir comment faire.

+0

veulent partager cet article? –

Répondre

4

Le meilleur endroit pour apprendre la programmation de l'assemblage de fenêtres pour x86 est légendaire Iczelion's tutorials.

Vous pouvez également trouver des outils MASM here

et si vous avez la patience, #asm sur EFNET

0

Commencez par quelques tutoriels.

Regardez FASM ou MASM.

1

Vous ne dites pas quel processeur vous intéresse, ce qui est très important. Cependant, en supposant la famille intel x86, il existe un certain nombre d'émulateurs qui vous permettront d'exécuter votre code en toute sécurité sur votre bureau , tel que this. Google pour "émulateur 8086" pour plus d'informations.

+0

Eh bien, je n'avais pas encore décidé, je pensais que je pourrais essayer un système embarqué, mais je me suis dit que peu importait à ce stade car il me semble que les compétences et les concepts sont assez transférables entre les archétectures. – Justin

+1

Concepts de base oui, mais devenir compétent sur une architecture particulière peut prendre beaucoup de temps - j'étais un très bon programmeur Z80, mais même si ça m'a pris des mois pour devenir un 6502 moyen. Et les architectures modernes sont beaucoup plus complexes que les deux. –

2

Je vous recommande d'apprendre un ensemble au lieu de RISC CISC; Vous aurez moins d'instructions à apprendre et vous pourrez vous entraîner à construire plus de constructions de niveau supérieur. J'ai d'abord appris l'assemblage de MIPS parce qu'il a un grand émulateur gratuit (SPIM) et un manuel, dont j'oublie malheureusement le nom, mais il avait une reliure tissée à l'ancienne et était de couleur crème.

+0

J'ai suivi une classe qui enseignait l'assembleur MIPS et utilisait SPIM. Cela m'a rappelé beaucoup d'Applesoft Basic (si/alors/autre, goto, gosub, maths de base). – crashmstr

4

Vous pouvez lire ce fantastique: book

+0

Je souhaite pouvoir donner chaque approbation de ce livre beaucoup plus qu'un +1 – Dinah

Questions connexes