![]() ![]() ![]() |
Il faudra obligatoirement utiliser un mode d'adressage parmi ceux proposés.
N'oubliez pas que les indicateurs changent pour certaines instructions.
![]() ![]() |
Bcc | Branch branchement |
JMP | JuMP saut inconditionnel |
RTS | ReTurn from Subroutine retour de routine |
BSR | Branch to SubRoutine saut à une routine |
JSR | Jump to SubRoutine saut à une routine liée |
Scc | Set and branch armement et branchement |
DBcc | Decrease then Branch décrémentation et branchement |
RTR | ReTurn and Restore retour et restauration de CCR |
![]() |
![]() ![]() branchement |
Mnémonique | Texte | Branchement si | Pour les nombres |
BCC | Branch Carry Clear | C=0 | non signés |
BCS | Branch Carry Set | C=1 | non signés |
BEQ | Branch EQual | Z=0 | non signé |
BNE | Branch Not Equal | Z=1 | signés |
BGE | Branch Greater or Equal | N=V | signés |
BGT | Branch Greater Than | N=V ET Z=0 | signés |
BHI | Branch HIgher than | C=0 ET Z=0 | non signés |
BLE | Branch Less or Equal | Z=1 OU N![]() | signés |
BLS | Branch Lower or Same | C=1 OU Z=1 | non signés |
BLT | Branch Less Than | N![]() | signés |
BMI | Branch MInus | N=1 | signés |
BPL | Branch PLus | N=0 | non signés |
BVC | Branch V Clear | V=0 | non signés |
BVS | Branch V Set | V=1 | signés |
BRA | BRanch Always | - | non signés |
Le compilateur changera le nom de votre label par une adresse, celle-ci aura comme taille un octet ou un mot suivant la distance du saut. Vous pouvez ne rien spécifier car le compilateur choisira toujours la bonne taille.
Reportez vous à INDICATEURS pour chaque instruction dans le but de savoir quels indicateurs changent et sous quelles conditions.
MODES D'ADRESSAGE
-
TAILLE DES DONNÉES
Octet / Mot
INDICATEURS
Inchangés
SYNTAXE
Bcc.b <label>
Bcc.w <label>
![]() |
![]() ![]() saut à une routine |
C'est un saut inconditionnel comme nous le ferions avec les instructions BRA ou JMP à l'exception près que pour partir du sous-programme il faut utiliser l'instruction RTS qui resaute à l'adresse déposée sur la pile précédemment.
Le compilateur changera le nom de votre label par une adresse, celle-ci aura comme taille un octet ou un mot suivant la distance du saut. Vous pouvez ne rien spécifier car le compilateur choisira toujours la bonne taille.
MODES D'ADRESSAGE
-
TAILLE DES DONNÉES
Octet / Mot
INDICATEURS
Inchangés
SYNTAXE
BSR.b <label>
BSR.w <label>
![]() |
![]() ![]() décrémentation et branchement |
Nous sommes donc dans un cas de boucle, à chaque fois que nous rencontrerons l'instruction DBcc, le registre de données spécifié sera décrémenté de 1, et tant que celui si sera égal ou supérieur à 0, le saut pourra avoir lieu si les conditions sont vérifiées.
Nous avons deux nouveau cas, DBF et DBT, la première instruction est l'alternative à l'instruction DBRA..
A chaque fois, cc dans DBcc est remplacé par deux lettres pour avoir au total 17 cas différents.
Mnémonique | Texte | Branchement si | Pour les nombres |
DBCC | Decrease and Branch Carry Clear | C=0 | non signés |
DBCS | Decrease and Branch Carry Set | C=1 | non signés |
DBEQ | Decrease and Branch EQual | Z=0 | non signé |
DBNE | Decrease and Branch Not Equal | Z=1 | signés |
DBGE | Decrease and Branch Greater or Equal | N=V | signés |
DBGT | Decrease and Branch Greater Than | N=V ET Z=0 | signés |
DBHI | Decrease and Branch HIgher than | C=0 ET Z=0 | non signés |
DBLE | Decrease and Branch Less or Equal | Z=1 OU N![]() | signés |
DBLS | Decrease and Branch Lower or Same | C=1 OU Z=1 | non signés |
DBLT | Decrease and Branch Less Than | N![]() | signés |
DBMI | Decrease and Branch MInus | N=1 | signés |
DBPL | Decrease and Branch PLus | N=0 | non signés |
DBVC | Decrease and Branch V Clear | V=0 | non signés |
DBVS | Decrease and Branch V Set | V=1 | signés |
DBRA | Decrease and BRanch Always | - | non signés |
DBF | Decrease and BRanch never terminate | - | non signés |
DBT | Decrease and BRanch always terminate | - | non signés |
Le compilateur changera le nom de votre label par une adresse, celle-ci aura comme taille un octet ou un mot suivant la distance du saut. Vous pouvez ne rien spécifier car le compilateur choisira toujours la bonne taille.
Reportez vous à INDICATEURS pour chaque instruction dans le but de savoir quels indicateurs changent et sous quelles conditions.
MODES D'ADRESSAGE
-
TAILLE DES DONNÉES
Mot
INDICATEURS
Inchangés
SYNTAXE
DBcc Dx,<label>
DBcc Dx,<label>
![]() |
![]() ![]() saut inconditionnel |
Il n'est pas recommendé d'utiliser cette instruction, si vous voulez faire un saut inconditionnel vers un label utilisez par exemple la variante BRA du jeu d'instruction Bcc.
MODES D'ADRESSAGE
(An), y(An), x(An,Xn.s), y, z, y(PC), x(PC,Xn.s)
TAILLE DES DONNÉES
-
INDICATEURS
Inchangés
SYNTAXE
JMP <adressage>
![]() |
![]() ![]() saut à une routine liée |
C'est un saut inconditionnel comme nous le ferions avec les instructions BRA ou JMP à l'exception près que pour partir du sous-programme il faut utiliser l'instruction RTS qui resaute à l'adresse déposée sur la pile précédemment.
Cette instruction est principalement utilisée pour sauter vers une fonction d'une bibliothèque liée au programme,
la syntaxe étant JSR
MODES D'ADRESSAGE
An), y(An), x(An,Xn.s), y, z, y(PC), x(PC,Xn.s)
TAILLE DES DONNÉES
-
INDICATEURS
Inchangés
SYNTAXE
JSR <adressage>
![]() |
![]() ![]() retour et restauration de CCR |
MODES D'ADRESSAGE
TAILLE DES DONNÉES
Octet / Mot / Mot long
INDICATEURS
Inchangés
SYNTAXE
RTR
![]() |
![]() ![]() retour de routine |
A la fin d'un sous-programme ou d'une fonction de bibliothèque n'oubliez jamais de mettre cette instruction sinon le programme continuerais à executer la mémoire... et vous provoquerez un plantage en règle.
MODES D'ADRESSAGE
-
TAILLE DE L'INSTRUCTION
2 octets
TAILLE DES DONNÉES
-
INDICATEURS
Inchangés
SYNTAXE
RTS
![]() |
![]() armement et branchement |
Nous avons deux nouveau cas, SF et ST.
A chaque fois, cc dans Scc est remplacé par deux lettres pour avoir au total 17 cas différents.
Mnémonique | Texte | Branchement si | Pour les nombres |
SCC | Set Carry Clear | C=0 | non signés |
SCS | Set Carry Set | C=1 | non signés |
SEQ | Set EQual | Z=0 | non signé |
SNE | Set Not Equal | Z=1 | signés |
SGE | Set Greater or Equal | N=V | signés |
SGT | Set Greater Than | N=V ET Z=0 | signés |
SHI | Set HIgher than | C=0 ET Z=0 | non signés |
SLE | Set Less or Equal | Z=1 OU N![]() | signés |
SLS | Decrease and Branch Lower or Same | C=1 OU Z=1 | non signés |
SLT | Set Less Than | N![]() | signés |
SMI | Set MInus | N=1 | signés |
SPL | Set PLus | N=0 | non signés |
SVC | Set V Clear | V=0 | non signés |
SVS | Set V Set | V=1 | signés |
SRA | Set Always | - | non signés |
SF | Set never set | - | non signés |
ST | Set always set | - | non signés |
MODES D'ADRESSAGE
Dn, (An), -(An), (An)+, y(An), x(An,Xn.s), y, z
TAILLE DES DONNÉES
Octet
INDICATEURS
Inchangés
SYNTAXE
Scc <adressage>
Zguide © 1998 - 1999 par Florian DREVET. Tous droits réservés