un 8085 langage d'assemblage programme pour trouver la factorielle d'un nombre
je veux trouver factorielle d'un nombre qui, pour moi, la mémoire la première.(intel 8085)
edit: je suis débutant. je ne sais pas comment l'écrire de l'assemblée des codes.
pseudo-code:
input n
fact = 1
loop:
..multiply fact by n
..decrement n
..test n
..jump if not zero to loop
output fact
- Post ce que vous avez écrit jusqu'à présent.
- Aussi, pourquoi voulez-vous faire cela? Comme un projet d'apprentissage? Avez-vous juste besoin de la valeur aussi facilement que possible (utilisation d'une table de recherche)? Avez-vous des fonctions de la bibliothèque (comme la multiplication) que vous allez utiliser?
- Besoins devoirs tag ?
- R: Il n'y a pas beaucoup de classes qui enseignent 8085, et je ne vois pas cela comme une bonne devoirs question de ça, donc j'ai tendance à en douter à faire leurs devoirs. Il sera peut-être très mal préparé passe-temps ou d'auto-apprentissage.
- c'est pas de devoirs. je suis étudiant en 8085 pour mon examen.
- J'aimerais commencer en beaucoup plus simple du projet, sauf si vous avez déjà une multiplication de la sous-routine que vous pouvez utiliser.
- ok. alors, comment puis-je le faire avec x86?
- Je n'ai jamais fait de programmer une puce Intel en assembleur, bien que le Zilog Z80 est assez proche de la 8085 que je peux parler intelligemment de ce dernier. Dans tous les cas, la réponse est d'apprendre les instructions et les modes d'adressage et similaires, ce qui est un très faible niveau de processus en lui-même.
- R Devoirs balise est déconseillé.
- Je sais, ce n'est pas déconseillé en 2010, lorsque j'ai écrit ce commentaire si.
- R: Wow, comment ai-je ici? 😛
Vous devez vous connecter pour publier un commentaire.
En premier lieu, vous feriez mieux d'apprendre à écrire 8085 si vous prévoyez de l'utiliser. Assembleur, surtout pour les vieux 8 bits microprocesseurs, n'est pas quelque chose que vous pouvez simplement prendre en conserve logiciel et patch.
En second lieu, exactement ce que vous êtes en utilisant pour les nombres? Le 8085 a un bus 8 bits et peut utiliser les registres de 16 bits. Si vous êtes limité à 16 bits, vous pouvez utiliser une table de recherche, que vous ne pouvez pas représenter 9! de toute façon.
En troisième lieu, si vous le faites à la façon algorithmique, vous pouvez d'abord regarder ce que vous êtes en utilisant pour la multiplication. Le 8085 n'a pas de sur-puce de la multiplication. (Une fois, j'ai gagné un concours pour de multiples précision de multiplication et de division à l'aide de la Z80, qui a certaines caractéristiques de la 8085 n'avais pas. En particulier, j'ai été en mesure d'utiliser l'autre registre de la banque à faire quelques trucs utiles.)
avec un processeur intel 8085 processeur, de prendre une 8 bits, dans ce cas 5, je peux écrire ceci:
la factorielle de 5 serait alors 78 dans l'hex.
la logique est..
5!= 5x4x3x2x1
donc ajouter 5 à quatre reprises, le résultat (j'.e 20) ajouter trois fois et ainsi de suite...
(5+5+5+5), (20+20+20), (60+60) et de convertir de 120 à hex ...
Avec ce programme, vous pouvez trouver la factorielle de 8 bits dont la réponse ne dépasse pas 24bits!
L'entrée est donnée dans l'emplacement de l'adresse de
#2070
et la sortie obtenue est de 2 emplacements de mémoire dans l'ordre#2074
#2073
#2072
Cela peut vous aider. C'est pour le 7!.
Ce code permet de trouver la factorielle de 9. Vous pouvez trouver la factorielle d'un nombre jusqu'à 9 par la modification de la valeur en DB.