Assembleur
Résolu
Pusha
Messages postés
3
Date d'inscription
Statut
Membre
Dernière intervention
-
Pusha Messages postés 3 Date d'inscription Statut Membre Dernière intervention -
Pusha Messages postés 3 Date d'inscription Statut Membre Dernière intervention -
Bonjour tous le monde , je suis entrain de créer un programme en assembleur , mais tous ne fonctionne pas comme je le désire, en fait le problème c'est que je dois stocker un nombre codé dans un registre , pour pouvoir l'utiliser après.
Voici un bout du prog:
CLO
ORG B0 ; adresse B0
DB "5445525229" ; {donnée cryptée}{(terre)/+/clé ($6C) cryptage(5445525229)}
ORG 04 ; adresse 04
MOV BL,DB
/+/signifie ou exclusif dans mon commentaire
C'est le "5445525229" que je n'arrive pas à faire rentrer dons mon registre BL,
J'utilise le logiciel suivant pour Win32>> http://www.softwareforeducation.com/sms32v50/
avec la Version 5.0 - smz32v50.exe .
Si quelqu'un a une idée pour résoudre ce problème , ça m'aiderai beaucoup =)!
Voici un bout du prog:
CLO
ORG B0 ; adresse B0
DB "5445525229" ; {donnée cryptée}{(terre)/+/clé ($6C) cryptage(5445525229)}
ORG 04 ; adresse 04
MOV BL,DB
/+/signifie ou exclusif dans mon commentaire
C'est le "5445525229" que je n'arrive pas à faire rentrer dons mon registre BL,
J'utilise le logiciel suivant pour Win32>> http://www.softwareforeducation.com/sms32v50/
avec la Version 5.0 - smz32v50.exe .
Si quelqu'un a une idée pour résoudre ce problème , ça m'aiderai beaucoup =)!
A voir également:
- Assembleur
- Logiciel assembleur - Télécharger - Édition & Programmation
- Tp corrigé assembleur 8086 - Forum Programmation
- Assembleur 8086 - Forum Programmation
- Assembleur add mul div sus - Forum Assembleur
- Assembleur ✓ - Forum Programmation
4 réponses
Bonjour,
hé bien c'est simple, le registre BL est un registre 8 bits pouvant accepter une valeur comprise entre 0 et 255 (2^8), donc il est trop petit! Le problème c'est que la valeur 5445525229 dépasse également le registre EBX de 32 bits, donc soit il faut passer au registre 64 bits RBX (si possible) soit traiter la valeur comme un tableau d'octets.
hé bien c'est simple, le registre BL est un registre 8 bits pouvant accepter une valeur comprise entre 0 et 255 (2^8), donc il est trop petit! Le problème c'est que la valeur 5445525229 dépasse également le registre EBX de 32 bits, donc soit il faut passer au registre 64 bits RBX (si possible) soit traiter la valeur comme un tableau d'octets.
Merci nicocorico,
Pas de chance =/ je ne peux pas passer à un registre RBX avec le simulateur ,et je n'ai pas encore vu les tableaux d'octets.
Mais je me suis dis que je devait essayer de rentrer mon mot crypté dans une pile.
j'imagine que là aussi le nb de bits est limité à 32 ce qui fait que je vais encore rencontrer un autre mur puisque par la suite je dois effectuer une opération en ou exclusif et si le code est découpé en binôme l'opération ne pourra pas s'effectuer normalement...=(
ps:En fait le but de mon programme est qu'à partir d'un mot codé , le programme trouve une clé qui permet de décodé mon mot cryptée( pour cela le résultat du XOR ne doit ressortir que des caractères ASCII compris donc entre $41 et $5A) mais avant cette étape j'aimerai tester toutes les clés possible et mettre les résultats dans un seul registre pour pouvoir l'afficher dans un VDU après ;) .
Pas de chance =/ je ne peux pas passer à un registre RBX avec le simulateur ,et je n'ai pas encore vu les tableaux d'octets.
Mais je me suis dis que je devait essayer de rentrer mon mot crypté dans une pile.
j'imagine que là aussi le nb de bits est limité à 32 ce qui fait que je vais encore rencontrer un autre mur puisque par la suite je dois effectuer une opération en ou exclusif et si le code est découpé en binôme l'opération ne pourra pas s'effectuer normalement...=(
ps:En fait le but de mon programme est qu'à partir d'un mot codé , le programme trouve une clé qui permet de décodé mon mot cryptée( pour cela le résultat du XOR ne doit ressortir que des caractères ASCII compris donc entre $41 et $5A) mais avant cette étape j'aimerai tester toutes les clés possible et mettre les résultats dans un seul registre pour pouvoir l'afficher dans un VDU après ;) .
La pile fonctionne exactement comme toute portion mémoire, avec les mêmes inconvénients. Mais utiliser une variable 64 bits(qword) ne pose normalement pas de soucis au simulateur... et tu peux toujours la récupérer dans deux registres ou laisser le simulateur se débrouiller avec la variable 64bits.
Et à priori vu que c'est du texte, tu devrais tout simplement déclarer une chaîne de caractère, il n'y aura dans doute pas de souci pour l'afficher dans ce cas! Je ne connais pas les limites du simulateur, alors je suppose! Et tu devrais pouvoir forcer l'application du xor sur la chaine en la transtypant.
Sachant aussi que le but étant d'appliquer un xor, tu peux peut-être scinder les mots et la clé en plusieurs parties, eu deux dword par exemple, le traitement se faisant bit par bit tu peux découper les valeurs comme ça t'arrange...
Et à priori vu que c'est du texte, tu devrais tout simplement déclarer une chaîne de caractère, il n'y aura dans doute pas de souci pour l'afficher dans ce cas! Je ne connais pas les limites du simulateur, alors je suppose! Et tu devrais pouvoir forcer l'application du xor sur la chaine en la transtypant.
Sachant aussi que le but étant d'appliquer un xor, tu peux peut-être scinder les mots et la clé en plusieurs parties, eu deux dword par exemple, le traitement se faisant bit par bit tu peux découper les valeurs comme ça t'arrange...