Amstrad Plus Index du Forum

Amstrad Plus
Découverte de la gamme Old et Plus des Cpc d'Amstrad.

 FAQFAQ   RechercherRechercher   MembresMembres   GroupesGroupes   S’enregistrerS’enregistrer 
 ProfilProfil   Se connecter pour vérifier ses messages privésSe connecter pour vérifier ses messages privés   ConnexionConnexion 

Instructions du Z80

 
Poster un nouveau sujet   Répondre au sujet    Amstrad Plus Index du Forum -> Bienvenue sur ce forum -> Programmation
Sujet précédent :: Sujet suivant  
Auteur Message
Ast
Administrateur

Hors ligne

Inscrit le: 05 Sep 2014
Messages: 1 917

MessagePosté le: Mar 15 Sep - 17:50 (2015)    Sujet du message: Instructions du Z80 Répondre en citant

Bonjour,

J'aimerai bien comprendre l'intérêt des instructions suivantes :
Code:

Ld a,a
Ld b,b
Ld c,c
Ld d,d
Ld e,e
Ld h,h
Ld l,l
Ld ix,ix
Ld hl,hl
Ld iy,iy
...
Etc...
...

------------------
Hi,

Just wanted to understand what is the purpose of these z80 instructions?
_________________
Ast/iMP4CT

"Par le pouvoir du crâne ancestral...."


Revenir en haut
Publicité






MessagePosté le: Mar 15 Sep - 17:50 (2015)    Sujet du message: Publicité

PublicitéSupprimer les publicités ?
Revenir en haut
Ast
Administrateur

Hors ligne

Inscrit le: 05 Sep 2014
Messages: 1 917

MessagePosté le: Jeu 17 Sep - 17:53 (2015)    Sujet du message: Instructions du Z80 Répondre en citant

Alors ? Personne pour me répondre ?
-----------
So nobody can answer me ?
_________________
Ast/iMP4CT

"Par le pouvoir du crâne ancestral...."


Revenir en haut
Demoniak


En ligne

Inscrit le: 10 Sep 2015
Messages: 24
Localisation: Dunkerque

MessagePosté le: Jeu 17 Sep - 21:20 (2015)    Sujet du message: Instructions du Z80 Répondre en citant

Je pense qu'il s'agit simplement d'une organisation des opcodes, mais qu'il n'y a pas d’intérêt particulier.

par exemple: LD B,B est codé #40, LD B,C #41, LD B,D #42... et ainsi de suite, c'est une continuité

Je sais pas si je me suis bien exprimé...


Revenir en haut
Ast
Administrateur

Hors ligne

Inscrit le: 05 Sep 2014
Messages: 1 917

MessagePosté le: Jeu 17 Sep - 22:33 (2015)    Sujet du message: Instructions du Z80 Répondre en citant

Si, c'est bien ce que je disais, ça ne sert à rien. Pourquoi ne pas avoir exploité cette place pour y mettre d'autres instructions ?
Je pense que tout est question de logique comme toi, les opcodes se suivant...
Je voulais juste soulever l'inutilité de telles instructions. Voilà tout.
_________________
Ast/iMP4CT

"Par le pouvoir du crâne ancestral...."


Revenir en haut
Ast
Administrateur

Hors ligne

Inscrit le: 05 Sep 2014
Messages: 1 917

MessagePosté le: Ven 18 Sep - 14:48 (2015)    Sujet du message: Instructions du Z80 Répondre en citant

Otir et Otdr, deux instructions bugguées sur notre bon vieil Amstrad Cpc. Pourquoi ?
Le cablage du cpc faisant, le out se fait sur le port b, plutôt que sur le c comme il devrait le faire.
Une fois le out fait, le registre b est décrémenté. Donc, facile à rectifier me direz-vous ?
Il suffit juste de rectifier le registre b, en l'incrémentant (instruction Otir) ou en le décrémentant (instruction Otdr).
Et alors, ça marche ? A votre avis ? Dites moi ce que vous en pensez.
_________________
Ast/iMP4CT

"Par le pouvoir du crâne ancestral...."


Revenir en haut
Demoniak


En ligne

Inscrit le: 10 Sep 2015
Messages: 24
Localisation: Dunkerque

MessagePosté le: Ven 18 Sep - 17:10 (2015)    Sujet du message: Instructions du Z80 Répondre en citant

Je pense que les concepteurs du Z80 ont écrites les instructions OTIR et OTDR en se basant sur le fait que l'on utiliserai que les 8 bits de poids faibles de l'adresse (donc seulement le registre C) pour décoder le périphérique à utiliser.
Le registre B dans ce cas ne sert que de compteur.
Autre petite chose: le registre B est D'ABORD décrémenté avant d'être positionné sur le bus avec le registre C pour former l'adresse de décodage. Ceci est valable pour les instruction OUTI, OUTD, OTIR et OTDR


Revenir en haut
Ast
Administrateur

Hors ligne

Inscrit le: 05 Sep 2014
Messages: 1 917

MessagePosté le: Ven 18 Sep - 17:35 (2015)    Sujet du message: Instructions du Z80 Répondre en citant

C'est pas faux... La question reste cependant, est-ce que ces 2 instructions sont utilisables sur cpc ?
_________________
Ast/iMP4CT

"Par le pouvoir du crâne ancestral...."


Revenir en haut
Ast
Administrateur

Hors ligne

Inscrit le: 05 Sep 2014
Messages: 1 917

MessagePosté le: Ven 18 Sep - 17:43 (2015)    Sujet du message: Instructions du Z80 Répondre en citant

Remarque, j'aurai pu vous parler également des instructions Inir et Indr qui sont elles aussi buguées. Ce que tu as en out, tu l'as aussi en in.
_________________
Ast/iMP4CT

"Par le pouvoir du crâne ancestral...."


Revenir en haut
Demoniak


En ligne

Inscrit le: 10 Sep 2015
Messages: 24
Localisation: Dunkerque

MessagePosté le: Ven 18 Sep - 17:48 (2015)    Sujet du message: Instructions du Z80 Répondre en citant

Je pense que c'est utilisable sur le cpc avec le Gate Array, qui peut être décodé de #7F00 à #4000

Revenir en haut
Ast
Administrateur

Hors ligne

Inscrit le: 05 Sep 2014
Messages: 1 917

MessagePosté le: Ven 18 Sep - 17:50 (2015)    Sujet du message: Instructions du Z80 Répondre en citant

A voir... (Attention tout de même avec les nouvelles extensions de ne pas adresser un bus qui ne devrait pas l'être avec ce genre de méthode) T'as fait quelques essais avec ce genre d'instructions ?
_________________
Ast/iMP4CT

"Par le pouvoir du crâne ancestral...."


Revenir en haut
Demoniak


En ligne

Inscrit le: 10 Sep 2015
Messages: 24
Localisation: Dunkerque

MessagePosté le: Sam 19 Sep - 19:42 (2015)    Sujet du message: Instructions du Z80 Répondre en citant

Pas encore essayé, mais je vais le faire prochainement
Notamment pour tester un nouveau mode 'X' de ConvImgCpc V2.0 Smile


Revenir en haut
Ast
Administrateur

Hors ligne

Inscrit le: 05 Sep 2014
Messages: 1 917

MessagePosté le: Sam 19 Sep - 19:52 (2015)    Sujet du message: Instructions du Z80 Répondre en citant

Prévois un enregistrement au format go1 pour le mode Cpc plus et Cpc old stp. C'est celui utilisé par iMPdraw lite.
_________________
Ast/iMP4CT

"Par le pouvoir du crâne ancestral...."


Revenir en haut
Longshot


Hors ligne

Inscrit le: 21 Nov 2015
Messages: 15

MessagePosté le: Sam 21 Nov - 19:52 (2015)    Sujet du message: Instructions du Z80 Répondre en citant

 
Citation:

Pourquoi ne pas avoir exploité cette place pour y mettre d'autres instructions ?

Simplement car il n'y a pas de place perdue.
La fonction LD oper1,oper2 est représentée par les bits 6.7=0.1
oper1=bits 3.4.5 / oper2=bits 0.1.2
000 : B
001 : C
010 : D
011 : E
100 : H
101 : L
110 : (HL)
111 : A
La seule exception pour cette instruction, c'est le LD (HL),(HL) qui n'existe pas. L'opcode 76h est HALT.
Il n'y a pas de "place" perdue.
La fonction ou oper1=oper2 représente un nop et peut-être qq a t il une utilité à perdre du temps autrement qu'avec des 0 en mémoire Razz


Revenir en haut
Ast
Administrateur

Hors ligne

Inscrit le: 05 Sep 2014
Messages: 1 917

MessagePosté le: Sam 21 Nov - 20:13 (2015)    Sujet du message: Instructions du Z80 Répondre en citant

Longshot a écrit:

Il n'y a pas de "place" perdue.
La fonction ou oper1=oper2 représente un nop et peut-être qq a t il une utilité à perdre du temps autrement qu'avec des 0 en mémoire Razz





Pourquoi pas, c'est une idée comme une autre à laquelle je n'avais jamais pensé...
Par contre, quand je parle de 'place perdue' c'est surtout pour souligner que comme pour l'instruction halt, zilog aurait pu penser à ajouter des instructions de division et de multiplication (par exemple).
_________________
Ast/iMP4CT

"Par le pouvoir du crâne ancestral...."


Revenir en haut
Longshot


Hors ligne

Inscrit le: 21 Nov 2015
Messages: 15

MessagePosté le: Sam 21 Nov - 20:22 (2015)    Sujet du message: Instructions du Z80 Répondre en citant

 
Citation:

Je pense que c'est utilisable sur le cpc avec le Gate Array, qui peut être décodé de #7F00 à #4000


Tu oublies au passage que l'instruction s'arrête lorsque B atteint 0, donc dès que le bit 6 passe à 0, c'est la valse des circuits...
La seule possibilité c'est de lancer un OTIR ou OTDR en calculant ton coup pour qu'une interruption survienne avant que B passe sous la valeur fatidique, et que l'interruption modifie le code objet afin qu'au retour, il ne puisse pas la poursuivre (je crois que ça marche si je me souviens bien)


Revenir en haut
Contenu Sponsorisé






MessagePosté le: Aujourd’hui à 20:59 (2017)    Sujet du message: Instructions du Z80

Revenir en haut
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    Amstrad Plus Index du Forum -> Bienvenue sur ce forum -> Programmation Toutes les heures sont au format GMT + 2 Heures
Page 1 sur 1

 
Sauter vers:  

Index | Panneau d’administration | Creer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Powered by phpBB © 2001, 2005 phpBB Group
Traduction par : phpBB-fr.com