Pl INSTRUC3.DOC: Difference between revisions
Jump to navigation
Jump to search
>Zorro 2 No edit summary |
>Wongck No edit summary |
||
| (2 intermediate revisions by 2 users not shown) | |||
| Line 1: | Line 1: | ||
<pre> | <pre> | ||
SUITE DU CHAPITRE SUR LES INSTRUCTIONS du fichier | SUITE DU CHAPITRE SUR LES INSTRUCTIONS du fichier INSTRUC2.DOC -------------------------------------------------------------- | ||
| Line 276: | Line 275: | ||
PIECHOCKI Laurent | PIECHOCKI Laurent | ||
8,impasse Bellevue suite dans le fichier: | 8,impasse Bellevue suite dans le fichier: GEMDOS.DOC | ||
57980 TENTELING ---------- | 57980 TENTELING ---------- | ||
| Line 285: | Line 284: | ||
</pre> | </pre> | ||
Back to [[ASM_Tutorial]] | Back to [[ASM_Tutorial]] | ||
[[Category: ASSEMBLEUR 68000 sur ATARI ST Part 1 ]] | |||
Latest revision as of 11:12, 12 October 2011
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