COURS202.TXT/fr: Difference between revisions
Jump to navigation
Jump to search
(Created page with "<pre> ****************************************************************** * * * COURS D'ASSEM...") Â |
No edit summary |
||
Line 4: | Line 4: | ||
* COURS D'ASSEMBLEUR 68000 SUR ATARI ST * |
* COURS D'ASSEMBLEUR 68000 SUR ATARI ST * |
||
* * |
* * |
||
− | * par Le |
+ | * par Le F�roce Lapin (from 44E) * |
* * |
* * |
||
− | * Seconde |
+ | * Seconde s�rie * |
* * |
* * |
||
− | * Cours |
+ | * Cours num�ro 2 * |
****************************************************************** |
****************************************************************** |
||
Nous voici donc repartis pour de nouvelles aventures! Ce second |
Nous voici donc repartis pour de nouvelles aventures! Ce second |
||
− | cours aura pour sujet les TRAP et plus |
+ | cours aura pour sujet les TRAP et plus pr�cis�ment comment les |
− | programmer soit |
+ | programmer soit m�me.Nous avions vu, dans la premi�re s�rie, que |
+ | les traps �taient un excellent moyen d'acc�der au syst�me d'ex- |
||
− | les traps ‚taient un excellent moyen d'acc‚der au systŠme d'ex- |
||
− | ploitation, et plus |
+ | ploitation, et plus g�n�ralement d'acc�der � des espaces prot�g�s |
− | (uniquement accessible en mode Superviseur). Nous avions |
+ | (uniquement accessible en mode Superviseur). Nous avions �gale- |
+ | ment �tudi� le passage des param�tres par la pile, ce qui nous |
||
− | ment ‚tudi‚ le passage des paramŠtres par la pile, ce qui nous |
||
− | avait servi pour |
+ | avait servi pour r�aliser des subroutines avec param�tres. |
− | Le premier exemple va consister |
+ | Le premier exemple va consister � changer la couleur du fond de |
+ | l'�cran, avec une routine fabrication maison, qui sera appel�e |
||
− | l'‚cran, avec une routine fabrication maison, qui sera appel‚e |
||
par un trap. |
par un trap. |
||
D'abord la routine: |
D'abord la routine: |
||
+ | Etant donn� qu'un trap est toujours ex�cut� en Superviseur, nous |
||
− | Etant donn‚ qu'un trap est toujours ex‚cut‚ en Superviseur, nous |
||
+ | n'h�sitons pas � utiliser les adresses syst�me. La palette de |
||
− | n'h‚sitons pas … utiliser les adresses systŠme. La palette de |
||
− | couleurs du ST est |
+ | couleurs du ST est situ�e � l'adresse $FF8240. Chaque couleur |
+ | �tant cod�e sur un mot, la couleur 0 est en $FF8240, la couleur 1 |
||
− | ‚tant cod‚e sur un mot, la couleur 0 est en $FF8240, la couleur 1 |
||
en $FF8242 etc... |
en $FF8242 etc... |
||
Line 40: | Line 40: | ||
RTE |
RTE |
||
+ | Une �tiquette permet de les rep�rer (ROUGE et VERT). Les couleurs |
||
− | Une ‚tiquette permet de les rep‚rer (ROUGE et VERT). Les couleurs |
||
+ | �tant cod�es en RVB (rouge/vert/bleu. On trouve aussi RGB qui est |
||
− | ‚tant cod‚es en RVB (rouge/vert/bleu. On trouve aussi RGB qui est |
||
la traduction anglaise: red/green/blue) et les niveaux varient de |
la traduction anglaise: red/green/blue) et les niveaux varient de |
||
+ | 0 � 7. Nous remarquons que les routines ne se terminent pas par |
||
− | 0 … 7. Nous remarquons que les routines ne se terminent pas par |
||
RTS mais par RTE. Cela signifie Return from exception. Il s'agit |
RTS mais par RTE. Cela signifie Return from exception. Il s'agit |
||
bien en effet d'un retour d'exception et non pas du retour d'une |
bien en effet d'un retour d'exception et non pas du retour d'une |
||
Line 49: | Line 49: | ||
Petit rappel: RTE se lit "return from exception". Je vous rappelle |
Petit rappel: RTE se lit "return from exception". Je vous rappelle |
||
− | qu'il faut TOUT lire en Anglais et pas se contenter de lire l' |
+ | qu'il faut TOUT lire en Anglais et pas se contenter de lire l'abr� |
− | viation dont la signification est souvent assez |
+ | viation dont la signification est souvent assez �vasive. |
Voici le programme 'en entier'. |
Voici le programme 'en entier'. |
||
− | MOVE.L #MESSAGE,-(SP) toujours sympa de se |
+ | MOVE.L #MESSAGE,-(SP) toujours sympa de se pr�senter |
MOVE.W #9,-(SP) |
MOVE.W #9,-(SP) |
||
TRAP #1 appel GEMDOS |
TRAP #1 appel GEMDOS |
||
Line 61: | Line 61: | ||
* Fixer les vecteur d'exception |
* Fixer les vecteur d'exception |
||
MOVE.L #ROUGE,-(SP) adresse 'routine' |
MOVE.L #ROUGE,-(SP) adresse 'routine' |
||
− | MOVE.W #35,-(SP) |
+ | MOVE.W #35,-(SP) num�ro de vecteur du trap #3 |
MOVE.W #5,-(SP) fonction Setexec() |
MOVE.W #5,-(SP) fonction Setexec() |
||
TRAP #13 du bios |
TRAP #13 du bios |
||
Line 67: | Line 67: | ||
MOVE.L #VERT,-(SP) adresse 'routine' |
MOVE.L #VERT,-(SP) adresse 'routine' |
||
− | MOVE.W #36,-(SP) |
+ | MOVE.W #36,-(SP) num�ro de vecteur du trap #4 |
MOVE.W #5,-(SP) fonction Setexec() |
MOVE.W #5,-(SP) fonction Setexec() |
||
TRAP #13 du bios |
TRAP #13 du bios |
||
Line 101: | Line 101: | ||
Facile n'est ce pas ? Et bien maintenant que vous savez mettre |
Facile n'est ce pas ? Et bien maintenant que vous savez mettre |
||
− | vos propres routines en TRAP et que vous savez |
+ | vos propres routines en TRAP et que vous savez �galement passer |
+ | des param�tres � une sub routine, il ne vous reste plus qu'� |
||
− | des paramŠtres … une sub routine, il ne vous reste plus qu'… |
||
+ | faire la m�me chose. J'estime que vous �tes assez grand pour le |
||
− | faire la mˆme chose. J'estime que vous ˆtes assez grand pour le |
||
faire tout seul et c'est pour cette raison que nous n'allons pas |
faire tout seul et c'est pour cette raison que nous n'allons pas |
||
− | le faire ici. A vous de travailler! Une seule |
+ | le faire ici. A vous de travailler! Une seule pr�caution � |
prendre: Une subroutine n'a besoin que de l'adresse de retour et |
prendre: Une subroutine n'a besoin que de l'adresse de retour et |
||
donc n'empile que cela. Un TRAP par contre, du fait qu'il passe |
donc n'empile que cela. Un TRAP par contre, du fait qu'il passe |
||
− | en Superviseur, sauve |
+ | en Superviseur, sauve �galement le Status Register. Il ne faut |
donc pas oublier de le prendre en compte pour calculer le saut |
donc pas oublier de le prendre en compte pour calculer le saut |
||
− | qui vous permettra de |
+ | qui vous permettra de r�cup�rer vos param�tres pass�s sur la |
− | pile. L'adresse de retour est bien |
+ | pile. L'adresse de retour est bien s�r cod�e sur 4 bytes et le |
Status Register sur 2. Il y a donc empilage de 6 bytes par le |
Status Register sur 2. Il y a donc empilage de 6 bytes par le |
||
− | TRAP qui les |
+ | TRAP qui les d�pile automatiquement au retour afin de retrouver |
+ | d'o� il vient et afin �galement de remettre comme avant le Status- |
||
− | d'o— il vient et afin ‚galement de remettre comme avant le Status- |
||
Register. Il ne faudra pas non plus oublier de corriger la pile |
Register. Il ne faudra pas non plus oublier de corriger la pile |
||
au retour. |
au retour. |
||
Comme d'habitude, prenez votre temps et faites de nombreux petits |
Comme d'habitude, prenez votre temps et faites de nombreux petits |
||
− | essais afin de parfaitement comprendre la |
+ | essais afin de parfaitement comprendre la syst�me. |
+ | Regardez �galement attentivement la fonction du Bios qui nous a |
||
− | Regardez ‚galement attentivement la fonction du Bios qui nous a |
||
+ | servi � mettre en place nos deux routines. Si au lieu de lui |
||
− | servi … mettre en place nos deux routines. Si au lieu de lui |
||
fournir la nouvelle adresse pour le vecteur, nous lui passons -1, |
fournir la nouvelle adresse pour le vecteur, nous lui passons -1, |
||
cette fonction nous retourne, dans D0.L, l'adresse actuelle |
cette fonction nous retourne, dans D0.L, l'adresse actuelle |
||
− | correspondant |
+ | correspondant � ce vecteur. Rien ne nous emp�che donc de demander |
+ | l'adresse utilis�e par le TRAP #1 (Gemdos), de transf�rer cette |
||
− | l'adresse utilis‚e par le TRAP #1 (Gemdos), de transf‚rer cette |
||
adresse dans le trap #0 (par exemple) et de mettre notre propre |
adresse dans le trap #0 (par exemple) et de mettre notre propre |
||
routine dans le TRAP #1. Cela peut aussi vous servir pour |
routine dans le TRAP #1. Cela peut aussi vous servir pour |
||
+ | d�tourner le TRAP. Par exemple pour g�n�rer automatiquement des |
||
− | d‚tourner le TRAP. Par exemple pour g‚n‚rer automatiquement des |
||
− | macros. Il est possible d'imaginer ainsi un programme |
+ | macros. Il est possible d'imaginer ainsi un programme r�sident en |
+ | m�moire, qui est plac� � la place du trap 13 (Bios). A chaque |
||
− | m‚moire, qui est plac‚ … la place du trap 13 (Bios). A chaque |
||
fois qu'il y a un appel au Bios, c'est donc notre routine qui est |
fois qu'il y a un appel au Bios, c'est donc notre routine qui est |
||
+ | d�clench�e. Etant donn� que les appels se font avec empilage |
||
− | d‚clench‚e. Etant donn‚ que les appels se font avec empilage |
||
+ | des param�tres, il est tout � fait possible de savoir quelle |
||
− | des paramŠtres, il est tout … fait possible de savoir quelle |
||
− | fonction du Bios on veut appeler. Il est alors possible de |
+ | fonction du Bios on veut appeler. Il est alors possible de r�agir |
+ | diff�remment pour certaines fonctions. Cela permet par exemple de |
||
− | diff‚remment pour certaines fonctions. Cela permet par exemple de |
||
tester des appuis sur Alternate+touches de fonction et dans ce |
tester des appuis sur Alternate+touches de fonction et dans ce |
||
− | cas, d'aller |
+ | cas, d'aller �crire des phrases dans le buffer clavier, ceci afin |
− | de |
+ | de g�n�rer des macros! |
− | Note: Un trap ne peut faire appel |
+ | Note: Un trap ne peut faire appel � des traps plac�s 'au-dessous' |
− | de lui. Ainsi, dans un trap #1, il est tout |
+ | de lui. Ainsi, dans un trap #1, il est tout � fait possible |
d'appeler un trap #13 mais l'inverse n'est pas possible. |
d'appeler un trap #13 mais l'inverse n'est pas possible. |
||
− | Exemple curieux et |
+ | Exemple curieux et int�ressant: |
MOVE.W #"A",-(SP) |
MOVE.W #"A",-(SP) |
||
MOVE.W #2,-(SP) |
MOVE.W #2,-(SP) |
||
Line 153: | Line 153: | ||
TRAP #1 |
TRAP #1 |
||
− | Ce court programme ne doit pas poser de |
+ | Ce court programme ne doit pas poser de probl�me. Nous affichons A |
puis nous quittons. Assemblez-le, puis passez sous MONST. |
puis nous quittons. Assemblez-le, puis passez sous MONST. |
||
− | Appuyez sur [Control] + P. Vous choisissez alors les |
+ | Appuyez sur [Control] + P. Vous choisissez alors les pr�f�rences |
− | de MONST. Parmi celles-ci, il y a "follow traps", c'est- |
+ | de MONST. Parmi celles-ci, il y a "follow traps", c'est-�-dire |
− | suivre les TRAPs qui, par |
+ | suivre les TRAPs qui, par d�faut, est sur "NO". Tapez Y pour YES. |
− | Une fois les |
+ | Une fois les pr�f�rences d�finies, faites avancer votre programme |
+ | pas � pas avec control+Z. A la diff�rence des autres fois, |
||
− | pas … pas avec control+Z. A la diff‚rence des autres fois, |
||
lorsque vous arrivez sur le TRAP vous voyez ce qui se passe. Ne |
lorsque vous arrivez sur le TRAP vous voyez ce qui se passe. Ne |
||
+ | vous �tonnez pas, cela va �tre assez long car il se passe |
||
− | vous ‚tonnez pas, cela va ˆtre assez long car il se passe |
||
− | beaucoup de chose pour afficher un |
+ | beaucoup de chose pour afficher un caract�re � l'�cran. Le plus |
+ | �tonnant va �tre l'appel au trap #13. Eh oui, pour afficher un |
||
− | ‚tonnant va ˆtre l'appel au trap #13. Eh oui, pour afficher un |
||
+ | caract�re le GEMDOS fait appel au Bios!!!!! |
||
− | caractŠre le GEMDOS fait appel au Bios!!!!! |
||
− | Une autre |
+ | Une autre exp�rience tout aussi int�ressante: |
MOVE.W #"A",-(SP) |
MOVE.W #"A",-(SP) |
||
Line 179: | Line 179: | ||
Affichage de A mais cette fois avec la fonction Bconout() du |
Affichage de A mais cette fois avec la fonction Bconout() du |
||
Bios. Assemblez puis passez sous MONST avec un suivi des traps. |
Bios. Assemblez puis passez sous MONST avec un suivi des traps. |
||
− | Lorsque vous arrivez dans le Bios (donc |
+ | Lorsque vous arrivez dans le Bios (donc apr�s le passage sur |
− | l'instruction TRAP #13), faites avancer pas |
+ | l'instruction TRAP #13), faites avancer pas � pas le programme |
mais de temps en temps taper sur la lettre V. Cela vous permet de |
mais de temps en temps taper sur la lettre V. Cela vous permet de |
||
+ | voir l'�cran. Pour revenir sous MONST tapez n'importe quelle |
||
− | voir l'‚cran. Pour revenir sous MONST tapez n'importe quelle |
||
touche. Avancer encore de quelques instructions puis retaper V |
touche. Avancer encore de quelques instructions puis retaper V |
||
− | etc... Au bout d'un moment vous verrez |
+ | etc... Au bout d'un moment vous verrez appara�tre la lettre A. |
+ | R�fl�chissez � la notion d'�cran graphique et � la notion de fon- |
||
− | R‚fl‚chissez … la notion d'‚cran graphique et … la notion de fon- |
||
tes et vous comprendrez sans mal ce qui se passe. Surprenant non ? |
tes et vous comprendrez sans mal ce qui se passe. Surprenant non ? |
||
Quelques petites choses encore: suivez les traps du Bios, Xbios |
Quelques petites choses encore: suivez les traps du Bios, Xbios |
||
− | GemDos et regardez ce qui se passe au |
+ | GemDos et regardez ce qui se passe au d�but. Vous vous rendrez |
compte qu'il y a sauvegarde des registres sur la pile. Seulement |
compte qu'il y a sauvegarde des registres sur la pile. Seulement |
||
il n'y a pas sauvegarde de TOUS les registres! Seuls D3-D7/A3-A6 |
il n'y a pas sauvegarde de TOUS les registres! Seuls D3-D7/A3-A6 |
||
+ | sont sauv�s et donc le contenu de D2 est potentiellement �crasa- |
||
− | sont sauv‚s et donc le contenu de D2 est potentiellement ‚crasa- |
||
− | ble par un appel au |
+ | ble par un appel au syst�me d'exploitation. La prudence est donc |
+ | conseill�e. En suivant �galement les TRAPs vous apercevrez USP. |
||
− | conseill‚e. En suivant ‚galement les TRAPs vous apercevrez USP. |
||
− | Cela signifie User Stack Pointer c'est ainsi que l'on |
+ | Cela signifie User Stack Pointer c'est ainsi que l'on d�signe la |
pile utilisateur. |
pile utilisateur. |
||
+ | Voil�, normalement les traps n'ont plus de secret pour vous. Vous |
||
− | Voil…, normalement les traps n'ont plus de secret pour vous. Vous |
||
− | devez savoir leur passer des |
+ | devez savoir leur passer des param�tres, les reprogrammer etc ... |
− | Vous devez |
+ | Vous devez m�me vous rendre compte qu'en suivant les fonctions du |
+ | syst�me d'exploitation, on doit pouvoir d�couvrir comment se font |
||
− | systŠme d'exploitation, on doit pouvoir d‚couvrir comment se font |
||
− | telle et telle choses, et ainsi pouvoir |
+ | telle et telle choses, et ainsi pouvoir r��crire des morceaux de |
routines. |
routines. |
||
</pre> |
</pre> |
Revision as of 15:08, 23 November 2023
****************************************************************** * * * COURS D'ASSEMBLEUR 68000 SUR ATARI ST * * * * par Le F�roce Lapin (from 44E) * * * * Seconde s�rie * * * * Cours num�ro 2 * ****************************************************************** Nous voici donc repartis pour de nouvelles aventures! Ce second cours aura pour sujet les TRAP et plus pr�cis�ment comment les programmer soit m�me.Nous avions vu, dans la premi�re s�rie, que les traps �taient un excellent moyen d'acc�der au syst�me d'ex- ploitation, et plus g�n�ralement d'acc�der � des espaces prot�g�s (uniquement accessible en mode Superviseur). Nous avions �gale- ment �tudi� le passage des param�tres par la pile, ce qui nous avait servi pour r�aliser des subroutines avec param�tres. Le premier exemple va consister � changer la couleur du fond de l'�cran, avec une routine fabrication maison, qui sera appel�e par un trap. D'abord la routine: Etant donn� qu'un trap est toujours ex�cut� en Superviseur, nous n'h�sitons pas � utiliser les adresses syst�me. La palette de couleurs du ST est situ�e � l'adresse $FF8240. Chaque couleur �tant cod�e sur un mot, la couleur 0 est en $FF8240, la couleur 1 en $FF8242 etc... Nous allons faire 2 routines. Une qui mettra le fond en rouge, l'autre qui mettra le fond en vert. Les voici: ROUGE MOVE.W #$700,$FF8240 RTE VERT MOVE.W #$070,$FF8240 RTE Une �tiquette permet de les rep�rer (ROUGE et VERT). Les couleurs �tant cod�es en RVB (rouge/vert/bleu. On trouve aussi RGB qui est la traduction anglaise: red/green/blue) et les niveaux varient de 0 � 7. Nous remarquons que les routines ne se terminent pas par RTS mais par RTE. Cela signifie Return from exception. Il s'agit bien en effet d'un retour d'exception et non pas du retour d'une subroutine classique. Petit rappel: RTE se lit "return from exception". Je vous rappelle qu'il faut TOUT lire en Anglais et pas se contenter de lire l'abr� viation dont la signification est souvent assez �vasive. Voici le programme 'en entier'. MOVE.L #MESSAGE,-(SP) toujours sympa de se pr�senter MOVE.W #9,-(SP) TRAP #1 appel GEMDOS ADDQ.L #6,SP * Fixer les vecteur d'exception MOVE.L #ROUGE,-(SP) adresse 'routine' MOVE.W #35,-(SP) num�ro de vecteur du trap #3 MOVE.W #5,-(SP) fonction Setexec() TRAP #13 du bios ADDQ.L #8,SP MOVE.L #VERT,-(SP) adresse 'routine' MOVE.W #36,-(SP) num�ro de vecteur du trap #4 MOVE.W #5,-(SP) fonction Setexec() TRAP #13 du bios ADDQ.L #8,SP * Les routines sont donc maintenant accessibles par le trap 3 et par le trap 4. BSR TOUCHE TRAP #3 BSR TOUCHE TRAP #4 BSR TOUCHE TRAP #3 BSR TOUCHE MOVE.W #0,-(SP) TRAP #1 *-------------------------------------* ROUGE MOVE.W #$700,$FF8240 RTE VERT MOVE.W #$070,$FF8240 RTE *-------------------------------------* TOUCHE MOVE.W #7,-(SP) TRAP #1 ADDQ.L #2,SP RTS *-------------------------------------* SECTION DATA MESSAGE DC.B 27,"E","LES TRAPS",0 Facile n'est ce pas ? Et bien maintenant que vous savez mettre vos propres routines en TRAP et que vous savez �galement passer des param�tres � une sub routine, il ne vous reste plus qu'� faire la m�me chose. J'estime que vous �tes assez grand pour le faire tout seul et c'est pour cette raison que nous n'allons pas le faire ici. A vous de travailler! Une seule pr�caution � prendre: Une subroutine n'a besoin que de l'adresse de retour et donc n'empile que cela. Un TRAP par contre, du fait qu'il passe en Superviseur, sauve �galement le Status Register. Il ne faut donc pas oublier de le prendre en compte pour calculer le saut qui vous permettra de r�cup�rer vos param�tres pass�s sur la pile. L'adresse de retour est bien s�r cod�e sur 4 bytes et le Status Register sur 2. Il y a donc empilage de 6 bytes par le TRAP qui les d�pile automatiquement au retour afin de retrouver d'o� il vient et afin �galement de remettre comme avant le Status- Register. Il ne faudra pas non plus oublier de corriger la pile au retour. Comme d'habitude, prenez votre temps et faites de nombreux petits essais afin de parfaitement comprendre la syst�me. Regardez �galement attentivement la fonction du Bios qui nous a servi � mettre en place nos deux routines. Si au lieu de lui fournir la nouvelle adresse pour le vecteur, nous lui passons -1, cette fonction nous retourne, dans D0.L, l'adresse actuelle correspondant � ce vecteur. Rien ne nous emp�che donc de demander l'adresse utilis�e par le TRAP #1 (Gemdos), de transf�rer cette adresse dans le trap #0 (par exemple) et de mettre notre propre routine dans le TRAP #1. Cela peut aussi vous servir pour d�tourner le TRAP. Par exemple pour g�n�rer automatiquement des macros. Il est possible d'imaginer ainsi un programme r�sident en m�moire, qui est plac� � la place du trap 13 (Bios). A chaque fois qu'il y a un appel au Bios, c'est donc notre routine qui est d�clench�e. Etant donn� que les appels se font avec empilage des param�tres, il est tout � fait possible de savoir quelle fonction du Bios on veut appeler. Il est alors possible de r�agir diff�remment pour certaines fonctions. Cela permet par exemple de tester des appuis sur Alternate+touches de fonction et dans ce cas, d'aller �crire des phrases dans le buffer clavier, ceci afin de g�n�rer des macros! Note: Un trap ne peut faire appel � des traps plac�s 'au-dessous' de lui. Ainsi, dans un trap #1, il est tout � fait possible d'appeler un trap #13 mais l'inverse n'est pas possible. Exemple curieux et int�ressant: MOVE.W #"A",-(SP) MOVE.W #2,-(SP) TRAP #1 ADDQ.L #4,SP MOVE.W #0,-(SP) TRAP #1 Ce court programme ne doit pas poser de probl�me. Nous affichons A puis nous quittons. Assemblez-le, puis passez sous MONST. Appuyez sur [Control] + P. Vous choisissez alors les pr�f�rences de MONST. Parmi celles-ci, il y a "follow traps", c'est-�-dire suivre les TRAPs qui, par d�faut, est sur "NO". Tapez Y pour YES. Une fois les pr�f�rences d�finies, faites avancer votre programme pas � pas avec control+Z. A la diff�rence des autres fois, lorsque vous arrivez sur le TRAP vous voyez ce qui se passe. Ne vous �tonnez pas, cela va �tre assez long car il se passe beaucoup de chose pour afficher un caract�re � l'�cran. Le plus �tonnant va �tre l'appel au trap #13. Eh oui, pour afficher un caract�re le GEMDOS fait appel au Bios!!!!! Une autre exp�rience tout aussi int�ressante: MOVE.W #"A",-(SP) MOVE.W #2,-(SP) MOVE.W #3,-(SP) TRAP #13 ADDQ.L #6,SP MOVE.W #0,-(SP) TRAP #1 Affichage de A mais cette fois avec la fonction Bconout() du Bios. Assemblez puis passez sous MONST avec un suivi des traps. Lorsque vous arrivez dans le Bios (donc apr�s le passage sur l'instruction TRAP #13), faites avancer pas � pas le programme mais de temps en temps taper sur la lettre V. Cela vous permet de voir l'�cran. Pour revenir sous MONST tapez n'importe quelle touche. Avancer encore de quelques instructions puis retaper V etc... Au bout d'un moment vous verrez appara�tre la lettre A. R�fl�chissez � la notion d'�cran graphique et � la notion de fon- tes et vous comprendrez sans mal ce qui se passe. Surprenant non ? Quelques petites choses encore: suivez les traps du Bios, Xbios GemDos et regardez ce qui se passe au d�but. Vous vous rendrez compte qu'il y a sauvegarde des registres sur la pile. Seulement il n'y a pas sauvegarde de TOUS les registres! Seuls D3-D7/A3-A6 sont sauv�s et donc le contenu de D2 est potentiellement �crasa- ble par un appel au syst�me d'exploitation. La prudence est donc conseill�e. En suivant �galement les TRAPs vous apercevrez USP. Cela signifie User Stack Pointer c'est ainsi que l'on d�signe la pile utilisateur. Voil�, normalement les traps n'ont plus de secret pour vous. Vous devez savoir leur passer des param�tres, les reprogrammer etc ... Vous devez m�me vous rendre compte qu'en suivant les fonctions du syst�me d'exploitation, on doit pouvoir d�couvrir comment se font telle et telle choses, et ainsi pouvoir r��crire des morceaux de routines.
Back to ASM_Tutorial