2016-02-17 7 views

Répondre

0

Une utilisation comprend des arguments de passage aux fonctions de montage comme celui-ci:

CALL function_name 
    DB 1,2,3 ;arguments 
... 
function_name: 
    XTHL 
    MOV A,M ;get argument 
    INX H ;move to next argument 
    ... 
    XTHL ;now return modified return address to stack, 
     ;also restoring HL contents as well 

Autre utilisation est d'avoir une copie d'ombre de HL sur le dessus de la pile, par exemple:

DAD B ;hl=hl+bc 
    XTHL ;'shadow' hl swapped in 
    JNC no_inc 
    INX H 
no_inc: 
    DAD D ;hl=hl+de 
    XTHL 
    ;so we just added 32-bit number in DE:BC to HL:(TOS) 

Dans la même manière que vous jongler avec les mots qui sont poussés sur la pile.

Certains abus comprend également ceci:

LXI SP,addr1 
    XTHL 
    LXI SP,addr2 
    XTHL 
    ... 

ce code se déplace chaîne de mots de données à travers des endroits pointés par LXI SP,addr consécutifs commandes. Bien sûr, cela nécessite la désactivation des interruptions, mais le gain est la vitesse.