Jump to content
  • 0

Question

	mov dl, 0x52
loop:
	pop al
	xor al, dl
	mov dl, al
	push al
	jmp loop

10101.0.1101011.1100.1001000.1011100.1010111.1000.1011000.1000001

Share this post


Link to post
Share on other sites

14 answers to this question

Recommended Posts

  • 0

Depuis qu'elle a été postée cette énigme m'a intriguée, je n'ai pas pris le temps de m'y intéresser mais... ça viendra !

Share this post


Link to post
Share on other sites
  • 0

On est d'accord que c'est bien de l'assembleur ?

J'ai toujours eu un peu de mal avec ce langage.

 

Ya-t-il besoin de faire tourner le code ou bien ça peut se faire à la main ?

Et je ne vois pas pour le moment le lien entre le code et le binaire.

Sauf si ce dernier représente la pile mais pour moi y a trop de bits.

Share this post


Link to post
Share on other sites
  • 0
7 hours ago, Cybero said:

On est d'accord que c'est bien de l'assembleur ?

On est d'accord

 

7 hours ago, Cybero said:

Ya-t-il besoin de faire tourner le code ou bien ça peut se faire à la main ?

Tu pourras pas le faire tourner :p

 

7 hours ago, Cybero said:

Sauf si ce dernier représente la pile mais pour moi y a trop de bits.

Et pourtant...

 

Share this post


Link to post
Share on other sites
  • 0
Il y a 3 heures, Zero a dit :

Tu pourras pas le faire tourner :p

 

J'avoue avoir essayé sans succès, ça explique :p

 

Il y a 3 heures, Zero a dit :

Et pourtant...

 

Ok :casque:

Share this post


Link to post
Share on other sites
  • 0

Chapeau d'avoir trouvé quelque chose... je me suis cassé les dents à plusieurs reprises sur cette affaire !

Share this post


Link to post
Share on other sites
  • 0
Révélation

On a une liste de valeurs, séparées par des points et écrites en base 2. Il faut prendre les éléments de la liste un par un et les modifier en s'inspirant de la routine fournie.

 

Share this post


Link to post
Share on other sites
  • 0

Ayant bien la logique mais pas réussi à l'appliquer, je ne suis pas contre une réponse un peu plus détaillée.

Merci d'avance ! :)

Share this post


Link to post
Share on other sites
  • 0

Bien sûr, voici quelques détails supplémentaires.

Révélation

 

  • dl = 0x52 = 0101 0010
  • Premier élément de la liste : al = 0001 0101
  • al xor dl = 0100 0111 = 0x47, soit le caractère "G" de la table ASCII.
  • Je mets al dans dl.

 

  • dl = 0x47 = 0100 0111
  • Deuxième élément de la liste : al = 0000 0000
  • al xor dl = 0100 0111 = 0x47, soit le caractère "G" de la table ASCII.
  • Je mets al dans dl.

 

  • dl = 0x47 = 0100 0111
  • Troisième élément de la liste : al = 0110 1011
  • al xor dl = 0010 1100 = 0x2C, soit le caractère "," (virgule) de la table ASCII.
  • Je mets al dans dl.

 

  • Etc jusqu'au dernier élément de la liste.

 

 

  • Au top ! 2

Share this post


Link to post
Share on other sites
  • 0

joliment expliqué ca parait simple, j'avoue qu'elle m'a intrigué mais mes cours d'assembleurs remontant à presque 30 ans et je n'ai pas pratiqué derrière, je n'ai pas cherché plus loin

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...

Important Information

En utilisant ce site, vous acceptez notre Privacy Policy et nos Terms of Use
We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.