35 ans en arrière j'aurais tout donné pour avoir ces tutoriaux ou ce professeur sur l'assembleur. Merci pour ces vidéos, même si elles arrivent avec quelques décennies de retard, ça reste instructif et divertissant.
Merci pour votre commentaire. Moi aussi, j'aurai donné cher pour avoir toutes ces connaissances à cette époque. Mais nous n'avions pas les mêmes ressources. Internet n'existait pas, les seules sources d'infos étaient les magazines comme Amstrad100%, Hebdogiciel... Les logiciels pour programmer en assembleur n'étaient pas légion, etc... Bref.
Bonjour ! ha ha ha, content de voir que mes vidéos te plaisent, ca me fait chaud au coeur cette remarque. Je tournerai l'épisode #3 la semaine prochaine, puis la posterai début de semaine d'après si tout va bien. Bonne continuation !
Bonjour, Vidéo intéressante toute fois celle ci s'adresse aux débutants. Il faut donc je pense leur donner de bonnes bases. On ne compare pas l'accumulateur avec cp 0 c'est très mauvais. Bonne continuation
Bonjour, Merci pour votre remarque. J'avais lu sur certains sites qu'effectivement, CP 0 hérissait le poil de certains codeurs. Néanmoins, je ne vois pas en quoi cela est gênant à partir du moment ou le code fonctionne malgré tout. Si vous avez l'explication du pourquoi il ne faut pas comparer l'accumulateur avec CP 0, je suis preneur. Je sais qu'il y a des optimisations possibles par le biais d'autres instructions ou bien j'aurai pu prendre un caractère différent, mais je pense que ca fera l'objet d'une vidéo spécifique avec les différentes astuces d'optimisation de code. J'en profiterai à ce moment là pour expliquer pourquoi il vaut mieux éviter de faire un CP 0 avec le registre A. Bonne continuation aussi 🙂 !
@@yreggor salut, bravo pour ton excellent 2éme épisode. c'est un peu la guerre entre codeurs, le CP et le OR , une histoire de timing, même si de mémoire les 2 instructions prennent 1 à 2 NOP le CP fait en interne un A-n , et n'affecte pas le registre A le OR quant à lui est une opération mathématique (booléenne) , il affecte le registre A si la condition de sortie est que A=0, les 2 se valent, par contre si par hasard tu voudrais que ta condition de sortie soit A=255, le OR ne fonctionne plus pire il modifierait la valeur de A, et afficherait n'importe quoi, donc l'utilisation du CP pour débuter est la meilleure des solutions, après ça reste de la prog avancée et de l'optimisation, ce qui dans le cas de l'apprentissage n'as pas lieu. étonnant qu'il ne t'ai pas engueulé parce-que tu utilises les vecteurs système ... et si jamais on te pose la question de pourquoi ta condition de sortie serait différent de A=0, dis-leur que tu veut utiliser les caractères de contrôle pour tes textes, ça devrait les calmer ;) sur ce, hâte de voir la suite, et MERCI !!!
@@cr5331 : merci beaucoup pour ce retour qui me fait très plaisir et ton explication. Je comprends son commentaire et je ne lui en veux pas. C'est d'ailleurs aussi le but, qu'on puisse échanger via les commentaires.
Effectivement ce n'est pas très optimisé CP 0 est un cas particulier que l'on préférera remplacer par un OR A afin de mettre à jour les flags (qui ne sont pas mis à jour avec LD A,(HL) ce qui serait bien pratique d'ailleurs)... L'avantage c'est que OR A ne prend qu'un seul octet et un seul NOP (contre 2 octets et 2 NOP pour CP 0). Par contre c'est pas grave pour débuter je pense. D'autre part sur CPC (à cause des cycles arrondis) JR et JP prennent 3 NOP mais JR ne prend que 2 octets donc c'est plus intéressant d'utiliser JR quand c'est possible...
Hello, Bravo pour cette vidéo ;-) Petite précision sur le coding... Dans ta boucle qui affiche le message, il a déjà un RET Z qui va retourner après le test a = 0... à ton call du basic par exemple... Donc dans ce cas là pas besoin de RET de ta fonction d'écriture de message... ;-) Bonne continuation
C'est top, vous allez à l'essentiel sans vous perdre dans les modes d'adressage. Ça c'était l'horreur dans les livres d'assembleur. Pour le CP il faut le voir comme une soustraction en mémoire, c'est plus facile à retenir pour les flags. Par exemple si A = 1, alors CP 1 = 1 - 1 = 0 donc Z = 1. Et si A = 0, alors CP 1 = 0 - 1 = -1, donc la retenue C = 1, le signe négatif N = 1,...
Merci pour votre commentaire. Oui, j'essaie d'aller à l'essentiel afin que ca reste accessible à tout le monde. Les explications sur le CP pourront être abordées dans une autre vidéo sur les optimisations de code par exemple. Mais oui, dans un premier temps, ca n'est pas essentiel.
Merci beaucoup je me régale. Peut-être une idée d'amélioration : j'ai un petit écran d'ordi portable et j'ai du mal à lire le code assembleur, surtout les adresses en hexa. Si c'est possible d'agrandir un peu la partie du code à droite, car la partie gauche affiche surtout du bleu et occupe beaucoup l'écran.
Vivement la suite, ces vidéos "pas à pas" sont parfaites pour ce mettre tranquillement à assembleur sur CPC
Merci beaucoup ! Ton commentaire me fait très plaisir ☺.
35 ans en arrière j'aurais tout donné pour avoir ces tutoriaux ou ce professeur sur l'assembleur. Merci pour ces vidéos, même si elles arrivent avec quelques décennies de retard, ça reste instructif et divertissant.
Merci pour votre commentaire. Moi aussi, j'aurai donné cher pour avoir toutes ces connaissances à cette époque. Mais nous n'avions pas les mêmes ressources. Internet n'existait pas, les seules sources d'infos étaient les magazines comme Amstrad100%, Hebdogiciel... Les logiciels pour programmer en assembleur n'étaient pas légion, etc... Bref.
Merci pour ce nouvel épisode !
Merci bien 🙂 !
hello
c est quand la partie #3 ? hahaha
Tu es le premier qui me donne envie de continuer assembleur, ca dit tout
Bonjour ! ha ha ha, content de voir que mes vidéos te plaisent, ca me fait chaud au coeur cette remarque. Je tournerai l'épisode #3 la semaine prochaine, puis la posterai début de semaine d'après si tout va bien. Bonne continuation !
bonsoir, excellent . J'aurai aimé ( à l 'époque ) savoir coder sur mon Amstrad en assembleur . 40 ans après , c'est le cas.
C'est exactement ce que je me suis dit il y a quelques mois. Et c'est ca qui m'a donné envie de faire ces vidéos. Merci pour votre commentaire 🙂 !
Bonjour,
Vidéo intéressante toute fois celle ci s'adresse aux débutants. Il faut donc je pense leur donner de bonnes bases. On ne compare pas l'accumulateur avec cp 0 c'est très mauvais.
Bonne continuation
Bonjour,
Merci pour votre remarque. J'avais lu sur certains sites qu'effectivement, CP 0 hérissait le poil de certains codeurs. Néanmoins, je ne vois pas en quoi cela est gênant à partir du moment ou le code fonctionne malgré tout. Si vous avez l'explication du pourquoi il ne faut pas comparer l'accumulateur avec CP 0, je suis preneur. Je sais qu'il y a des optimisations possibles par le biais d'autres instructions ou bien j'aurai pu prendre un caractère différent, mais je pense que ca fera l'objet d'une vidéo spécifique avec les différentes astuces d'optimisation de code. J'en profiterai à ce moment là pour expliquer pourquoi il vaut mieux éviter de faire un CP 0 avec le registre A.
Bonne continuation aussi 🙂 !
@@yreggor salut, bravo pour ton excellent 2éme épisode.
c'est un peu la guerre entre codeurs, le CP et le OR , une histoire de timing, même si de mémoire les 2 instructions prennent 1 à 2 NOP
le CP fait en interne un A-n , et n'affecte pas le registre A
le OR quant à lui est une opération mathématique (booléenne) , il affecte le registre A
si la condition de sortie est que A=0, les 2 se valent, par contre si par hasard tu voudrais que ta condition de sortie soit A=255, le OR ne fonctionne plus pire il modifierait la valeur de A, et afficherait n'importe quoi, donc l'utilisation du CP pour débuter est la meilleure des solutions, après ça reste de la prog avancée et de l'optimisation, ce qui dans le cas de l'apprentissage n'as pas lieu.
étonnant qu'il ne t'ai pas engueulé parce-que tu utilises les vecteurs système ...
et si jamais on te pose la question de pourquoi ta condition de sortie serait différent de A=0, dis-leur que tu veut utiliser les caractères de contrôle pour tes textes, ça devrait les calmer ;)
sur ce, hâte de voir la suite, et MERCI !!!
@@cr5331 : merci beaucoup pour ce retour qui me fait très plaisir et ton explication. Je comprends son commentaire et je ne lui en veux pas. C'est d'ailleurs aussi le but, qu'on puisse échanger via les commentaires.
Effectivement ce n'est pas très optimisé CP 0 est un cas particulier que l'on préférera remplacer par un OR A afin de mettre à jour les flags (qui ne sont pas mis à jour avec LD A,(HL) ce qui serait bien pratique d'ailleurs)... L'avantage c'est que OR A ne prend qu'un seul octet et un seul NOP (contre 2 octets et 2 NOP pour CP 0). Par contre c'est pas grave pour débuter je pense. D'autre part sur CPC (à cause des cycles arrondis) JR et JP prennent 3 NOP mais JR ne prend que 2 octets donc c'est plus intéressant d'utiliser JR quand c'est possible...
Hello,
Bravo pour cette vidéo ;-)
Petite précision sur le coding...
Dans ta boucle qui affiche le message, il a déjà un RET Z qui va retourner après le test a = 0... à ton call du basic par exemple...
Donc dans ce cas là pas besoin de RET de ta fonction d'écriture de message... ;-)
Bonne continuation
Bonjour ! Ah oui, effectivement. Merci pour cette remarque.
C'est top, vous allez à l'essentiel sans vous perdre dans les modes d'adressage. Ça c'était l'horreur dans les livres d'assembleur. Pour le CP il faut le voir comme une soustraction en mémoire, c'est plus facile à retenir pour les flags. Par exemple si A = 1, alors CP 1 = 1 - 1 = 0 donc Z = 1. Et si A = 0, alors CP 1 = 0 - 1 = -1, donc la retenue C = 1, le signe négatif N = 1,...
Merci pour votre commentaire. Oui, j'essaie d'aller à l'essentiel afin que ca reste accessible à tout le monde. Les explications sur le CP pourront être abordées dans une autre vidéo sur les optimisations de code par exemple. Mais oui, dans un premier temps, ca n'est pas essentiel.
Merci beaucoup je me régale. Peut-être une idée d'amélioration : j'ai un petit écran d'ordi portable et j'ai du mal à lire le code assembleur, surtout les adresses en hexa. Si c'est possible d'agrandir un peu la partie du code à droite, car la partie gauche affiche surtout du bleu et occupe beaucoup l'écran.
Merci beaucoup ! Ta remarque est pertinente. Je vais tacher d'améliorer cela dès la prochaine vidéo 🙂.