Pl INSTRUC3.DOC/fr: Difference between revisions
Jump to navigation
Jump to search
Olivier.jan (talk | contribs) m (Olivier.jan moved page Pl INSTRUC3.DOC to Pl INSTRUC3.DOC/fr: Renaming for language version) |
Olivier.jan (talk | contribs) mNo edit summary |
||
(One intermediate revision by the same user not shown) | |||
Line 1: | Line 1: | ||
+ | {{Languages|Pl INSTRUC3.DOC}} |
||
<pre> |
<pre> |
||
Line 7: | Line 8: | ||
----------------- |
----------------- |
||
− | L' |
+ | L'opérande source de Link est un registre d'adresse an, l'opérande |
− | destination est du type ' |
+ | destination est du type 'immédiat' et est un MOT signé. |
LINK .EMPILE le contenu de an (l-m) dans la pile système. |
LINK .EMPILE le contenu de an (l-m) dans la pile système. |
||
− | (SP est donc |
+ | (SP est donc décrémenté de 4 unités) |
.La valeur de SP (qui pointe donc le l-m=à an) est ensuite |
.La valeur de SP (qui pointe donc le l-m=à an) est ensuite |
||
− | + | placée dans an. |
|
− | .Le |
+ | .Le déplacement signé est ajouté à SP: |
− | Ceci a pour effet d' |
+ | Ceci a pour effet d'incrémenter (#BBB>0) ou de décrémenter SP |
(#BBB<0). |
(#BBB<0). |
||
− | Link permet donc de |
+ | Link permet donc de réserver une certaine place dans la pile système. |
− | (Pour y placer des |
+ | (Pour y placer des données qui ne doivent pas ˆtre effacées par exp) |
− | Le CCR n'est pas |
+ | Le CCR n'est pas affecté. |
--- |
--- |
||
Line 35: | Line 36: | ||
|--------|--------| |
|--------|--------| |
||
|--------|--------| |
|--------|--------| |
||
− | Après -(SP),a0>|XXXXXXXX|XXXXXXXX|<-- on a |
+ | Après -(SP),a0>|XXXXXXXX|XXXXXXXX|<-- on a posé (-(SP) ) le L-M de a0 |
|XXXXXXXX|XXXXXXXX| et on a mis la valeur de cet SP |
|XXXXXXXX|XXXXXXXX| et on a mis la valeur de cet SP |
||
− | SP au |
+ | SP au début -->|--------|--------| dans a0 |
|--------|--------| |
|--------|--------| |
||
|--------|--------| |
|--------|--------| |
||
|--------|--------| |
|--------|--------| |
||
SP après avoir>|--------|--------| |
SP après avoir>|--------|--------| |
||
− | + | incrémenté (SP)|--------|--------| |
|
Line 50: | Line 51: | ||
----------------- |
----------------- |
||
− | L' |
+ | L'opérande source de Link est un registre d'adresse an. |
UNLK .Charge la valeur de an dans SP: |
UNLK .Charge la valeur de an dans SP: |
||
− | (SP est donc |
+ | (SP est donc décrémenté ou incrémenté) |
− | .Le L-M |
+ | .Le L-M pointé par cet SP est ensuite chargé dans an. |
− | (SP est donc |
+ | (SP est donc incrémenté de 4 unités) |
Line 68: | Line 69: | ||
La pile système resemblera à cela si on reprend l'exemple |
La pile système resemblera à cela si on reprend l'exemple |
||
− | d'utilisation de LINK |
+ | d'utilisation de LINK précédent: |
|--------|--------| |
|--------|--------| |
||
|--------|--------| |
|--------|--------| |
||
|--------|--------| |
|--------|--------| |
||
− | Après a0,(SP) >|XXXXXXXX|XXXXXXXX|<-- on a |
+ | Après a0,(SP) >|XXXXXXXX|XXXXXXXX|<-- on a chargé SP avec an et on a posé |
− | |XXXXXXXX|XXXXXXXX| le L-M |
+ | |XXXXXXXX|XXXXXXXX| le L-M pointé par cet SP dans a0 |
SP àprès UNLK->|--------|--------| ( (SP)+,a0) |
SP àprès UNLK->|--------|--------| ( (SP)+,a0) |
||
|--------|--------| |
|--------|--------| |
||
Line 100: | Line 101: | ||
− | Le CCR n'est pas |
+ | Le CCR n'est pas influencé. |
--- |
--- |
||
Line 117: | Line 118: | ||
RESET |
RESET |
||
----- |
----- |
||
− | Provoque la mise à |
+ | Provoque la mise à zéro des circuits externes du microprocesseur en |
envoyant un signal à la broche RESET du 68000. |
envoyant un signal à la broche RESET du 68000. |
||
− | C'est une instruction |
+ | C'est une instruction privilégiée elle aussi, Il faudra donc veiller |
à ce qu'on soit en mode SUPERVISEUR pour s'en servir... |
à ce qu'on soit en mode SUPERVISEUR pour s'en servir... |
||
− | Le CCR n'est pas |
+ | Le CCR n'est pas modifié par RESET. |
--- |
--- |
||
STOP #BBB |
STOP #BBB |
||
------------- |
------------- |
||
− | L' |
+ | L'opérande #BBB est étendue sur un mot et chargée dans le SR. |
Le PC pointe sur l'instruction suivante, mais le processeur |
Le PC pointe sur l'instruction suivante, mais le processeur |
||
− | cesse toute |
+ | cesse toute activité. |
− | L' |
+ | L'activité peut cependant reprendre quand un RESET externe ou une |
exception TRACE (Mise à 1 du bit T du CCR) se produit. |
exception TRACE (Mise à 1 du bit T du CCR) se produit. |
||
− | C'est une instruction |
+ | C'est une instruction privilégiée elle aussi, Il faudra donc veiller |
à ce qu'on soit en mode SUPERVISEUR pour s'en servir... |
à ce qu'on soit en mode SUPERVISEUR pour s'en servir... |
||
Line 144: | Line 145: | ||
RTE indique la fin de l'execution d'un programme d'interruption, |
RTE indique la fin de l'execution d'un programme d'interruption, |
||
− | elle |
+ | elle dépile de la pile sytème un MOT qu'elle place dans SR et |
un L-M qu'elle place dans le PC. |
un L-M qu'elle place dans le PC. |
||
− | RTE sera |
+ | RTE sera détaillée dans le chapitre conscrenant les programmes |
sous interruption. |
sous interruption. |
||
Line 155: | Line 156: | ||
----------- |
----------- |
||
− | L' |
+ | L'opérande source est du type 'immédiat' (0<= #BBB <=15). |
TRAP entraine l'execution d'une exception à partir d'instructions |
TRAP entraine l'execution d'une exception à partir d'instructions |
||
− | + | situées dans une zone privilégiée de la mémoire. |
|
En pratique, TRAP permet d'appeler les fonctions du BIOS,XBIOS et du |
En pratique, TRAP permet d'appeler les fonctions du BIOS,XBIOS et du |
||
GEMDOS. |
GEMDOS. |
||
− | Nous verons comment dans le chapitre qui |
+ | Nous verons comment dans le chapitre qui décrit ces fonctions très |
utiles... |
utiles... |
||
Line 170: | Line 171: | ||
TRAPV |
TRAPV |
||
----- |
----- |
||
− | Si le bit V du CCR est à 1 ( |
+ | Si le bit V du CCR est à 1 (débordement), TRAPV provoque l'éxecution |
− | d'une |
+ | d'une procédure d'exception |
(Voir la table des vecteurs d'exception plus loin...) |
(Voir la table des vecteurs d'exception plus loin...) |
||
Line 180: | Line 181: | ||
CHK regarde si le nombre contenu dans dn appartient à l'intervalle |
CHK regarde si le nombre contenu dans dn appartient à l'intervalle |
||
− | + | fermé: [0,source] |
|
Si celui-ci n'appartient pas à cet intervalle, il y a execution d'une |
Si celui-ci n'appartient pas à cet intervalle, il y a execution d'une |
||
− | + | procédure d'exception, sinon le programme continue normalement. |
|
− | Les modes d'adressage |
+ | Les modes d'adressage autorisés pour l'opérande source sont: |
------ |
------ |
||
dn |
dn |
||
Line 199: | Line 200: | ||
d(pc,rn) |
d(pc,rn) |
||
− | Seul le bit N du CCR est |
+ | Seul le bit N du CCR est modifié par CHK (suivant le signe de dn) |
--- |
--- |
||
Line 206: | Line 207: | ||
------------------ |
------------------ |
||
− | L' |
+ | L'opérande destination est une adresse qui pointe sur un OCTET. |
− | TAS teste cet OCTET, les bits N et Z du CCR sont |
+ | TAS teste cet OCTET, les bits N et Z du CCR sont positionnés en |
− | + | conséquence,puis le MSB de l'octet est mis à 1. |
|
− | Les modes d'adressage admis par l' |
+ | Les modes d'adressage admis par l'opérande destination sont: |
----------- |
----------- |
||
dn |
dn |
||
Line 223: | Line 224: | ||
− | Cette |
+ | Cette méthode de Test particulière est utilisée par un processeur qui |
− | veut accèder à une ressource ( imprimante par exp ) et qui |
+ | veut accèder à une ressource ( imprimante par exp ) et qui vérifie si |
celle-ci est disponible: |
celle-ci est disponible: |
||
− | On |
+ | On désigne l'état de la ressource par UN SEMAPHORE, si il est à 0, la |
− | ressource est disponible, si il est |
+ | ressource est disponible, si il est négatif (MSB=1),la ressource est |
− | + | occupée. |
|
− | Le processeur fait donc un TAS au |
+ | Le processeur fait donc un TAS au sémaphore qui convient avant |
d'accèder à une ressource. |
d'accèder à une ressource. |
||
Line 238: | Line 239: | ||
Comme son nom l'indique, NOP n'a pas d'action particulière. |
Comme son nom l'indique, NOP n'a pas d'action particulière. |
||
− | NOP a par contre une taille d'1 MOT en |
+ | NOP a par contre une taille d'1 MOT en mémoire et dure 4 périodes |
d'horloge externe. |
d'horloge externe. |
||
− | Elle sera par exemple |
+ | Elle sera par exemple utilisée pour ajuster le temps d'éxecution |
de certaines boucles dans des programmes sous interruption... |
de certaines boucles dans des programmes sous interruption... |
||
Line 256: | Line 257: | ||
Il vous sera inutile d'apprendre tout ça par coeur, faites vous une |
Il vous sera inutile d'apprendre tout ça par coeur, faites vous une |
||
− | petite fiche |
+ | petite fiche récapitulative par exemple, inutile de vous dire que |
c'est à ce chapitre que vous ferez le plus souvent appel quand votre |
c'est à ce chapitre que vous ferez le plus souvent appel quand votre |
||
− | + | mémoire fera défaut, mais c'est bien normal, le contraire serait |
|
− | + | étonnant ! |
|
− | Le chapitre suivant sera |
+ | Le chapitre suivant sera consacré aux fonctions du GEMDOS,BIOS et |
XBIOS. |
XBIOS. |
||
Line 267: | Line 268: | ||
de ces instructions, alors pas de panique. |
de ces instructions, alors pas de panique. |
||
− | Si la tˆte vous tourne |
+ | Si la tˆte vous tourne éteignez votre ST et allez vous coucher ,avez |
− | vous dejà |
+ | vous dejà oublié mon conseil ? |
LA QUALITE VAUT MIEUX QUE LA QUANTITE !!! et toc ! |
LA QUALITE VAUT MIEUX QUE LA QUANTITE !!! et toc ! |
Latest revision as of 12:59, 17 December 2023
SUITE DU CHAPITRE SUR LES INSTRUCTIONS du fichier INSTRUC2.DOC -------------------------------------------------------------- LINK an,#BBB ----------------- L'opérande source de Link est un registre d'adresse an, l'opérande destination est du type 'immédiat' et est un MOT signé. LINK .EMPILE le contenu de an (l-m) dans la pile système. (SP est donc décrémenté de 4 unités) .La valeur de SP (qui pointe donc le l-m=à an) est ensuite placée dans an. .Le déplacement signé est ajouté à SP: Ceci a pour effet d'incrémenter (#BBB>0) ou de décrémenter SP (#BBB<0). Link permet donc de réserver une certaine place dans la pile système. (Pour y placer des données qui ne doivent pas ˆtre effacées par exp) Le CCR n'est pas affecté. --- Exemple d'utilisation: ---------------------- LINK a0,#12 La pile système resemblera à cela: |--------|--------| |--------|--------| |--------|--------| Après -(SP),a0>|XXXXXXXX|XXXXXXXX|<-- on a posé (-(SP) ) le L-M de a0 |XXXXXXXX|XXXXXXXX| et on a mis la valeur de cet SP SP au début -->|--------|--------| dans a0 |--------|--------| |--------|--------| |--------|--------| SP après avoir>|--------|--------| incrémenté (SP)|--------|--------| UNLK an ----------------- L'opérande source de Link est un registre d'adresse an. UNLK .Charge la valeur de an dans SP: (SP est donc décrémenté ou incrémenté) .Le L-M pointé par cet SP est ensuite chargé dans an. (SP est donc incrémenté de 4 unités) Unlk permet donc de redonner la valeur initiale à SP et au registre d'adresse 'an' d'avant Link. Exemple d'utilisation: ---------------------- UNLK a0 La pile système resemblera à cela si on reprend l'exemple d'utilisation de LINK précédent: |--------|--------| |--------|--------| |--------|--------| Après a0,(SP) >|XXXXXXXX|XXXXXXXX|<-- on a chargé SP avec an et on a posé |XXXXXXXX|XXXXXXXX| le L-M pointé par cet SP dans a0 SP àprès UNLK->|--------|--------| ( (SP)+,a0) |--------|--------| |--------|--------| |--------|--------| SP après LINK->|--------|--------| |--------|--------| MOVE USP,an ------------- ou MOVE an,USP ------------- Permet de sauvegarder le pointeur de pile système utilisateur ( User Stack Pointer ) dans un registre d'adresse 'an' pour la 1° forme. ou Permet de charger un registre d'adresse 'an' dans le pointeur de pile système pour la 2° forme. Le CCR n'est pas influencé. --- Exemple d'utilisation: ---------------------- MOVE USP,a0 a0 contiendra la valeur de USP. NB: Cette instruction est une instruction PRIVILEGIEE: --- Elle n'est donc que utilisable en mode SUPERVISEUR. RESET ----- Provoque la mise à zéro des circuits externes du microprocesseur en envoyant un signal à la broche RESET du 68000. C'est une instruction privilégiée elle aussi, Il faudra donc veiller à ce qu'on soit en mode SUPERVISEUR pour s'en servir... Le CCR n'est pas modifié par RESET. --- STOP #BBB ------------- L'opérande #BBB est étendue sur un mot et chargée dans le SR. Le PC pointe sur l'instruction suivante, mais le processeur cesse toute activité. L'activité peut cependant reprendre quand un RESET externe ou une exception TRACE (Mise à 1 du bit T du CCR) se produit. C'est une instruction privilégiée elle aussi, Il faudra donc veiller à ce qu'on soit en mode SUPERVISEUR pour s'en servir... RTE (ReTurn from Exeption) --- RTE indique la fin de l'execution d'un programme d'interruption, elle dépile de la pile sytème un MOT qu'elle place dans SR et un L-M qu'elle place dans le PC. RTE sera détaillée dans le chapitre conscrenant les programmes sous interruption. TRAP #BBB ----------- L'opérande source est du type 'immédiat' (0<= #BBB <=15). TRAP entraine l'execution d'une exception à partir d'instructions situées dans une zone privilégiée de la mémoire. En pratique, TRAP permet d'appeler les fonctions du BIOS,XBIOS et du GEMDOS. Nous verons comment dans le chapitre qui décrit ces fonctions très utiles... TRAPV ----- Si le bit V du CCR est à 1 (débordement), TRAPV provoque l'éxecution d'une procédure d'exception (Voir la table des vecteurs d'exception plus loin...) CHK source,dn ---------------- CHK regarde si le nombre contenu dans dn appartient à l'intervalle fermé: [0,source] Si celui-ci n'appartient pas à cet intervalle, il y a execution d'une procédure d'exception, sinon le programme continue normalement. Les modes d'adressage autorisés pour l'opérande source sont: ------ dn BBBB BB #BBB (an) -(an) (an)+ d(an) d(an,rn) d(pc) d(pc,rn) Seul le bit N du CCR est modifié par CHK (suivant le signe de dn) --- TAS destination ------------------ L'opérande destination est une adresse qui pointe sur un OCTET. TAS teste cet OCTET, les bits N et Z du CCR sont positionnés en conséquence,puis le MSB de l'octet est mis à 1. Les modes d'adressage admis par l'opérande destination sont: ----------- dn BBBB BB (an) -(an) (an)+ d(an) d(an,rn) Cette méthode de Test particulière est utilisée par un processeur qui veut accèder à une ressource ( imprimante par exp ) et qui vérifie si celle-ci est disponible: On désigne l'état de la ressource par UN SEMAPHORE, si il est à 0, la ressource est disponible, si il est négatif (MSB=1),la ressource est occupée. Le processeur fait donc un TAS au sémaphore qui convient avant d'accèder à une ressource. NOP (NO oPeration) --- Comme son nom l'indique, NOP n'a pas d'action particulière. NOP a par contre une taille d'1 MOT en mémoire et dure 4 périodes d'horloge externe. Elle sera par exemple utilisée pour ajuster le temps d'éxecution de certaines boucles dans des programmes sous interruption... ---------------------- Voilà pour les instructions du 68000! Relisez ce chapitre en entier chaque fois avant de vous coucher pendant une semaine et tout ça finira bien par rentrer dans votre tˆte... Il vous sera inutile d'apprendre tout ça par coeur, faites vous une petite fiche récapitulative par exemple, inutile de vous dire que c'est à ce chapitre que vous ferez le plus souvent appel quand votre mémoire fera défaut, mais c'est bien normal, le contraire serait étonnant ! Le chapitre suivant sera consacré aux fonctions du GEMDOS,BIOS et XBIOS. Les exemples qui vont illustrer ces fonctions reprendront certaines de ces instructions, alors pas de panique. Si la tˆte vous tourne éteignez votre ST et allez vous coucher ,avez vous dejà oublié mon conseil ? LA QUALITE VAUT MIEUX QUE LA QUANTITE !!! et toc ! ------------------------------------- PIECHOCKI Laurent 8,impasse Bellevue suite dans le fichier: GEMDOS.DOC 57980 TENTELING ----------
Back to ASM_Tutorial