Nous avions une affectation où nous devions écrire la conjecture de collatz dans l'assemblage nasm 64bit avec seulement 13 commandes ou moins (RET inclus). Maintenant, nous nous demandons combien vous pouvez réellement le réduire. Nous sommes actuellement sur 9.
Heres la conjecture Collatz dans le code pseudo pour référence:Conjecture de Collatz dans l'assemblage le plus court
Heres le code que nous avons à ce jour. Quelques notes:
Un tuteur de nous a dit que nous pouvons supprimer le XOR rax, rax en raison de certaines conventions d'appel, il est déjà zéro. Cela ne fonctionne pas sur mon ordinateur, alors je l'ai inclus ici.
Je suis conscient que les deux LEA sont probablement la chose la plus évidente à réduire, mais nous ne pouvons pas penser à un chemin depuis * 6 semble être la seule chose qui est littéralement impossible à faire avec LEA.
GLOBAL collatz
SECTION .text
collatz:
XOR rax, rax
.while:
SHR rdi, 1
JNC .even
LEA rdi, [rdi*2+1]
LEA rdi, [rdi*2+rdi+1]
.even:
INC rax
CMP rdi, 1
JA .while
RET
Ne pas spammer les tags! Et quel est votre problème ** spécifique **? – Olaf
Je vote pour clore cette question hors-sujet parce que c'est vraiment plus une question de "code golf". –
@DavidHoelzer ah je ne me rendais pas compte qu'il n'était pas autorisé depuis son techniquement résoluble. Où recommandez-vous de demander cela? – nn3112337