Procédé de vérification d’une exécution d’un programme logiciel compilé stocké dans une mémoire programme d’un processeur et exécuté par le processeur, le procédé comprenant au moins une opération d’écriture (110), ladite au moins une opération d’écriture compilée (110) comprenant : - une affectation d’une adresse de destination dans un registre du processeur (111) ; - une écriture d’une donnée à l’emplacement pointé par l’adresse de destination contenue dans le registre (113) ; dans lequel une opération de vérification compilée (120) comprend : - une réaffectation de la même adresse de destination dans le même registre (121) ; - une lecture de la donnée contenue à l’emplacement pointé par l’adresse de destination contenue dans le registre après la réaffectation (123) ; - une comparaison entre la donnée lue et la donnée écrite (125). Procédé selon la revendication 1, dans lequel la réaffectation (121) de l’opération de vérification (120) est effectuée pour toutes les affectations immédiates de données dans des registres faites lors de l’exécution de ladite au moins une opération d’écriture (110), une affectation immédiate étant une écriture dans un registre d’une donnée présente à une adresse définie par un décalage ajouté à une valeur d’une adresse absolue ([PC, #0x34]). Procédé selon l’une des revendications 1 ou 2, dans lequel l’exécution dudit programme logiciel comprend une compilation d’un code de langage de programmation (H_LVL_LANG) en instructions de langage machine (L_LVL_LANG), et dans lequel au moins une instruction de langage machine (LDR.N) dédiée à la mise en œuvre de ladite réaffectation est imposée lors de la compilation par un mnemonic (FMB()) dans le code de langage de programmation (H_LVL_LANG). Procédé selon l’une des revendications précédentes, dans lequel ladite au moins une opération d’écriture (110) et l’opération de vérification (120) sont mise en œuvre dans l’exécution d’une même fonction du programme logiciel. Procédé selon la revendication 4, dans lequel l’exécution de ladite même fonction du programme logiciel comprend une compilation de code mettant en œuvre une optimisation des ressources comprenant une réutilisation du contenu affecté dans ledit registre pour des instructions distinctes de ladite même fonction. Procédé selon l’une des revendications précédentes, dans lequel ladite comparaison (125) de l’opération de vérification (120) comprend une génération d’un message d’erreur (129) si la donnée lue et la donnée écrite ne sont pas identiques. Produit programme d’ordinateur comprenant des instructions qui, lorsque le programme est exécuté par un ordinateur, conduisent celui-ci à mettre en œuvre le procédé (100) selon l’une des revendications 1 à 6. Support lisible par ordinateur comprenant des instructions qui, lorsqu’elles sont exécutées par un ordinateur, conduisent celui-ci à mettre en œuvre le procédé (100) selon l’une des revendications 1 à 6. Dispositif comprenant un processeur (CPU), une mémoire programme (PM) configurée pour contenir un programme logiciel compilé (L_LVL_LANG) destiné à être exécuté par le processeur (CPU), le programme logiciel comprenant des instructions qui, lorsqu’il est exécuté par le processeur, conduisent celui-ci à mettre en œuvre le procédé (100) selon l’une des revendications 1 à 6.