[ASSEMBLEUR] Petits exercice pour débutant

Petits exercice pour débutant [ASSEMBLEUR] - Programmation

Marsh Posté le 19-03-2002 à 16:53:36    

exo 1
 
Il s'agit de modifier le programme suivant pour qu'il affiche la question "somme nous l'apres midi (O/N) ?"
Le programme lit ensuite une touche au clavier et selon la réponse de l'utilasatieur afficher le message "deja debout de si bon matin !" ou "un bel apres midi ne trouvez vos pas ?"
 
 
DOSSEG
.MODEL small
.STACK 100h
.DATA
 MsgBonjour DB 'Bonjour,monde',13,10,'$'
.CODE
 mov ax, @data
 mov ds,ax
 mov ah,9
 mov dx, OFFSET MsgBonjour
 int 21h
 mov ah,4Ch
 int 21h
END
 
 
Voila pour le 1er exercice.
 
Il a l'air facile a réaliser...
 
Par contre, le suivant :/
 
exo 2
 
Il s'agit d'ecrire un programme assembleur qui lit une chaine de caractere au clavier, et affiche cette mem chaine converties en majuscules, puis en minuscule.
 
Exemple :
chaine saisie : AaBcdEF
chaine en maj : AABCDEF
chaine en min : aabcdef
 
chooooo :/
 
Vous m'aidez ? :)

Reply

Marsh Posté le 19-03-2002 à 16:53:36   

Reply

Marsh Posté le 19-03-2002 à 17:55:49    

Ah lala...
 
Pour le 2eme tu teste lettre par lettre si deja en maj et si non tu rajoute la difference qu'il y a dans la table ASCII (les lettres ce suive)

Reply

Marsh Posté le 19-03-2002 à 18:05:00    

Question : est-ce qu'il y a moyen de faire de l'ASM sans un émulateur, directement sur son pentium ? Gratuitement ?

Reply

Marsh Posté le 19-03-2002 à 19:10:01    

k1200 a écrit a écrit :

Ah lala...
 
Pour le 2eme tu teste lettre par lettre si deja en maj et si non tu rajoute la difference qu'il y a dans la table ASCII (les lettres ce suive)  




 
Ah, pas bete :)
 
Les autres idées sont les bienvenues :)

Reply

Marsh Posté le 19-03-2002 à 22:04:58    

La différence entre majuscule et minuscule, c'est juste un bit (je crois)
- convertir en minuscule : OR 20h (positionne le bit)
- convertir en majuscule : AND DFh (met à 0 le bit)
 
Ca t'évite de faire des conditions.

Reply

Marsh Posté le 20-03-2002 à 08:42:39    

:)  
 
 :hello:

Reply

Marsh Posté le 20-03-2002 à 11:06:13    

Pour la convertion ca doit fonctioner avec le bit... il y a 32 de diff entre les maj et les minuscule...
 
Pour un compilateur tu peux utiliser celui qui est avec le pascal (je crois que on le trouve gratuitement sur le site de borland) mais je ne me souvient plus du nom...

Reply

Marsh Posté le 20-03-2002 à 13:10:38    

Je crois que cet exo est résolu dans un petit bouquin genre 10 eros (y'a pas la touche euro sur ces clavier de ******)
pour un code plus portable, encore que peut on en parler en assembleur, plutot que d'ajouter 32 (ou 20h), ajoute : 'A' - 'a'
 
ca te donne directement l'ecart majuscule/minuscule, ca marche avec l'ASCII et l'EBCDIC ...
 
de meme quand tu compares la lettre a mettre en majuscule, utilise les lettres directement (si comprise entre a et z mettre en majuscule sinon rien faire ...)
 
par exemple, si AL contient la lettre a mettre en majuscule

Code :
  1. cmp AL, 'A'
  2. au lieu de
  3. cmp AL, 65h


 
 
Cherrytree> j'ai pas compris ta question ... tu fais de l'assembleur via un émulateur alors que tu as un pentium ? Et tu payes ?


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Marsh Posté le 20-03-2002 à 13:13:39    

oups, ratage ...
c'est 'a' - 'A' et non l'inverse ... :)


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Marsh Posté le 20-03-2002 à 13:14:15    

Non, en fait j'ai fait de l'assembleur sur 68HC16, qui réclame un émulateur. Mais maintenant, ce que j'aimerai c'est faire de l'assembleur x86. Comme j'en ai jamais fait, je ne sais pas bien ce que cela implique comme engagement (financier, formation). Je me doute qu'il y a des solutions gratuites, mais je ne les connais pas et plus simplement je n'y connais rien en x86. Des tuyaux ? Des conseils ? Des bonnes habitudes à prendre ?

Reply

Marsh Posté le 20-03-2002 à 13:14:15   

Reply

Marsh Posté le 20-03-2002 à 13:35:09    

ah, tu veux dire que tu a fait de l'assembleur non x86 depuis ton x86.
La c'est normal, il faut un émulateur
Mais faire de l'assembleur x86 sur un x86, pas besoin d'émulateur puisque ton processeur execute direct le code
tu compiles (ouai ouai assemble ...) et t'obtiens un exe.
Tu le lances et t'oberves ...
Un executable, c'est grossomodo du code assembleur !
Tu peux le déssassembler et voir le source (en assembleur)
Si t'es familier avec la programmation Windows, tu peux faire de l'assembleur 32 bits pour Windows
sinon, ou si t'as envie de bidouiller un peu, tu bosses sous DOS
De ton choix dépend le compilo utilisé : tasm ou tasm32 par exemple ...


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Marsh Posté le 20-03-2002 à 13:39:58    

OK, cool.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed