REMS,  ( at as ar -- )

publication: 22 novembre 2022 / mis à jour 6 janvier 2023

Read this page in english

 

vocabulaire: xtensa

Reste signé.

Mot d'instruction (RRR).

REMS, effectue une division en complément à deux sur 32 bits du contenu du registre d'adresse as par le contenu du registre d'adresse at et écrit le reste dans le registre d'adresse ar.

L'ambiguïté qui existe lorsque l'un ou l'autre registre d'adresse as ou registre d'adresse at est négatif est résolue en exigeant que le reste ait le même signe que registre d'adresse as. Si le contenu du registre d'adresse à est égal à zéro, REMS lève une exception Integer Divide by Zero au lieu d'écrire un résultat.

Exemple:

\ for macros, see: 
\    https://github.com/MPETREMANN11/ESP32forth/blob/main/assembler/xtensaMacros.txt 
code my/MOD ( n1 n2 -- rem quot )  
    a1 32       ENTRY,   
    a7  arPOP,          \ divider in a7  
    a8  arPOP,          \ value to divide in a8  
    a7 a8 a9    REMS,   \ a9 = a8 MOD a7  
    a9  arPUSH,  
    a7 a8 a9    QUOS,   \ a9 = a8 / a7  
    a9  arPUSH,  
            RETW.N,   
end-code 

Legal: site web personnel sans commerce / personal site without seling