Super instructionsLe Z80 est un processeur 8 bits, il n'est par exemple pas capable de faire des affectations 16 bits ou des décalages 16 bits (hors ADD HL,HL). Les instructions de rotations ne font pas exception. Voici donc une liste de tous les décalages possibles, appliqués à chacun des registres généraux 16 bits. Instructions fictives RST Z,#38 ; un RST conditionnel! RST NZ,#38 RST C,#38 RST NC,#38correspondant en réalité àJR Z,$+1 ; l'encodage de $-1 correspond à #FF, qui JR NZ,$+1 ; est l'opcode du RST #38. Ainsi un saut JR C,$+1 ; conditionnel réussi va sauter JR NC,$+1 ; sur l'adresse relative et faire un RST #38 Instructions fictivesLD BC,BC ; personne ne fait ça on est d'accord? LD BC,DE LD BC,HL LD DE,BC LD DE,DE LD DE,HL LD HL,BC LD HL,DE LD HL,HL correspondant en réalité àLD B,B : LD C,C ; oui, ça ne sert à RIEN, on est d'accord ^_^ LD B,D : LD C,E ; BC = DE LD B,H : LD C,L ; BC = HL LD D,B : LD E,C ; DE = BC LD D,D : LD E,E ; DE = DE LD D,H : LD E,L ; DE = HL LD H,B : LD L,C ; HL = BC LD H,D : LD L,E ; HL = DE LD H,H : LD L,L ; HL = HL Instructions fictivesLD BC,(IX+n) ; lecture 16 bits d'un registre à l'adresse indirecte LD DE,(IX+n) LD HL,(IX+n) LD (IX+n),BC LD (IX+n),DE LD (IX+n),HL LD BC,(IY+n) ; version avec IY LD DE,(IY+n) LD HL,(IY+n) LD (IY+n),BC LD (IY+n),DE LD (IY+n),HL correspondant en réalité àLD B,(IX+n+1) : LD C,(IX+n) LD D,(IX+n+1) : LD E,(IX+n) LD H,(IX+n+1) : LD L,(IX+n) LD (IX+n+1),B : LD (IX+n),C LD (IX+n+1),D : LD (IX+n),E LD (IX+n+1),H : LD (IX+n),L LD B,(IY+n+1) : LD C,(IY+n) ; version avec IY LD D,(IY+n+1) : LD E,(IY+n) LD H,(IY+n+1) : LD L,(IY+n) LD (IY+n+1),B : LD (IY+n),C LD (IY+n+1),D : LD (IY+n),E LD (IY+n+1),H : LD (IY+n),L Instruction fictiveLD HL,SP correspondant en réalité àLD HL,0 : ADD HL,SP ; Attention, les flags sont modifiés! Instructions fictivesSRL BC SRL DE SRL HL ;------------------------------------------ SRA BC SRA DE SRA HL ;------------------------------------------ SLL BC SLL DE SLL HL ;------------------------------------------ SLA BC SLA DE SLA HL ;------------------------------------------ RR BC RR DE RR HL ;------------------------------------------ RL BC RL DE RL HL ;------------------------------------------ RRC BC RRC DE RRC HL ;------------------------------------------ RLC BC RLC DE RLC HL ;------------------------------------------ SRL8 BC SRL8 DE SRL8 HL SRL8 IX SRL8 IY correspondant en réalité àSRL B : RR C SRL D : RR E SRL H : RR L ;------------------------------------------ SRA B : RR C SRA D : RR E SRA H : RR L ;------------------------------------------ SLL B : RL C SLL D : RL E SLL H : RL L ;------------------------------------------ SLA B : RL C SLA D : RL E SLA H : RL L ;------------------------------------------ RR B RR D RR H ;------------------------------------------ RL B : RL C RL D : RL E RL H : RL L ;------------------------------------------ SRL B : RR C : RL B : RRC B SRL D : RR E : RL D : RRC D SRL H : RR L : RL H : RRC H ;------------------------------------------ SLA B : RL C : RR B : RLC B SLA D : RL E : RR D : RLC D SLA H : RL L : RR H : RLC H ;------------------------------------------ LD C,B : LD B,0 LD E,D : LD D,0 LD L,H : LD H,0 LD XL,XH : LD XH,0 LD YL,YH : LD YH,0
Roudoudou CPCrulez[Content Management System] v8.732-desktop/c Page créée en 378 millisecondes et consultée 44 foisL'Amstrad CPC est une machine 8 bits à base d'un Z80 à 4MHz. Le premier de la gamme fut le CPC 464 en 1984, équipé d'un lecteur de cassettes intégré il se plaçait en concurrent du Commodore C64 beaucoup plus compliqué à utiliser et plus cher. Ce fut un réel succès et sorti cette même années le CPC 664 équipé d'un lecteur de disquettes trois pouces intégré. Sa vie fut de courte durée puisqu'en 1985 il fut remplacé par le CPC 6128 qui était plus compact, plus soigné et surtout qui avait 128Ko de RAM au lieu de 64Ko. |
|