CONTRÔLE
DU PROGRAMME
Fonction Introduction
Fonction Index des mnémoniques

Page précédente Fonction prochaine partie
Fonction partie précédente



 

Monter Descendre Retour Introduction
puce Les instructions de contrôle du programme vous permettent d'effectuer des branchements en fonction des indicateurs, les instructions de comparaisons et de test sont très utiles.

puce Il faudra obligatoirement utiliser un mode d'adressage parmi ceux proposés.

puce N'oubliez pas que les indicateurs changent pour certaines instructions.





 
Monter Retour Index des mnémoniques
BccBranch
branchement
JMPJuMP
saut inconditionnel
RTSReTurn from Subroutine
retour de routine
BSRBranch to SubRoutine
saut à une routine
JSRJump to SubRoutine
saut à une routine liée
SccSet and branch
armement et branchement
DBccDecrease then Branch
décrémentation et branchement
RTRReTurn and Restore
retour et restauration de CCR




 

Retour Bcc Branch
branchement
Monter Descendre

DESCRIPTION
puce Permet de faire des branchements (sauts) dans un programme suivant l'état des indicateurs. A chaque fois, cc dans Bcc est remplacé par deux lettres pour avoir au total 15 cas différents.

MnémoniqueTexteBranchement siPour les nombres
BCCBranch Carry ClearC=0non signés
BCSBranch Carry SetC=1non signés
BEQBranch EQualZ=0non signé
BNEBranch Not EqualZ=1signés
BGEBranch Greater or EqualN=Vsignés
BGTBranch Greater ThanN=V ET Z=0signés
BHIBranch HIgher thanC=0 ET Z=0non signés
BLEBranch Less or EqualZ=1 OU NpuceVsignés
BLSBranch Lower or SameC=1 OU Z=1non signés
BLTBranch Less ThanNpuceVsignés
BMIBranch MInusN=1signés
BPLBranch PLusN=0non signés
BVCBranch V ClearV=0non signés
BVSBranch V SetV=1signés
BRABRanch Always-non signés

puce Le seul mnémonique est le nom du label où doit s'effectuer le saut dans le cas où les conditions seraient respectées, un label s'écrit <label>:<label> est le nom que vous choisissez.

puce 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.

puce Reportez vous à INDICATEURS pour chaque instruction dans le but de savoir quels indicateurs changent et sous quelles conditions.

MODES D'ADRESSAGE
puce -

TAILLE DES DONNÉES
puce Octet / Mot

INDICATEURS
puce Inchangés

SYNTAXE
puce Bcc.b <label>
puce Bcc.w <label>





 

Retour BSR Branch to SubRoutine
saut à une routine
Monter Descendre

DESCRIPTION
puce Dépose l'adresse de la prochaine instruction à executer (le contenu du registre PC) sur la pile et effectue un saut au label spécifié pour executer un sous-programme.

puce 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.

puce 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
puce -

TAILLE DES DONNÉES
puce Octet / Mot

INDICATEURS
puce Inchangés

SYNTAXE
puce BSR.b <label>
puce BSR.w <label>





 

Retour DBcc Decrease then Branch
décrémentation et branchement
Monter Descendre

DESCRIPTION
puce Permet de faire des branchements (sauts) dans un programme suivant l'état des indicateurs, et ce autant de fois que nous le définissons dans un registre de données.

puce 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.

puce Nous avons deux nouveau cas, DBF et DBT, la première instruction est l'alternative à l'instruction DBRA..

puce A chaque fois, cc dans DBcc est remplacé par deux lettres pour avoir au total 17 cas différents.

MnémoniqueTexteBranchement siPour les nombres
DBCCDecrease and Branch Carry ClearC=0non signés
DBCSDecrease and Branch Carry SetC=1non signés
DBEQDecrease and Branch EQualZ=0non signé
DBNEDecrease and Branch Not EqualZ=1signés
DBGEDecrease and Branch Greater or EqualN=Vsignés
DBGTDecrease and Branch Greater ThanN=V ET Z=0signés
DBHIDecrease and Branch HIgher thanC=0 ET Z=0non signés
DBLEDecrease and Branch Less or EqualZ=1 OU NpuceVsignés
DBLSDecrease and Branch Lower or SameC=1 OU Z=1non signés
DBLTDecrease and Branch Less ThanNpuceVsignés
DBMIDecrease and Branch MInusN=1signés
DBPLDecrease and Branch PLusN=0non signés
DBVCDecrease and Branch V ClearV=0non signés
DBVSDecrease and Branch V SetV=1signés
DBRADecrease and BRanch Always-non signés
DBFDecrease and BRanch never terminate-non signés
DBTDecrease and BRanch always terminate-non signés

puce Le premier opérande est le registre de données qui devra être décrémenté de 1 à chaque fois, le deuxième opérande est le nom du label où doit s'effectuer le saut dans le cas où les conditions seraient respectées, un label s'écrit <label>:<label> est le nom que vous choisissez.

puce 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.

puce Reportez vous à INDICATEURS pour chaque instruction dans le but de savoir quels indicateurs changent et sous quelles conditions.

MODES D'ADRESSAGE
puce -

TAILLE DES DONNÉES
puce Mot

INDICATEURS
puce Inchangés

SYNTAXE
puce DBcc Dx,<label>
puce DBcc Dx,<label>





 

Retour JMP JuMP
saut inconditionnel
Monter Descendre

DESCRIPTION
puce Copie le contenu d'une adresse efective dans le registre PC (program counter) qui pointe toujours sur la prochaine instruction à executer.

puce 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
puce (An), y(An), x(An,Xn.s), y, z, y(PC), x(PC,Xn.s)

TAILLE DES DONNÉES
puce -

INDICATEURS
puce Inchangés

SYNTAXE
puce JMP <adresse>





 

Retour JSR Jump to SubRoutine
saut à une routine liée
Monter Descendre

DESCRIPTION
puce Fonctionne de la même façon que l'instruction JMP, mais dépose au préalable l'adresse de la prochaine instruction à executer (le contenu du registre PC) sur la pile et effectue un saut au label spécifié pour executer un sous-programme.

puce 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.

puce Cette instruction est principalement utilisée pour sauter vers une fonction d'une bibliothèque liée au programme,
la syntaxe étant JSR <bibliothèque>::<fonction>.

MODES D'ADRESSAGE
puce An), y(An), x(An,Xn.s), y, z, y(PC), x(PC,Xn.s)

TAILLE DES DONNÉES
puce -

INDICATEURS
puce Inchangés

SYNTAXE
puce JSR <adresse>





 

Retour RTR ReTurn and Restore
retour et restauration de CCR
Monter Descendre

DESCRIPTION
puce Restaure depuis la pile, comme RTE, le status et le pointeur de programme, mais seul l’octet utilisateur du status est affecté. Bien qu’un mot de 16 bits soit extrait de la pile l’octet superviseur reste inchangé. Cette instruction est un retour de sous programme si on a sauvé l’octet utilisateur du status au début du sous-programme.

MODES D'ADRESSAGE
puce

TAILLE DES DONNÉES
puce Octet / Mot / Mot long

INDICATEURS
puce Inchangés

SYNTAXE
puce RTR





 

Retour RTS ReTurn from Subroutine
retour de routine
Monter Descendre

DESCRIPTION
puce Effectue le contraire des instructions BSR et JSR, cette instruction nous permet de sauter à l'adresse de l'instruction qui aurait dûe être executé sans le saut provoqué par les deux instructions nommées précédemment.

puce 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
puce -

TAILLE DE L'INSTRUCTION
puce 2 octets

TAILLE DES DONNÉES
puce -

INDICATEURS
puce Inchangés

SYNTAXE
puce RTS





 

Retour Scc Set and branch
armement et branchement
Monter

DESCRIPTION
puce Permet d'armer (=1) tous les bits de l'octet de destination si la condition est remplie, sinon l'octet est effacé.

puce Nous avons deux nouveau cas, SF et ST.

puce A chaque fois, cc dans Scc est remplacé par deux lettres pour avoir au total 17 cas différents.

MnémoniqueTexteBranchement siPour les nombres
SCCSet Carry ClearC=0non signés
SCSSet Carry SetC=1non signés
SEQSet EQualZ=0non signé
SNESet Not EqualZ=1signés
SGESet Greater or EqualN=Vsignés
SGTSet Greater ThanN=V ET Z=0signés
SHISet HIgher thanC=0 ET Z=0non signés
SLESet Less or EqualZ=1 OU NpuceVsignés
SLSDecrease and Branch Lower or SameC=1 OU Z=1non signés
SLTSet Less ThanNpuceVsignés
SMISet MInusN=1signés
SPLSet PLusN=0non signés
SVCSet V ClearV=0non signés
SVSSet V SetV=1signés
SRASet Always-non signés
SFSet never set-non signés
STSet always set-non signés

puce Reportez vous à INDICATEURS pour chaque instruction dans le but de savoir quels indicateurs changent et sous quelles conditions.

MODES D'ADRESSAGE
puce Dn, (An), -(An), (An)+, y(An), x(An,Xn.s), y, z

TAILLE DES DONNÉES
puce Octet

INDICATEURS
puce Inchangés

SYNTAXE
puce Scc <adresse>





 

 

Lisez la section sur les droits d'auteur et la license d'utilisation avant de distribuer Zguide.

Zguide © 1998, Florian DREVET. Tous droits réservés à l'échelle mondiale