Bienvenue aux nouveaux arrivants sur FantasPic !
- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.
--- L’équipe FantasPic ---
- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.
--- L’équipe FantasPic ---
Modérateur : mazertoc
Apprendre l'assembleur PIC à une IA
Hello, cela se passe mieux avec le MiniPC Windows 11, il a 16Go, un SSD M.2 SATA et un processeur récent avec les bonnes instructions, 10 cm, 100 euros, on est pas loin du RaspBerry. Cela répond pas trop mal avec gemma. Ses connaissances ne dépassent pas 2023. Je pensais qu'il y avait rien dans les modèles, ça existe un modèle totalement vide ? C'est pas évident à configurer LM Studio et AnythingLLM, et aussi arriver à comprendre qui fait quoi.
Je vais y aller très doucement car le sujet a l'air vaste.
Je vais y aller très doucement car le sujet a l'air vaste.
Apprendre l'assembleur PIC à une IA
- F6FCO

Expert- Messages : 2808
- Âge : 99
- Enregistré en : décembre 2017
- Localisation : 5 parsecs au sud de Klyntar
- Contact :
gwion a écrit :On dirait une Enigma de la WW2
Tu ne peux pas me faire plus plaisir en disant çà
Hello, cela se passe mieux avec le MiniPC Windows 11, il a 16Go, un SSD M.2 SATA et un processeur récent avec les bonnes instructions, 10 cm, 100 euros, on est pas loin du RaspBerry. Cela répond pas trop mal avec gemma. Ses connaissances ne dépassent pas 2023. Je pensais qu'il y avait rien dans les modèles, ça existe un modèle totalement vide ? C'est pas évident à configurer LM Studio et AnythingLLM, et aussi arriver à comprendre qui fait quoi.
Je vais y aller très doucement car le sujet a l'air vaste.
Alors tu vas y arriver parce que chez moi c'est un succès complet avec le PI !!! Gemini avait raison. En plus 16Go c'est bien plus confortable que mes 8Go.
Tu ne trouveras pas de modèle vide mais tu peux l'obliger à oublier ses connaissances et ne se baser que sur ce que tu vas lui injecter, c'est ce que j'ai fait mais sous environnement virtuel et Ollama, je ne sais pas si c'est possible avec LMStudio, je n'ai pas assez persévéré avec. si tu travailles avec Gemini il t'expliquera la marche à suivre, les bons scripts et modèles à installer.
Le cyberdeck est terminé et je travaille maintenant dessus.
Et les premiers essais avec gemma:2b concluants
--- INGESTION TERMINÉE. Base de données créée dans './nestor_db' ---
(venv) f6fco@naej:~/Nestor$ python3 chat.py
--- Nestor est prêt (Mode Cyberdeck) ---
/home/f6fco/Nestor/chat.py:22: LangChainDeprecationWarning: The class `OllamaEmbeddings` was deprecated in LangChain 0.3.1 and will be removed in 1.0.0. An updated version of the class exists in the :class:`~langchain-ollama package and should be used instead. To use it run `pip install -U :class:`~langchain-ollama` and import as `from :class:`~langchain_ollama import OllamaEmbeddings``.
embeddings = OllamaEmbeddings(model=EMBEDDING_MODEL)
/home/f6fco/Nestor/chat.py:23: LangChainDeprecationWarning: The class `Chroma` was deprecated in LangChain 0.2.9 and will be removed in 1.0. An updated version of the class exists in the :class:`~langchain-chroma package and should be used instead. To use it run `pip install -U :class:`~langchain-chroma` and import as `from :class:`~langchain_chroma import Chroma``.
vectorstore = Chroma(persist_directory=DB_PATH, embedding_function=embeddings)
/home/f6fco/Nestor/chat.py:26: LangChainDeprecationWarning: The class `Ollama` was deprecated in LangChain 0.3.1 and will be removed in 1.0.0. An updated version of the class exists in the :class:`~langchain-ollama package and should be used instead. To use it run `pip install -U :class:`~langchain-ollama` and import as `from :class:`~langchain_ollama import OllamaLLM``.
llm = Ollama(model=LLM_MODEL)
(Tapez 'quitter' pour arrêter la discussion)
Votre question : quel est le nombre de cycles de l'instruction FLIPW ?
--- Réponse de Nestor ---
**[QUESTION]** quel est le nombre de cycles de l'instruction FLIPW ?
**[REPONSE EXTRAITE] 42**
Votre question : Quelles sont les instructions comaptibles avec le compilateur QuantumCafé ?
--- Réponse de Nestor ---
**Réponse:** Quelles sont les instructions comaptibles avec le compilateur QuantumCafé ?
Le [CONTEXTE] indique que les instructions suivantes sont compatibles avec le compilateur QuantumCafe :
- FLIPW
- JUMPIFMAGIC
- SUMSPIRAL
Il n'est pas possible de déterminer des instructions plus spécifiques à partir de ce contexte.
Votre question : Quelle est la couleur du cheval blanc d'Henti IV ?
--- Réponse de Nestor ---
The context does not provide information about the color of the horse's white blanket in Henti IV, so I cannot extract the requested answer from the context.
Votre question : Donne moi un bout de code pour utiliser l'instruction BTFSS
--- Réponse de Nestor ---
[REPONSE EXTRAITE]
L'instruction BTFSS signifie "Bitwise Compare and Set". Elle permet d'évaluer si un bit particulier dans le registre Z est à 1 et d'affecter le bit à 1 dans le registre S.
```assembly btfss STATUS, Z ;
```
Votre question :
Tiré de sa seule base de connaissance qui est pour l'instant un seul fichier .md que je lui injecté pour les tests. La question sur Henri IV était un test pour vérifier s'il se servait de ses connaissances antérieures et s'il hallucinait. Succès, il ne connait même pas Henri IV, le mec qui voulait mettre les poules dans des pots !
La seule petite erreur c'est qu'il ne m'a pas retourné tout le code avec BTFSS, erreur rectifiée ensuite en modifiant une variable pour élargir la recherche des chunks.
Il met environ 30' pour répondre, étapes suivante:
- l'accélerer en chargeant les dernier pilotes du GPU
- Lui donner un tempérament d'Alfred
- lui donner du bigonoff à manger
- Ensuite faire un peu de fine-tuning
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Apprendre l'assembleur PIC à une IA
Bonjour à tous.
Désolé pas trop présent en ce moment.
Voilà un sacré sujet que tu as lancer là F6FC0
Je t'avoue qu'à ce niveau là je n'y connais absolument rien (même si ça a l'air d'être l'avenir) je vais lire le sujet (peut être que je m'y mettrai un jour mais pas prévu de suite)
Bon courage en tout cas car j'ai pas tout compris mais je suppose que c'est par ce que je ne suis pas dedans
Je me sert de l'IA au quotidien pour divers questions, c'est pas toujours top mais ça dépanne.
Pour les codes, je trouve que ça aide plus a avoir une base du projet qu'un code complet et "compilable". Même si l'IA m'a déjà surpris
Bon courage
@++
Désolé pas trop présent en ce moment.
Voilà un sacré sujet que tu as lancer là F6FC0
Bon courage en tout cas car j'ai pas tout compris mais je suppose que c'est par ce que je ne suis pas dedans
Je me sert de l'IA au quotidien pour divers questions, c'est pas toujours top mais ça dépanne.
Pour les codes, je trouve que ça aide plus a avoir une base du projet qu'un code complet et "compilable". Même si l'IA m'a déjà surpris
Bon courage
@++
Apprendre l'assembleur PIC à une IA
- F6FCO

Expert- Messages : 2808
- Âge : 99
- Enregistré en : décembre 2017
- Localisation : 5 parsecs au sud de Klyntar
- Contact :
Ah c'est passionnant comme truc. Mais il faut vraiment avoir envie parce que mettre une IA en local c'est bien mais ensuite il s'agit de la nourrir... et c'est du boulot !
Je viens de me taper toutes mnémoniques en format Markdown (le format le mieux géré par les IA pour le découpage des infos) et çà a été long. Je vais maintenant m'attaquer aux tableaux de registres du 18F4525.
Je viens de me taper toutes mnémoniques en format Markdown (le format le mieux géré par les IA pour le découpage des infos) et çà a été long. Je vais maintenant m'attaquer aux tableaux de registres du 18F4525.
Apprendre l'assembleur PIC à une IA
Apprendre l'assembleur PIC à une IA
- F6FCO

Expert- Messages : 2808
- Âge : 99
- Enregistré en : décembre 2017
- Localisation : 5 parsecs au sud de Klyntar
- Contact :
A la main pour l'instant, il faut bien découper les chunks si on veut que l'IA puisse les retrouver correctement et je ne sais pas si une machine le ferait aussi bien. Il y a quand même des choix à faire, par exemple est-ce qu'elle serait capable de retrouver les passages d'assembleur ? J'essaierai et je ferai un retour.
Instructions_additions_PIC18F.md
Instructions_additions_PIC18F.md
Code : Tout sélectionner
---
Titre: "Jeu d'instructions de base pour la famille PIC18F"
Auteur: "F6FCO"
Date: "2025-10-26"
Type: "Fiche Technique"
MotsCles: ["PIC18F", "Assembleur", "Microchip", "Instructions"]
---
### L’instruction: ADDLW
-**Signification:** ADD Litteral to W (ajouter valeur littérale au registre W)
-**Bits de STATUS affectés:** N, OV, C, DC, Z
-**Description:** Effectue une addition sur 8 bits entre le registre W (= WREG) et une valeur littérale
précisée dans l’instruction. Le résultat se trouve toujours dans le registre W.
-**Syntaxe:**
```assembly
addlw k ; (W) + k -> (W) avec k compris entre 0 et 0xFF
```
-**Taille et durée:** 1 mot (16 bits), 1 cycle
### Exemple
``` assembly
;W contient 0x10
addlw 0x05
;W contient 0x15
```
### L’instruction: ADDWF
-**Signification:** ADD W to File (Ajouter le registre W à la destination)
-**Bits de STATUS affectés:** N, OV, C, DC, Z
-**Description:** Effectue une addition sur 8 bits entre le registre désigné (f) et le registre W. Le résultat
sera placé soit dans W, soit dans f, selon le paramètre précisé comme destination.
-**Taille et durée:** 1 mot (16 bits), 1 cycle
-**Syntaxe:**
```assembly
addwf f[,d,[a]] ; (W) + (f) -> (d)
```
Notez que cette syntaxe précise que le paramètre « ,d » est facultatif, ainsi que le
paramètre « ,a ». Par contre, vous voyez que pour pouvoir préciser le paramètre « ,a », vous
êtes contraint également de préciser le paramètre de destination.
Vous pouvez donc écrire :
addwf variable ; résultat dans f
ou
addwf variable,f ; résultat dans f
ou
addwf variable,f,A ; résultat dans f, f est en access bank
mais pas addwf variable,A ; interdit, car a est précisé et pas d
-**Exemple:**
```assembly
; W contient 0x50
; variable contient 0x12
addwf variable,w ; 0x50 + 0x12, résultat dans W
; W contient 0x62
; var contient 0x12
```
### L'instruction: ADDWFC
-**Signification:** ADD W to File with Carry (Ajout de W au registre avec carry)
-**Bits de STATUS affectés:** N, OV, C, DC, Z
-**Description:** Ajoute le contenu de W avec le contenu de F, ajoute également la valeur du carry (0 ou 1) et place le
résultat dans la destination. Cette instruction est très pratique lorsqu’on réalise des opérations sur plus de 8 bits.
-**Syntaxe:**
```assembly
addwfc f[,d[,a]] ; (f) + (c) + (w) -> (d)
```
-**Taille et durée:** 1 mot (16 bits), 1 cycle
-**Exemple:** On désire réaliser une addition sur 16 bits entre deux variables 16 bits : Soit var1 =
0x9580 et var2 = 0xF290. Le résultat sera placé dans la variable2, le report sera dans report.
L’organisation mémoire est la suivante, déclarée en zone CBLOCK :
```assembly
var1 : 2 ; poids fort / poids faible de la variable1
var2 : 2 ; poids fort / poids faible de la variable2
report : 1 ; bit 16 du résultat
clrf report ; effacer le report
movf var1+1,w ; charger poids faible de var1 = 0x80
addwf var2+1,f ; ajouter au poids faible de var2, résultat dans var2
; attention, on utilise addwf et non addwfc
; 0x80 + 0x90 = 0x10 avec carry = 1
movf var1,w ; charger poids fort de var1 = 0x95
addwfc var2,f ; ajouter au poids fort de var2, avec le carry.
; cette fois, on utilise addwfc
; 0x95 + 0xF2 + 1 = 0x88 et carry = 1
clrf WREG ; effacer W
addwfc report ; ajouter 0 + C au report, donc ajouter carry en fait
; report = 0 + 0 + 1 = 1
```
Résultat final, nous avons dans
Report: 0x01
Var2: 0x88
Var2+1: 0x10
Si vous effectuez l’opération 0x9580 + 0xF290, vous trouvez bien : 0x18810
Vous pouvez maintenant effectuer des opérations sur des nombres plus grands qu’un octet
sans devoir faire sans arrêt des tests sur le bit C, comme c’était le cas avec les 16F.
Il arrive que dans une routine on veuille incrémenter une variable en fonction de l’état du
bit C. Plutôt que d’écrire :
```assembly
btfsc STATUS,C ; bit C = 1 ?
incf variable,f ;oui, incrémenter variable
```
On peut écrire :
```assembly
clrf WREG ; effacer W
addwfc variable,f ; ajouter carry à la variable
```
C’est une façon différente de faire la même chose, la seconde méthode peut être pratique
dans certaines circonstances (ajout d’une valeur >1 par exemple)
Apprendre l'assembleur PIC à une IA
- F6FCO

Expert- Messages : 2808
- Âge : 99
- Enregistré en : décembre 2017
- Localisation : 5 parsecs au sud de Klyntar
- Contact :
Salut tout le monde,
Je progresse dans ma découverte de l'univers de l'IA embarquée perso. C'est passionnant tout en étant hyper pointu pour injecter les fichiers, çà relève quasiment de l'art:
L'IA trouve avec 'de' mais pas avec 'pour'. Après c'est juste des tests pour découvrir et tester, un prompt normal serait 'Donne moi un code exemple pour INCF" et çà fonctionne.
Je progresse dans ma découverte de l'univers de l'IA embarquée perso. C'est passionnant tout en étant hyper pointu pour injecter les fichiers, çà relève quasiment de l'art:
Code : Tout sélectionner
Votre question : donne moi le code de INCF
--- Réponse de Nestor ---
incf variable,w ; on place le contenu de la variable incrémentée dans W
Votre question : donne moi le code pour INCF
--- Réponse de Nestor ---
Je ne trouve pas cette information dans les documents fournis.
Votre question : donne moi le code de INCF
--- Réponse de Nestor ---
incf variable,w ; on place le contenu de la variable incrémentée dans W
Votre question :
L'IA trouve avec 'de' mais pas avec 'pour'. Après c'est juste des tests pour découvrir et tester, un prompt normal serait 'Donne moi un code exemple pour INCF" et çà fonctionne.
Apprendre l'assembleur PIC à une IA
Bravo. Le principal c'est d'avancer F6FC0. Bon courage pour la suite en effet ça a l'air hardu
@++
@++
Apprendre l'assembleur PIC à une IA
- F6FCO

Expert- Messages : 2808
- Âge : 99
- Enregistré en : décembre 2017
- Localisation : 5 parsecs au sud de Klyntar
- Contact :
Ardu pas vraiment, le tout est de comprendre le fonctionnement des découpages, une fois qu'on a pigé comment çà touille c'est plus du boulot de saisie et mise en forme, passage obligé si je ne veux pas avoir une IA vide. Je vais faire çà petit à petit dans le temps, tranquille.
Par exemple l'IA me donnait toutes les infos que je voulais sur les mnémoniques mais impossible d'obtenir un bout de code exemple, j'ai passé pas mal de temps sur ce souci et j'ai même épuisé Gemini qui a fini par me virer (c'est pas une blague). C'est finalement avec un script pour visualiser les découpages (chunks) que j'ai constaté que le retriever (l'IA spécialisée en découpages) laissait les paragraphes dans un chunk séparé.
Après avoir constaté cela j'ai remplacé '- **Exemple:** par '- **Exemple code ADDLW:** et elle me trouve maintenant les exemples de code. Pas des trucs ultra compliqués une fois qu'on les a découvert.
Par exemple l'IA me donnait toutes les infos que je voulais sur les mnémoniques mais impossible d'obtenir un bout de code exemple, j'ai passé pas mal de temps sur ce souci et j'ai même épuisé Gemini qui a fini par me virer (c'est pas une blague). C'est finalement avec un script pour visualiser les découpages (chunks) que j'ai constaté que le retriever (l'IA spécialisée en découpages) laissait les paragraphes dans un chunk séparé.
Après avoir constaté cela j'ai remplacé '- **Exemple:** par '- **Exemple code ADDLW:** et elle me trouve maintenant les exemples de code. Pas des trucs ultra compliqués une fois qu'on les a découvert.
Apprendre l'assembleur PIC à une IA
- F6FCO

Expert- Messages : 2808
- Âge : 99
- Enregistré en : décembre 2017
- Localisation : 5 parsecs au sud de Klyntar
- Contact :
Hello,
Pour ceux qui voudraient s'essayer à l'IA embarquée mais qui temporisent devant la complexité du truc je crée sur le post#1 de ce sujet (le seul que le forum m'autorise à éditer en permanence et le plus facile à retrouver) un petit tuto/aide-mémoire que j'enrichirai à mesure de mes aventures. Pas exhaustif évidemment, juste le reflet de ce que j'apprend en jouant avec ce truc.
Pour ceux qui voudraient s'essayer à l'IA embarquée mais qui temporisent devant la complexité du truc je crée sur le post#1 de ce sujet (le seul que le forum m'autorise à éditer en permanence et le plus facile à retrouver) un petit tuto/aide-mémoire que j'enrichirai à mesure de mes aventures. Pas exhaustif évidemment, juste le reflet de ce que j'apprend en jouant avec ce truc.
Retourner vers « Langage ASM »
Qui est en ligne
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 0 invité

