Page 2 sur 5

Re: [ EXELVISION ] initiation à l'assembleur pour TMS7020

Publié : 23 janv. 2017 16:52
par Daniel
Il est prévu de faire évoluer la documentation du site dcexel sur le modèle du site dcmoto, mais je n'ai pas eu le temps de le faire...

Re: [ EXELVISION ] initiation à l'assembleur pour TMS7020

Publié : 23 janv. 2017 17:27
par kikich
Daniel a écrit :Il est prévu de faire évoluer la documentation du site dcexel sur le modèle du site dcmoto, mais je n'ai pas eu le temps de le faire...
si besoin j'aiderai volontiers. :wink:

Re: [ EXELVISION ] initiation à l'assembleur pour TMS7020

Publié : 23 janv. 2017 17:38
par Daniel
Merci, mais ce n'est pas possible, je ne sous-traite pas la maintenance de mes sites, c'est trop personnel.

Re: [ EXELVISION ] initiation à l'assembleur pour TMS7020

Publié : 23 janv. 2017 19:53
par 6502man
kikich a écrit :Pour la partie PC , j'ai du mal a comprendre.

je ne comprend pas comment le PC passe de $2000 a $2003 et ensuite $2006 :?:
Ah mince ce n'était donc pas assez clair, donc je vais editer cette partie pour essayer de la rendre plus clair :oops: :roll:

Re: [ EXELVISION ] initiation à l'assembleur pour TMS7020

Publié : 23 janv. 2017 20:05
par nicolho
Phil, je ne sais pas si tu as vu ma suggestion de présentation du code, ça aurait certainement suffit à mieux visualiser les instructions par rapport aux adresses.
Et je ne sais non plus s'il existe un mémento du jeu d'instructions du TMS7000, mais en attendant j'ai mis en ligne un petit pdf repétassé/recherchable contenant uniquement les tableaux d'instructions extraits du Data Manual (chapitre 6) : https://www.docdroid.net/9zyUDEM/tms700 ... t.pdf.html
Le reste est bien résumé (et en français) aux pages 1 à 26 (et les modes d'adressages de 90 à 93) de "Programmer en Assembleur sur Exelvision" qui pourra servir de référence pour approfondir, en complément de ton tuto.

Re: [ EXELVISION ] initiation à l'assembleur pour TMS7020

Publié : 23 janv. 2017 20:08
par 6502man
Oui c'est ce que je vais faire rajouter le désassemblé des lignes avec les adresses pour bien mettre en évidence PC ;)

L'extrait du datasheet très bonne idée :wink:

Et effectivement il faut toujours avoir sur le coude le bouquin "Programmer en Assembleur sur Excelvision" ;)

Re: [ EXELVISION ] initiation à l'assembleur pour TMS7020

Publié : 23 janv. 2017 20:25
par 6502man
Mise à jour de la partie PC ;)

Est ce que ca vous parait plus compréhensible ?

la suite pour bientôt ...

Re: [ EXELVISION ] initiation à l'assembleur pour TMS7020

Publié : 23 janv. 2017 20:34
par kikich
Merci, pour ma part , je comprend bien mieux maintenant :D

Re: [ EXELVISION ] initiation à l'assembleur pour TMS7020

Publié : 23 janv. 2017 20:38
par 6502man
Tu avais bien raison ca paraissait évident pour quelqu'un qui programme en assembleur depuis longtemps, mais pour un débutant ca pouvais être pas du tout évident :oops:


Rajout de la section sur les ports.

Et je prépare la 3eme partie sur la mémoire...

Re: [ EXELVISION ] initiation à l'assembleur pour TMS7020

Publié : 23 janv. 2017 21:56
par __sam__
Moi j'ai une question sans doute idiote: les registres Ri, font 8 bits ou 16 bits? Car apparemment certaines instructions les traitent comme des 16 bits (exemple: Call *Rn ou DECD Rp qui parle de la transition 0->$FFFF). Est-ce un truc spécial alors comme A:B qui font un seul reg de 16 bits ou deux de 8bits. Les Ri s'accollent au Ri+1 qui suit pour faire un 16 bits ?

Re: [ EXELVISION ] initiation à l'assembleur pour TMS7020

Publié : 23 janv. 2017 22:26
par 6502man
Les registres Rxxx sont en 8bits, mais un peu comme avec un 6502 et la page zéro, il y des instructions du TMS7020 qui permettent d'utiliser 2 registres 8 bits pour former une adresse 16 bits.

Par exemple :
MOV %$10,R10
MOV %$00,R11
BR *R11
Cela va effectué un saut en $1000.

Ou cet autre exemple :
MOVD %$2000,R13
LDA *R13
Cela va lire l'octet présent à l'adresse $2000, par ce que MOVD va placer $20 en R12 et $00 en R13 ;)

Re: [ EXELVISION ] initiation à l'assembleur pour TMS7020

Publié : 23 janv. 2017 22:46
par __sam__
MOVD %$2000,R13 écrit dans R12:R13 ou R13:R14 ? Au fait la partie haute ($20) est dans R13 ou est-ce la partie basse ($00) qui arrive dans R13 (bref quel est le byte-order pour les opérations 16 bits?).

Re: [ EXELVISION ] initiation à l'assembleur pour TMS7020

Publié : 23 janv. 2017 22:57
par 6502man
Oups j'ai oublié de préciser, je débute en pédagogie :roll:

R12-R13 ;)

Big Endian

J'édite le post pour plus de précisions .

Re: [ EXELVISION ] initiation à l'assembleur pour TMS7020

Publié : 23 janv. 2017 23:05
par nicolho
R=MSB et R+1=LSB mais la paire de registres est toujours désignée par R+1, comme répété avec insistance aux pages 6/7 de "Programmer en Assembleur sur Excelvision" (qu'on pourrait dorénavant appeler "PEASE" 8) )

Re: [ EXELVISION ] initiation à l'assembleur pour TMS7020

Publié : 23 janv. 2017 23:05
par __sam__
Ok,c'est plus clair. MOVD %$xxyy,Rn écrit $xx dans Rn-1 et $yy dans Rn.

Encore une question de pinailleur: il se passe quoi quand on écrit dans R2. Si on fait MOVD $1234,R2, normalement R1 recoit $12, mais R1 c'est B, donc on écrit à la fois dans un registre interne et extene, non ? Idem si on MOVD $5678,R0, est-ce qu'on écrit $78 dans A et $56 dans R127 ? (ca sert à rien mais c'est pour comprendre la logique interne de ce CPU)