La table donnée ci-dessous contient les mnémoniques des instructions supplémentaires, et leurs codes machine. Les quatre codes de chargement de HX, HY, LX et LY peuvent être suivis par n'importe quelle valeur contenue dans un octet Ici. nous avons utilisé zéro en opérande mais cela n'était qu'à titre d'exemple et c'était plus facile à faire comprendre à l'assembleur. Il faut bien sûr dire à quoi correspondent ces registres aux noms encore plus étranges (de jambon) qu'à l'habitude. HX et LX sont au registre d'index IX ce que H et L sont au double registre HL. HX contient le poids fort de IX et LX en contient le poids faible. Il en va bien sûr de même pour HY et LY envers IY Tous ces codes machine étendent grandement le jeu d'instruction du mode 8 bits de notre bon vieux Z80. Toutes les opérations faites sur ces nouveaux registres ont strictement les mêmes incidences que si elles étaient utilisées avec les registres conventionnels. L'opérateur SLL reg est simplement une instruction de décalage supplémentaire ( Shift left logical ) ou encore décalage logique à gauche. Il compléments à ravir le SRL mais il agit dans l'autre sens. En d'autre termes, il multiplie l'opérande par deux et y ajoute 1. Soit encore un décalage à gauche avec positionnement du bit zéro à un. Pas mal ! Mais, me direz-vous, comment utiliser ces nouveaux codes si mon assembleur ne les comprend pas ?
C'est très simple : si nous vous avons fourni les codes, c'est pour que vous les introduisiez dans vos sources avec par exemple
…
LD A,(HL)
DEFB #CB,#37 ; SLL A
….
Vous n'y comprendrez rien, mais ce qui compte avant tout, c est que le microprocesseur comprenne, non ? Alors, allons-y gaiement et utilisons à fond ce que papy Zilog nous a laissé. Bon courage !
| DD67 LD HX,A DD68 LD HX,B DD61 LD HX,C DD62 LD HX,D DB63 LB HX,E DD6F LE LX,A FD67 LB HY,A FB6F LD LY,A FD7C LD A,HY FD5C LD E,HY DD7C LD A,HX DD7D LD A,LX DD2600 LD HX,0 FD24 INC HY | FD25 DEC HY FD2D DEC LY DD25 DEC HX DD2D DEC LX DD8C ABC A,HX DD9C SBC A,HX FD84 ADD A,HY FD94 SUB HY FDBC CP HY FDA4 AND HY FDB4 OR HY FDAC XOR HY CB37 SLL A |
A100% n°3 p38-39 - http://cpcrulez.fr
| A voir aussi sur CPCrulez , les sujets suivants peuvent vous intéresser... |
» Coding - Crossdev - CCZ80
» Coding - Crossdev - Mycpctoolkit
» Coding - Crossdev - PhrozenC
» Coding - Crossdev - Cpcrslib