Afficher le code ASCII d'un caractère en ASSEMBLEUR
Bonsoir à tous
Alors voilà je débute en assembleur,et je bloque sur un affichage. Alors en fait, je dois faire la somme de deux variables de type WORD la somme se fait normalement mais au lieu d'afficher le résultat en hexadécimal, l'emu8086 m'affiche les deux caractères qui correspondent à chaque octet de la somme, j'aurai voulu savoir comment faire pour qu'il m'affiche le résultat de la somme en hexa au lieu de m'afficher les caractères qui correspondent à ce résultat dans la table ASCII. Voici mon code:
- Code: Tout sélectionner
data segment
x dw 1234h
y dw 5678h
ends
stack segment
dw 128 dup(0)
ends
code segment
start:
mov ax, data
mov ds, ax
mov ax,x
mov bx,y
add bx,ax
mov dl,bh
mov ah,02h
int 21h
mov dl,bl
mov ah,02h
int 21h
mov ah, 1
int 21h
mov ax, 4c00h
int 21h
ends
end start
Normalement je devrais avoir comme résultat: 68AC H
mais au lieu de ça j'ai une espère de: h 1/4
Comment faire s'il vous plait? :/ je désespère j'ai beau chercher je ne trouve pas de solutions!
Aussi j'aimerai savoir si au lieu d'initialiser les deux variables je pouvais les lire: est-ce que quand je lis deux octets de chaque variable (en les tapant au clavier) l'emu8086 les considère automatiquement comme étant deux mots en hexa? Sinon comment faire pour qu'il les considère comme tel? Si vous pouviez m'aider rapidement ce serait trop génial ça me permetterait d'avancer plus rapidement!
Je trouve toujours réponse à mes problèmes auprès de vous et je tenais à vous remercier.
Merci pour votre temps et vos réponses
Agréable soirée
Plus de son sur VLC, Windows Media et QuickTime Player
Bonsoir,
alors voilà mon problème est le suivant:je n'ai pas de son sur aucun de mes lecteurs VLC Média Player, Windows Média Player et QuickTime Player, j'en ai par contre sur YouTube, ou sur n'importe quel site dans mes navigateurs. J'ai essayé de réinstaller VLC ça n'a pas marché, et même si je ne vois pas le rapport, sa réinstallation a fait que le Lecteur Windows Média ne lit plus les vidéos il m'affiche ce message d'erreur "Le Lecteur Windows Media a rencontré un problème lors de la lecture du fichier." alors qu'avant j'avais au moins l'image! QuickTime Player par contre ne donne plus ni son ni image, la vidéo se lit mais y a rien en sortie alors que aussi avant la réinstallation de VLC j'avais l'image . Je ne comprends pas :/
Quelqu'un aurait une solution SVP? C'est assez URGENT!
Merci pour vos réponses et bonne soirée.
Mes logiciel ne s'installent pas!Message d'erreur NSIS ERROR
Bonjour,
alors voilà depuis quelque temps j'ai un problème avec tous les logiciels que je télécharge et que j'essaie d'installer, dès que je lance l'installation en cliquant sur "Exécuter" j'ai ce message d'erreur qui s'affiche à chaque fois:
Par contre quand je désinstalle et que je réinstalle un logiciel à condition que je ne le retélécharge pas, là il s'installe correctement. Des solutions s'il vous plait? J'ai demandé à un ami il m'a dit que la seule solution c'était de formater mon pc et moi je ne veux pas en arriver là
Merci d'avance
Bonne journée
Vérifier si une variable est un caractère en C
Bonsoir
Navrée de revenir vous embêter mais j'ai besoin de votre aide, en effet comme l'explique le titre j'aimerai savoir comment fait-on pour qu'à la lecture d'une variable, on vérifie si celle-ci est un caractère ou pas? Je m'explique, dans le cas ou par exemple l'utilisateur devra taper un entier mais qu'il tape au lieu de ça un caractère, à la compilation, une valeur arbitraire sera affectée à cette variable et on peut s'attendre à ce que le programme plante, j'aimerai savoir comment éviter cela s'il vous plait! Des idées?
Merci et bonne soirée
Projet Cryptographie: Programme en C
Bonsoir à tous,
je reviens une nouvelle fois vers vous, car j'ai désespérément besoin de votre aide, en effet j'ai un projet à rendre avant la fin du mois et qui consiste à écrire un programme en C qui crypte un message selon 3 méthodes, c'est à l'utilisateur de choisir la méthode du cryptage qu'il veut lors de l'exécution du programme. Alors j'ai à écrire les programmes qui font les codages suivants:
1. Le codage par substitution (codes à décalage fixe) de Jules César
2. Le codage par substitution (code de Vigenère)
3. Le codage par pliage.
J'ai donc commencé à écrire le programme qui fait le premier codage je vous laisse lire le principe (l'énoncé):
- Énoncé:
L'origine de ce type de codage est attribué à Jules César qui proposa de coder les messages par un décalage fixe de 3 positions de l'ensemble des lettres du message. Ainsi, A devient D, B devient E etc... Plus généralement, on substitue à chaque lettre du message, une lettre obtenue en effectuant une translation fixe connue d'avance de k positions vers la droite. Rédigez un programme en C effectuant le codage d'un message à partir d'une chaîne de caractères et d'une valeur de k demandée à l'utilisateur (k étant ce qu'on appelle la clé du codage ou le décalage). L'alphabet étant uniquement constitué des 26 lettres majuscules (de A à Z) vous effectuerez un contrôle du message avant le codage en supprimant les lettres n'appartenant pas à l'alphabet imposé.
-Problème:
J'ai écris le programme comme demandé, et il s'exécute sans faute lorsque l'utilisateur tape un message en majuscule il fait le décalage normalement. Seulement quand l'utilisateur tape un message avec des chiffres ou des minuscules ou des symboles là ça se complique, il ne s'exécute pas correctement, pourtant je ne sais pas je pense avoir correctement écris la partie qui permet de faire le contrôle et donc de supprimer ce qui n'appartient pas à l'alphabet imposé. Je vous laisse analyser ou exécuter mon code:
- Code: Tout sélectionner
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void CESARcrypto (int cle, char *message)
{
int i=0,j,n=strlen(message);
/*CONTROLE: Si le caractere est une minuscule, un chiffre ou un symbole on le supprime*/
while(i<n)
{ if ((message[i]<'A') || (message[i]>'Z'))
for(j=i;j<n-1;j++)
{
message[j]=message[j+1];
n--;
}
else i++;
}
message[n]='\0';
printf("Message a crypter: %s\n\n",message);
/* Explication de la méthode de cryptage utilisée:
message[i] - 'A' ---> on récupère un nombre représentant le caractère contenu dans message[i] (0=A, 1=B, ...)
(message[i] - 'A') + cle ---> on lui applique le décalage.
((message[i] - 'A') + cle)%26 ---> on fait modulo 26 pour revenir au début si on a dépassé 'Z'.
'A' + ((message[i] - 'A') + cle)%26 ---> on retrouve le bon caractère en ajoutant 'A'.
*/
/*On effectue le décalage*/
for(i=0;i<n;i++)
{
message[i]='A'+((message[i] - 'A')+cle)%26;
}
}
main()
{
int k;
char * message;
printf("CRYPTAGE PAR SUBSTITUTION SELON JULES CESAR:\n\n");
printf("Donner le message a crypter:\n");
scanf("%s",message);
printf("Donner la cle du cryptage:\n");
scanf("%d",&k);
CESARcrypto(k,message);
printf("Message crypte: %s\n\n",message);
system("pause");
}
Alors voilà ça fait des heures que je bosse dessus et je ne sais vraiment pas ou est le problème. J'espérais trouver de l'aide parmi vous. Aussi, d'autres propositions en ce qui concerne le décalage en lui même (je vous rappelle
le mien: message[i]='A'+((message[i] - 'A')+cle)%26;) sont les bienvenues, proposez vos idées peut-être sont elles meilleures que la mienne. Merci infiniment à tous ceux qui s'attarderont là dessus je vous serai infiniment reconnaissante de votre aide.
Passez une bonne soirée =)
Débutante en C problème avec la boucle do - while
Bonsoir
Je suis nouvelle sur le forum et je suis aussi débutante en programmation, notamment en langage C, je rencontre pas mal de soucis en ce moment et j'espérais que vous sauriez m'aider
Je travaille sous Dev C++, j'ai un exercice qui consiste à écrire un programme en C qui soit capable de dire si une année est bissextile ou pas, je voulais donner la possibilité à l'utilisateur d'entrer plus d'années à vérifier s'il le souhaitaient en utilisant la boucle do - while mais je rencontre un problème. Je vous mets le code de mon programme avant de vous expliquer:
- Code: Tout sélectionner
#include <stdio.h>
#include <stdlib.h>
main()
{
int A;
char ch;
do
{
printf("Donner une annee a verifier:\n");
scanf("%d",&A);
if(A % 4!=0)
printf("%d n'est pas une annee bissextile.\n",A);
else
if ((A % 100==0)&&(A % 400!=0))
printf("%d n'est pas une annee bissextile.\n",A);
else
printf("%d est une annee bissextile.\n",A);
printf("Voulez-vous verifier une autre annee? (O/N) \n");
scanf("%c",&ch);
}
while (ch!='N');
system("pause");
}
En fait le problème est que il n'exécute pas l'instruction de lecture du caractère entré par l'utilisateur à la fin et rééxécute directement la première instruction il affiche: Voulez-vous verifier une autre annee? (O/N) ensuite il affiche directement Donner une annee à vérifier, et je ne comprends pas pourquoi :/
Aussi j'aimerai savoir comment peut-on parvenir à afficher les accents, qui ne sont visiblement pas pris en considération en C et sont remplacés par des symboles, j'évite de les utiliser mais s'il y a une solution j'aimerai bien savoir comment faire s'il vous plait.
Merci de votre aide