[PYTHON] [J'ai essayé] Nand2 Tetris Chapitre 6

Ceci est une continuation de Dernière fois (Nand2Tetris Chapitre 5 Partie 2).

Je l'ai utilisé comme référence. Seul Nand2Tetris / Hiraku

Voici des sujets à apprendre tout en bougeant réellement les mains dans ce livre. * Matériel * Architecture * système opérateur * Langage de programmation * Compilateur * Structure de données et algorithme * Génie logiciel <-maintenant
Je l'ai écrit dans le pied de page, mais cela a pris 11 heures et 30 minutes. J'ai travaillé dur. # Chapitre 6 Assembleur La seconde moitié de ce livre d'ici. La première moitié était du matériel, mais la seconde moitié semble être du logiciel.

J'ai écrit quelque chose comme une impression dans le commentaire. juste un peu. Je pense qu'il a fallu une heure pour reconnaître le constructeur comme __init__. .. .. Il m'a fallu un certain temps pour réaliser le concept de création d'une classe. Je n'ai pas écrit ce genre de code depuis un moment, donc

Je ne me souvenais même pas du code de base, donc ça va J'ai recherché quelque chose comme "remplacement de chaîne Python".

input("plz_input:", filename)

J'ai aussi fait des choses étranges comme ça. Même si c'est Python. memo

-** Symbole ** Dans le monde de l'assemblage, au lieu des commandes LOAD, R3, 7, GOTO, 250, vous pouvez utiliser des symboles pour écrire LOAD, R3, weight, GOTO, LOOP. Cependant, il est nécessaire de définir ce qu'indique «LOOP». Méthode de réglage

/*1+2+3+...+100*/
  i = 1
  sum = 0
LOOP:
  if i = 101 goto END
  sum = sum + i
  goto LOOP
END:
  goto END //Bouclez l'ordinateur à l'infini et terminez l'exécution
Nom du symbole Nom d'adresse
i 1024
sum 1025
LOOP 2
END 6

Pour les convertir en code sans symboles

Code qui a effectué la résolution de symboles


M[1024] = 1
M[1025] = 0
if M[1024] = 101 goto 6
M[1025] = M[1025] + M[1024]
M[1024] = M[1024] + 1
goto 2
goto 6

Cette méthode doit noter ce qui suit ・ Jusqu'à 1024 codes de programme peuvent être stockés -La zone mémoire des commandes et des variables source est exprimée en un seul mot. Dans le cas d'un convertisseur également, il est nécessaire de concevoir en tenant compte de la largeur de mot de la variable.


End of script - Comparison ended succesfully

Cela a pris 11 heures et 30 minutes. Progress repository_GitHub

Recommended Posts

[J'ai essayé] Nand2 Tetris Chapitre 6
J'ai essayé 100 traitements linguistiques Knock 2020: Chapitre 3
J'ai essayé 100 traitements linguistiques Knock 2020: Chapitre 1
J'ai essayé 100 traitements linguistiques Knock 2020: Chapitre 2
J'ai essayé 100 traitements linguistiques Knock 2020: Chapitre 4
J'ai essayé PyQ
J'ai essayé AutoKeras
J'ai essayé le moulin à papier
J'ai essayé django-slack
J'ai essayé Django
J'ai essayé spleeter
J'ai essayé cgo
J'ai essayé d'utiliser argparse
J'ai essayé d'utiliser anytree
J'ai essayé d'utiliser aiomysql
J'ai essayé d'utiliser Summpy
J'ai essayé d'utiliser coturn
J'ai essayé d'utiliser "Anvil".
J'ai essayé d'utiliser Hubot
J'ai essayé d'utiliser ESPCN
J'ai essayé PyCaret2.0 (pycaret-nightly)
J'ai essayé le deep learning
J'ai essayé AWS CDK!
J'ai essayé d'utiliser Ipython
J'ai essayé de déboguer.
J'ai essayé d'utiliser PyCaret
J'ai essayé d'utiliser cron
J'ai essayé la mapview de Kivy
J'ai essayé d'utiliser ngrok
J'ai essayé d'utiliser face_recognition
J'ai essayé d'utiliser Jupyter
J'ai essayé de déplacer EfficientDet
J'ai essayé la programmation shell
J'ai essayé d'utiliser doctest
J'ai essayé Python> décorateur
J'ai essayé d'exécuter TensorFlow
J'ai essayé Auto Gluon
J'ai essayé d'utiliser du folium
J'ai essayé d'utiliser jinja2
J'ai essayé AWS Iot
J'ai essayé l'optimisation bayésienne!
J'ai essayé d'utiliser du folium
J'ai essayé d'utiliser la fenêtre de temps
J'ai essayé les réseaux d'itération de valeur
J'ai essayé fp-growth avec python
J'ai essayé de gratter avec Python
J'ai essayé la classification d'image d'AutoGluon
J'ai essayé Learning-to-Rank avec Elasticsearch!
[J'ai essayé d'utiliser Pythonista 3] Introduction
J'ai essayé d'utiliser easydict (mémo).
J'ai essayé d'organiser SVM.
J'ai essayé la reconnaissance faciale avec Face ++
J'ai essayé d'utiliser RandomForest
J'ai essayé le clustering avec PyCaret
J'ai essayé d'utiliser BigQuery ML
J'ai essayé "K-Fold Target Encoding"
J'ai essayé d'implémenter PCANet