USR()
DESCRIPTION.
La fonction USR() exécute une routine en code machine et retourne une valeur numérique en fin d'exécution.
SYNTAXE.
kvaleur = USR( routine )
REMARQUES.
routine doit être une adresse mémoire, un script en langage machine, une commande de l'OS, ...
Pour reprendre le déroulement de l'application principale, la routine en code machine doit se terminer par une instruction RET.
La fonction USR() retourne toujours un nombre entier, sur 32 bits. Il est donc obligatoire de préciser, lors de l'appel, quelle sera la variable qui sera affectée par cette valeur.
Lors de l'utilisation de la fonction USR(), les six premiers paramètres du processeur, tels que spécifiés par l'ABI (Application Binary Interface) recevront, respectivement les valeurs des variables statiques A%, B%, C%, D%, E% et F%. Sauf sur les machines ayant un processeur x86 32 bits, dans ce cas le registre :
- EAX, sera initialisé avec la valeur de la variable statique A% ;
- EBX, sera initialisé avec la valeur de la variable statique B% ;
- ECX, sera initialisé avec la valeur de la variable statique C% ;
- EDX, sera initialisé avec la valeur de la variable statique D% ;
- FLAGS sera initialisé au mot de poids faible de la variable statique F%.
Note : sur les machines ayant un processeur x86 32 bits, il n'est pas possible de désactiver les interruptions, ni de passer en mode pas à pas, en modifiant la valeur de la variable statique F%, car cela perturberait gravement le bon fonctionnement du système d'exploitation de la machine.
Les instructions USR() et CALL font des comportements différemment avec l'utilisation d'adresses comprises entre &FF00 et &FFFF.
Consultez le manuel du BBC BASIC for SDL 2.0 pour plus de détails sur l'émulateur de langage machine.
Votre aide est précieuse pour améliorer ce site, alors n'hésitez pas à faire part de
Dans la RETROGICIEL vous trouvez des suggestions simples et classiques pour
TESTER - DÉCOUVRIR - PRATIQUER - APPROFONDIR - EXPLORER
avec un exemple de résolution à télécharger pour vous inspirer.