Assembleur sur HP41
Le
Arachide

Coucou,
Je bricole avec l'assembleur sur la HP41CX, un vrai plaisir!
J'ai mis à jour ma page avec les outils utilisés:
http://gtello.pagesperso-orange.fr/hp41_f.htm#mcode
Guillaume.
Je bricole avec l'assembleur sur la HP41CX, un vrai plaisir!
J'ai mis à jour ma page avec les outils utilisés:
http://gtello.pagesperso-orange.fr/hp41_f.htm#mcode
Guillaume.
Le 31 juillet 2016 à 11:30, Arachide a tapoté :
Tu pourrais décrire brièvement le processeur et ce que tu lui trouves de
bien ? Histoire de se faire une idée par rapport aux autres processeurs,
comme la famille x86 que je connais plutôt bien, le Z80 que je
redécouvre et le 68000 que j'ai un tout petit peu pratiqué et qui était
bien lui aussi.
Je pourrais chercher les caractéristiques, mais c'est toujours mieux
d'avoir une synthèse par quelqu'un qui pratique.
--
Sébastien Kirche
Le processeur est décrit ici:
http://www.hpmuseum.org/techcpu.htm
Il y a un magazine scanné en français sur la programmation ici (1983):
http://www.archives.hp41.eu/jpc/numero-1/jpc-1.pdf
En gros, le CPU est orienté "calcul scientifique".
Les registres permettent de stocker exactement un nombre réel sur 56
bits en BCD.
Deux nibbles pour les signes mantisse et exposant
Deux nibbles pour l'exposant (00-99)
10 nibbles pour la mantisse.
Un registre central est appelé "C", il permet de dialoguer avec la
mémoire (récupérer un réel, le stocker), il dialogue aussi avec les
autres registres temporaires A, B M et N
Les instructions du processeur permettent de travailler sur 56 bits, ou
seulement la mantisse, ou le signe ou l'exposant. (arithmétique,
comparaison, etc...).
Ce CPU peut aussi travailler en hexadécimal, faire de la logique (OR,
AND, additions et soustractions binaires, mais c'est moins fourni de ce
côté là.
Un seul bit de condition existe "Carry", il sert à tout.
Le processeur dialogue avec des périphériques (la RAM en est un, les
extensions HP-IL aussi, le circuit d'horloge aussi), il exécute ses
instructions uniquement depuis la ROM qui est directement connectée à
son bus d'adresse. Ce qui fait que pour programmer en assembleur, il
faut un module embarquant de la RAM sur ce qui devrait être de la ROM.
Chaque instruction est un mot de 10 bits.
la calculatrice peut adresse 64k mots de 10 bits, ça fait déjà pas mal
pour l'époque dans une calculatrice!
Côté vitesse, c'est plus de 6000 instructions par seconde! largement de
quoi donner envie de travailler dessus par rapport à la programmation
standard en RPN.
Guillaume.