IPB

Bienvenue invité ( Connexion | Inscription )

 
Reply to this topicStart new topic
> Langage assembleur, cheat code pour Chess
Options
TrouthyMcBidouil...
posté 8 Jan 2019, 21:08
Message #1


Adepte de Macbidouille
*

Groupe : Membres
Messages : 66
Inscrit : 26 Oct 2017
Membre no 203 568



Bonjour ,
Ce mac book que j'attendais est enfin arrivé aussi Chess me plait bien mais un générateur de cheat code en assembleur serait top. Avec quel assembleur est-il possible de programmer sur Mac Os? Trouthie
Go to the top of the page
 
+Quote Post
yponomeute
posté 8 Jan 2019, 22:31
Message #2


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 4 969
Inscrit : 26 Jan 2011
Lieu : Pollachius virens
Membre no 164 083



nasm s'installe avec homebrew par exemple https://formulae.brew.sh/formula/nasm


--------------------
MBP 2017 15" avec clavier pourri et touchbar inutile
Go to the top of the page
 
+Quote Post
Jaypee
posté 9 Jan 2019, 10:54
Message #3


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 2 486
Inscrit : 29 Aug 2002
Membre no 3 340



Bienvenue Trouthie,

Pour éviter de "polluer" la machine de tous les jours avec des bibliothèques utilisées une fois puis oubliées, il peut parfois être bon de considérer Docker. (une possibilité, pas une obligation).

Dans mes investigations récentes, j'ai eu besoin d'utiliser un script Python dont les prérequis étaient très différents de la version macOS installée. A partir d'une image Docker encapsulant la version qui allait bien, j'ai pu utiliser le script sans difficulté et sans déstabiliser mon macOS.

@+JP
Go to the top of the page
 
+Quote Post
TrouthyMcBidouil...
posté 9 Jan 2019, 13:21
Message #4


Adepte de Macbidouille
*

Groupe : Membres
Messages : 66
Inscrit : 26 Oct 2017
Membre no 203 568



Citation (yponomeute @ 8 Jan 2019, 22:31) *
nasm s'installe avec homebrew par exemple https://formulae.brew.sh/formula/nasm


Ok! C'est sympa, merci! Je vais voir, les similitudes sont énormes je pense car Intel oblige, plus rien à voir avec l'époque des Apples équipés de Motorola...
Développez-vous avec l'assembleur?
A plus. Trouthie
Go to the top of the page
 
+Quote Post
audionuma
posté 9 Jan 2019, 14:07
Message #5


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 2 031
Inscrit : 27 Apr 2004
Membre no 18 176



Juste par curiosité :
Qu'est-ce qu'un générateur de cheat code pour un jeu d'échec ?
Pourquoi de l'assembleur pour une application dont le code source est public et sous licence libre ? (https://opensource.apple.com/source/Chess/Chess-318/Sources/)


--------------------
Membre du club des AIPBP (Anciens Inscrits Pas Beaucoup de Posts) Voir la liste
Futur ex-macbidouilleur, sous Dell / Ubuntu depuis 2021 !
Go to the top of the page
 
+Quote Post
baron
posté 9 Jan 2019, 14:56
Message #6


Macbidouilleur d'Or !
*****

Groupe : Modérateurs
Messages : 19 302
Inscrit : 22 Jul 2004
Lieu : Louvain-la-Neuve (Gaule Gelbique)
Membre no 21 291



Citation (audionuma @ 9 Jan 2019, 14:07) *
Juste par curiosité :
Qu'est-ce qu'un générateur de cheat code pour un jeu d'échec ?

Je suppose que c'est pour gagner des pièces supplémentaires…  biggrin.gif


--------------------
MacBook Pro 14’’ 2021, M1 Pro, 16 Go/1 To – macOS  12.6 “Monterey”  MacBook Pro 15’’ mi-2010 Core i5 2,53 GHz, 8 Go/SSD Samsung 860EVO 1 To – Mac OSX 10.6.8  Power Macintosh G3 beige de bureau, rev.1 @ 233MHz, 288 Mo/4Go – MacOS 9.1 — + carte PCI IDE/ATA Tempo 66 Acard 6260 avec HD interne Maxtor 80 Go + graveur interne CDRW/DVD LG GCC-4520B + tablette A4 Wacom UD-0608-A + LaCie ElectronBlueIV 19" + HP ScanJet 6100C   B-Box 3 + HP LaserJet 4000 N  
La recherche dans MacBidouille vous paraît obscure ? J'ai rédigé une proposition de FAQ. Le moteur logiciel a un peu changé depuis mais ça peut aider quand même.
Les corsaires mettent en berne…
Go to the top of the page
 
+Quote Post
TrouthyMcBidouil...
posté 9 Jan 2019, 16:04
Message #7


Adepte de Macbidouille
*

Groupe : Membres
Messages : 66
Inscrit : 26 Oct 2017
Membre no 203 568



Le C H E A T C O D E, il a deux fonctions principales, la première d'introduire un sujet de conversation dans le forum et ainsi d'échanger des informations avec des développeurs le cas échéants de prendre des contacts pour bosser en groupe sur un ou plusieurs projets, la deuxième fonction lorsqu'il est correctement programmé est de vous afficher un message codé sur votre écran qui n'a rien de dévastateur rassurez-vous, une fois lu il provoquera chez le joueur des effets semblables aux ptits éléphants roses qui se promènent dans la tête de celui-ci et de la sorte lui fera oublier la branlée qu'il se prend à Chess! Fonction cachée voir le Dark net peut-être...
Je n'ai plus de chocolats ici!
Trouthie

Citation (baron @ 9 Jan 2019, 14:56) *
Citation (audionuma @ 9 Jan 2019, 14:07) *
Juste par curiosité :
Qu'est-ce qu'un générateur de cheat code pour un jeu d'échec ?

Je suppose que c'est pour gagner des pièces supplémentaires…  biggrin.gif


Pour les pièces supplémentaires c'est bien vu mais je crois qu'elles se négocient en AppleCoin, non?
Go to the top of the page
 
+Quote Post
TrouthyMcBidouil...
posté 9 Jan 2019, 20:29
Message #8


Adepte de Macbidouille
*

Groupe : Membres
Messages : 66
Inscrit : 26 Oct 2017
Membre no 203 568



Citation (Jaypee @ 9 Jan 2019, 10:54) *
Bienvenue Trouthie,

Pour éviter de "polluer" la machine de tous les jours avec des bibliothèques utilisées une fois puis oubliées, il peut parfois être bon de considérer Docker. (une possibilité, pas une obligation).

Dans mes investigations récentes, j'ai eu besoin d'utiliser un script Python dont les prérequis étaient très différents de la version macOS installée. A partir d'une image Docker encapsulant la version qui allait bien, j'ai pu utiliser le script sans difficulté et sans déstabiliser mon macOS.

@+JP

Bonsoir, Docker j´ai lu qqchose dessus, je le télécharge l´ínstalle et vois ce que je peux faire avec.
Merci.
A +.
Go to the top of the page
 
+Quote Post
Jaypee
posté 12 Jan 2019, 10:37
Message #9


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 2 486
Inscrit : 29 Aug 2002
Membre no 3 340



Il existe une image Docker:

https://github.com/vladfau/nasm32

Pour l'utiliser, il faut :
- Un compte (gratuit) sur Docker Hub qui est un repo d'images
- docker pull vladfau/nasm32
- docker run -it vladfau/nasm32 bash
exemples dans /usr/share/doc/examples/nasm

Il faut environ 15 minutes départ-arrêté entre démarrer docker et essayer la commande nasm.
Je n'ai pas trouvé les bonnes options de génération du code pour essayer par exemple /usr/share/doc/examples/nasm/lnxhello.asm mais je n'ai aucune expérience pratique dans cet environnement.
Code
root@e8ae58fc3611:~# nasm -f elf ./lnxhello.asm
root@e8ae58fc3611:~# ld -m elf_i386 -o hello lnxhello.o
root@e8ae58fc3611:~# chmod +x ./hello
root@e8ae58fc3611:~# ./hello
Hello, World!

Pour interagir avec des fichiers sur le mac, il faut "mapper" un répertoire du mac avec un chemin existant dans l'image, par exemple /home existe mais est vide
et la syntaxe est:
Code
docker run ... -v /Users/moi/mon répertoire de bidouille:/home ... comme :
docker run -it -v/Users/jaypee/workspaces/Nasm:/home --entrypoint=nasm vladfau/nasm32  -f macho -o /home/hello.o /home/helloWorld.asm

Cela dit, je n'ai pas trouvé les bonnes options pour cross-compiler pour le Mac.

@+ JP

Ce message a été modifié par Jaypee - 12 Jan 2019, 13:44.
Go to the top of the page
 
+Quote Post
TrouthyMcBidouil...
posté 13 Jan 2019, 20:29
Message #10


Adepte de Macbidouille
*

Groupe : Membres
Messages : 66
Inscrit : 26 Oct 2017
Membre no 203 568



Bonsoir, actuellement un sigle docker dans la barre du finder me dit que je suis loggé sur le Docker Hub, la page nasm32 de Vladfau est bien présente mais ensuite...? Le core I7 du mac book ne pourra pas accepter de mover un qword dans rax non?
Go to the top of the page
 
+Quote Post
TrouthyMcBidouil...
posté 13 Jan 2019, 21:03
Message #11


Adepte de Macbidouille
*

Groupe : Membres
Messages : 66
Inscrit : 26 Oct 2017
Membre no 203 568



Je me demandais justement si Masm était disponible avec Visual Studio 2017 Mac?
Go to the top of the page
 
+Quote Post
Jaypee
posté 14 Jan 2019, 10:35
Message #12


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 2 486
Inscrit : 29 Aug 2002
Membre no 3 340



Citation (TrouthyMcBidouille @ 13 Jan 2019, 20:29) *
Bonsoir, actuellement un sigle docker dans la barre du finder me dit que je suis loggé sur le Docker Hub, la page nasm32 de Vladfau est bien présente mais ensuite...?

... suivre les instructions du cadre à droite: git pull vladfau/nasm32 puis git run -it vladfau/nasm32 bash comme dans ma réponse.
Citation
Le core I7 du mac book ne pourra pas accepter de mover un qword dans rax non?
L'assembleur dispose de directives d'assemblage, des instructions avent le début du code pour définir le contexte, il existe une directive CPU https://www.nasm.us/doc/nasmdoc6.html
On retrouve certaine des directives dans les options comme le -f macho32 ou -f macho64 Apparemment, la documentation de NASM a des chapitre vide pour ces formats MACH-O pour Mac. Soit ils ne sont pas encore supportés, soit les détails sont encore dans la tête des concepteurs.

Note que les exemples de codes sur Développez.com ne sont pas des code génériques, mais des codes liés à MS-DOS (même pas Windows) basés sur l'interruption n°21 qui sur un IBM PC de 1981, permettait d'appeler l'OS, après avoir chargé un numéro de fonction dans le registre ah (la bible pour ce type de code était le Livre du MS/PC-DOS de F.Piette dans les années 80)

Au final, il faudra bien comprendre comment le code produit sera utilisé, et peut-être qu'il faut émuler un PC pour arriver à ses fins...
Quelques réponses dans ce poste sur StackOverflow: https://stackoverflow.com/questions/5256361...tion-using-cmak
@+JP

Ce message a été modifié par Jaypee - 14 Jan 2019, 10:47.
Go to the top of the page
 
+Quote Post
TrouthyMcBidouil...
posté 14 Jan 2019, 20:36
Message #13


Adepte de Macbidouille
*

Groupe : Membres
Messages : 66
Inscrit : 26 Oct 2017
Membre no 203 568



Je vais suivre précisément toutes vos indications, ce n'est pas simple de passer sur Mac après 30 années passés sur Pc...ah ah les livres des années 80-90 comme PSI des mines d'or! Mon impression est que la programmation est rendue compliquée de nos jours, bref du rétro pédalage en quelque sorte! Voir ce lien : https://flatassembler.net/download.php

Ce message a été modifié par baron - 14 Jan 2019, 23:48.
Raison de l'édition : Correction des balises
Go to the top of the page
 
+Quote Post
TrouthyMcBidouil...
posté 14 Jan 2019, 21:32
Message #14


Adepte de Macbidouille
*

Groupe : Membres
Messages : 66
Inscrit : 26 Oct 2017
Membre no 203 568



Citation (Jaypee @ 12 Jan 2019, 10:37) *
Il existe une image Docker:

https://github.com/vladfau/nasm32

Pour l'utiliser, il faut :
- Un compte (gratuit) sur Docker Hub qui est un repo d'images
- docker pull vladfau/nasm32
- docker run -it vladfau/nasm32 bash
exemples dans /usr/share/doc/examples/nasm

les deux commandes ont été exécutées dans terminal par contre il est impossible de trouver le répertoire examples et encore moins de le créer!
Go to the top of the page
 
+Quote Post
Jaypee
posté 16 Jan 2019, 09:24
Message #15


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 2 486
Inscrit : 29 Aug 2002
Membre no 3 340



oui, j'ai interverti deux niveaux de répertoires, désolé :
Code
root@4ec88d7655c0:/# ls -l /usr/share/doc/nasm/examples
total 592
-rw-r--r-- 1 root root   144 May 24  2012 _file_.asm
-rw-r--r-- 1 root root    84 May 24  2012 _version.asm
-rw-r--r-- 1 root root   273 May 24  2012 a32offs.asm
-rw-r--r-- 1 root root   336 May 24  2012 absolute.asm
....

Idem pour fasm, il existe une image docker : https://hub.docker.com/r/guitmz/fasm/

Bonne bidouille !
J-P
PS: Deux commandes de remise à zéro des données docker : plus d'images, ni de process qui tournent, plus d'image en cache, retour à l'état "juste après l'install", avant d'arrêter le service (l'icône de la baleine):
1. docker rm -f $(docker ps -aq)
2. docker rmi -f $(docker images -aq)

Ce message a été modifié par Jaypee - 16 Jan 2019, 09:54.
Go to the top of the page
 
+Quote Post
TrouthyMcBidouil...
posté 16 Jan 2019, 23:26
Message #16


Adepte de Macbidouille
*

Groupe : Membres
Messages : 66
Inscrit : 26 Oct 2017
Membre no 203 568



Citation (Jaypee @ 12 Jan 2019, 10:37) *
Il existe une image Docker:

https://github.com/vladfau/nasm32

Pour l'utiliser, il faut :
- Un compte (gratuit) sur Docker Hub qui est un repo d'images
- docker pull vladfau/nasm32
- docker run -it vladfau/nasm32 bash
exemples dans /usr/share/doc/examples/nasm <= /usr/share/doc/nasm/examples : ok pour les répertoires

Il faut environ 15 minutes départ-arrêté entre démarrer docker et essayer la commande nasm.
Je n'ai pas trouvé les bonnes options de génération du code pour essayer par exemple /usr/share/doc/examples/nasm/lnxhello.asm mais je n'ai aucune expérience pratique dans cet environnement.
Code
root@e8ae58fc3611:~# nasm -f elf ./lnxhello.asm
root@e8ae58fc3611:~# ld -m elf_i386 -o hello lnxhello.o
root@e8ae58fc3611:~# chmod +x ./hello
root@e8ae58fc3611:~# ./hello
Hello, World!

Pour interagir avec des fichiers sur le mac, il faut "mapper" un répertoire du mac avec un chemin existant dans l'image, par exemple /home existe mais est vide
et la syntaxe est:
Code
docker run ... -v /Users/moi/mon répertoire de bidouille:/home ... comme :
docker run -it -v/Users/jaypee/workspaces/Nasm:/home --entrypoint=nasm vladfau/nasm32  -f macho -o /home/hello.o /home/helloWorld.asm

Cela dit, je n'ai pas trouvé les bonnes options pour cross-compiler pour le Mac.

@+ JP

root@e8ae58fc3611:~# nasm -f elf ./lnxhello.asm <= nasm: fatal: unable to open input file `./lnxhello.asm
Pour le mappage avec des répertoires personalisés il me retourne une erreur! le fichier hello.asm doit se trouver dans quel répertoire en fait?
Désolé pour le temps passé la-dessus.
J suis un boulet...
Go to the top of the page
 
+Quote Post
TrouthyMcBidouil...
posté 17 Jan 2019, 11:35
Message #17


Adepte de Macbidouille
*

Groupe : Membres
Messages : 66
Inscrit : 26 Oct 2017
Membre no 203 568



je ne suis pas encore familiarisé avec Terminal, l'époque du shell de cet Amiga 3000 remonte maintenant à une trentaine d'années...vive unix!
Voilà ce que j'obtiens:

Code
Admins-Air:~ admin$ docker run -it -v/Users/admin/RepBidouilles/Nasm:/home --entrypoint=nasm vladfau/nasm32 -f macho -o /home/hello.o /home/helloWorld.asm
nasm: fatal: unable to open input file `/home/helloWorld.asm'


Je pense que le fichier helloWorld.asm n'est pas dans le répertoire souhaité! Mais comment l'y mettre?
à plus, Trouhie
Go to the top of the page
 
+Quote Post
Jaypee
posté 17 Jan 2019, 12:52
Message #18


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 2 486
Inscrit : 29 Aug 2002
Membre no 3 340



On fait un pas en arrière et on admire le tableau smile.gif
- L'objectif c'est d'assembler des fichiers sources qui existent sur le mac
- On ne veut pas polluer le mac avec les dépendances requises par un outil spécifique, donc on utilise une image Docker qui tourne dans un process isolé appelé container.

Donc le besoin est de permettre à ce process d'accéder aux fichiers du mac. Heureusement il existe une option du démarrage du container qui permet ça. Et il se trouve que l'image a été définie avec un répertoire vide /home.

Donc, imaginons que tu travailles dans un répertoire /Users/admin/RepBidouilles/Nasm, grâce à cette option de démarrage, ce répertoire du mac va être associée à /home dans l'image. Donc ce sera le répertoire partagé entre le mac et le container.

1. On va récupérer le fichier lnxhello.asm. On démarre le container simplement avec l'option -v qui partage le dossier, et on invoque "bash" pour avoir un shell, qui nécessite l'option -i et -t ou -it.
Code
docker run -it -v /Users/admin/RepBidouilles/Nasm:/home vladfau/nasm32 bash
# maintenant on est dans le shell du container
cp /usr/share/doc/nasm/examples/lnxhello.asm /home/helloWorld.asm ==> on copie et on renomme le source de l'exemple dans le dossier partagé
ctrl-D ==> pour quitter

2. On examine que le fichier est bien disponible sur le mac dans le répertoire de bidouille :
Code
cd /Users/admin/RepBidouilles/Nasm
ls -l ./helloWorld.asm

3. On est prêt à appliquer la recette

Là on a vu comment sortir un fichier source du container pour le rendre visible sur le mac. A l'inverse, si tu crées un nouveau source .asm dans ton répertoire sur mac, l'assembleur qui tourne dans le container le verra comme un des fichiers de son /home
J-P

Ce message a été modifié par Jaypee - 17 Jan 2019, 13:15.
Go to the top of the page
 
+Quote Post
TrouthyMcBidouil...
posté 17 Jan 2019, 14:20
Message #19


Adepte de Macbidouille
*

Groupe : Membres
Messages : 66
Inscrit : 26 Oct 2017
Membre no 203 568



C'est pédagogique! rolleyes.gif

Voualà à quel stade de la recette j'en suis:

Code
Admins-Air:Nasm admin$ cd /Users/admin/RepBidouilles/Nasm
Admins-Air:Nasm admin$ ls -l
total 32
-rw-r--r--  1 admin  staff   972 17 Jan 12:54 helloWorld.asm
-rw-r--r--@ 1 admin  staff  9087 17 Jan 11:12 helloworld.asm.rtf
Admins-Air:Nasm admin$ nasm -f elf ./helloWorld.asm
nasm: error: unable to find utility "nasm", not a developer tool or in PATH

Une recette mouuuai...
Code
Admins-Air:Nasm admin$ docker run -it -v /Users/admin/RepBidouilles/Nasm:/home vladfau/nasm32 bash
root@689b5c1e9a57:/# nasm -f elf ./helloWorld.asm
nasm: fatal: unable to open input file `./helloWorld.asm'


Je pensais que deux shell ouverts cela était possible!
Pour la recette ici son nom se laisse presque deviner... en 5 lettres: L.... blink.gif
Go to the top of the page
 
+Quote Post
TrouthyMcBidouil...
posté 17 Jan 2019, 16:39
Message #20


Adepte de Macbidouille
*

Groupe : Membres
Messages : 66
Inscrit : 26 Oct 2017
Membre no 203 568



Bonne nouvelle, c'est tout bon!

Code
root@ed2aac7c2b4d:/# exit
Admins-MacBook-Air:Nasm admin$ docker run -it -v /Users/admin/RepBidouilles/Nasm:/home vladfau/nasm32 bash
root@480da47c4874:/# cd /Users/admin/RepBidouilles/Nasm
bash: cd: /Users/admin/RepBidouilles/Nasm: No such file or directory
root@480da47c4874:/# ls
bin  boot  dev    etc  home  lib    lib32  lib64  media  mnt  opt  proc  root  run    sbin  selinux  srv  sys  tmp  usr  var
root@480da47c4874:/# cd ..
root@480da47c4874:/# cd ..
root@480da47c4874:/# ls
bin  boot  dev    etc  home  lib    lib32  lib64  media  mnt  opt  proc  root  run    sbin  selinux  srv  sys  tmp  usr  var
root@480da47c4874:/# cd /home/
root@480da47c4874:/home# ls
helloWorld.asm    helloworld.asm.rtf
root@480da47c4874:/home# nasm -f elf ./lnxhello.asm
nasm: fatal: unable to open input file `./lnxhello.asm'
root@480da47c4874:/home# nasm -f elf ./helloWorld.asm
root@480da47c4874:/home# ld -m elf_i386 -o hello helloWorld.o
root@480da47c4874:/home# chmod +x ./hello
root@480da47c4874:/home# ./hello
Hello, World!
root@480da47c4874:/home#


La recette dans le bon récipient!
Pour la L..... à voir!
A plus et merci.
Trouthie

Go to the top of the page
 
+Quote Post
Jaypee
posté 17 Jan 2019, 20:29
Message #21


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 2 486
Inscrit : 29 Aug 2002
Membre no 3 340



Bravo ! Je garderai un œil sur cette discussion au cas où tu aurais d'autres questions.

@+JP
Go to the top of the page
 
+Quote Post
TrouthyMcBidouil...
posté 18 Jan 2019, 08:33
Message #22


Adepte de Macbidouille
*

Groupe : Membres
Messages : 66
Inscrit : 26 Oct 2017
Membre no 203 568



Citation (Jaypee @ 17 Jan 2019, 20:29) *
Bravo ! Je garderai un œil sur cette discussion au cas où tu aurais d'autres questions.

@+JP


Oui car il va y en avoir d'autres c'est certain!
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 utilisateur(s) sur ce sujet (1 invité(s) et 0 utilisateur(s) anonyme(s))
0 membre(s) :

 



Nous sommes le : 19th March 2024 - 07:52