Accueil > Forum > > > > Palindrome en ASM
Palindrome en ASM
jeudi 30 janvier 2003 à 18:09:19 |
Palindrome en ASM

bugs2600
|
Salut, Quelqu'un pourrait-il m'aider, je suis débutant en asm et je dois faire un exrecice sur un palindrome c'est-à-dire que je dois entrer au clavier un mot ou une phrase il le programme dois dire si c'est un palindrome ou non? Merci d'avance
|
|
jeudi 30 janvier 2003 à 18:09:26 |
Re : Palindrome en ASM

bugs2600
|
------------------------------- Réponse au message : -------------------------------
> Salut, > > Quelqu'un pourrait-il m'aider, je suis débutant en asm et je dois faire un exrecice sur un palindrome c'est-à-dire que je dois entrer au clavier un mot ou une phrase il le programme dois dire si c'est un palindrome ou non? > > Merci d'avance
|
|
jeudi 30 janvier 2003 à 21:26:29 |
Re : Palindrome en ASM

BruNews
|
------------------------------- Réponse au message : -------------------------------
> Salut, > > Quelqu'un pourrait-il m'aider, je suis débutant en asm et je dois faire un exrecice sur un palindrome c'est-à-dire que je dois entrer au clavier un mot ou une phrase il le programme dois dire si c'est un palindrome ou non? > > Merci d'avance
passe ptr sur chaine dans EDX en sortie si EAX == 0 alors EST Palindrome
mov edx, offset chaine call Palindrome test eax, eax jne short ERREUR
Palindrome PROC ; *psz dans EDX mov ecx, edx ; EDX = d, ECX = c xor eax, eax L1: cmp byte ptr[edx], 0 je short L2 inc edx jmp short L1 L2: cmp ecx, edx je short plndExit ; chaine vide dec edx L3: cmp ecx, edx jae short plndExit mov al, [ecx] sub al, byte ptr[edx] jne short plndExit inc ecx dec edx jmp short L3 xor al, al plndExit: ret 0 Palindrome ENDP
ciao...
|
|
jeudi 30 janvier 2003 à 21:32:37 |
Re : Palindrome en ASM

bugs2600
|
------------------------------- Réponse au message : -------------------------------
Tu ne serais pas expliquer ce que tu as fait sltp, merci
|
|
jeudi 30 janvier 2003 à 21:54:57 |
Re : Palindrome en ASM

BruNews
|
------------------------------- Réponse au message : -------------------------------
> > > > > ------------------------------- > Réponse au message : > ------------------------------- > > Tu ne serais pas expliquer ce que tu as fait sltp, merci tu mets ECX à pointer au debut chaine. ensuite xor eax, eax prepare la sortie OK tu pousses edx jusqu'au zero final de chaine. L2: cmp ecx, edx je short plndExit ; chaine vide dec edx ramène sur dernier L3: cmp ecx, edx ; en C serait while(ECX < EDX) jae short plndExit mov al, [ecx] sub al, byte ptr[edx] jne short plndExit ; ne sont pas egaux donc sort != 0 inc ecx dec edx jmp short L3 xor al, al plndExit: ret 0 aucun param sur pile
|
|
jeudi 30 janvier 2003 à 22:14:33 |
Re : Palindrome en ASM

bugs2600
|
------------------------------- Réponse au message : -------------------------------
Voilà ce que j'ai fait mais je ne vois ce que je dois modifier pour que sa fonctionne avec ce que tu as fait:
Source:
.MODEL SMALL .STACK .DATA
AcMsg1 db "Entrez un mot ou une phrase: $" AcMsg2 db "Bravo, Il s'agit d'un Palindrome" AcMsg3 db "Non, Il ne s'agit pas d'un Palindrome"
.Code
Palindrome PROC ; *psz dans EDX mov ecx, edx ; EDX = d, ECX = c xor eax, eax L1: cmp byte ptr[edx], 0 je short L2 inc edx jmp short L1 L2: cmp ecx, edx je short plndExit ; chaine vide dec edx L3: cmp ecx, edx jae short plndExit mov al, [ecx] sub al, byte ptr[edx] jne short plndExit inc ecx dec edx jmp short L3 xor al, al plndExit: ret 0 Palindrome ENDP
|
|
jeudi 30 janvier 2003 à 22:23:09 |
Re : Palindrome en ASM

BruNews
|
------------------------------- Réponse au message : -------------------------------
> ------------------------------- > Réponse au message : > ------------------------------- > > Voilà ce que j'ai fait mais je ne vois ce que je dois modifier pour que sa fonctionne avec ce que tu as fait: > > Source: > > .MODEL SMALL > .STACK > .DATA > > AcMsg1 db "Entrez un mot ou une phrase: $" > AcMsg2 db "Bravo, Il s'agit d'un Palindrome" > AcMsg3 db "Non, Il ne s'agit pas d'un Palindrome" > > > .Code > > Palindrome PROC ; *psz dans EDX > mov ecx, edx ; EDX = d, ECX = c > xor eax, eax > L1: > cmp byte ptr[edx], 0 > je short L2 > inc edx > jmp short L1 > L2: > cmp ecx, edx > je short plndExit ; chaine vide > dec edx > L3: > cmp ecx, edx > jae short plndExit > mov al, [ecx] > sub al, byte ptr[edx] > jne short plndExit > inc ecx > dec edx > jmp short L3 > xor al, al > plndExit: > ret 0 > Palindrome ENDP
désolé mais je n'ai fourni qu'une fonction, pas un prog complet. De + il faut préciser quel model et quelle plate forme tu vises. Ma func Palindrome est pour Win32: .586 .model flat, stdcall option casemap :none option prologue:none option epilogue:none
sachant que toute chaine est finie par un zero.
|
|
vendredi 31 janvier 2003 à 01:26:21 |
Re : Palindrome en ASM

bugs2600
|
------------------------------- Réponse au message : ------------------------------- ------------------------------- Réponse au message : ------------------------------- ------------------------------- Réponse au message : -------------------------------
------------------------------- Réponse au message : -------------------------------
Serais-tu corriger ce qui ne vas pas dans ma boucle sltp pour que mon programme foncrtionne. Merci d'avance
Voilà ce que j'ai fait:
.MODEL SMALL .STACK .DATA
AcMsg1 db "Entrez un mot ou une phrase: $" AcMsg2 db "Bravo, Il s'agit d'un Palindrome" AcMsg3 db "Non, Il ne s'agit pas d'un Palindrome"
AcClav db 50, ?, 51 dup(' ')
.Code
main:
mov ax, @Data mov dx, ax
mov ax, 0003h int 10h
mov ax, 0900h mov dx, offset AcMsg1 ;Fait pointer dx sur AcMsg1 int 21h
mov ax, 0a00h ;Permet d'entrer la chaine de carcr?re au clavier mov dx, offset AcClav ;Fait pointer dx sur AcClav int 21h
mov SI, 0 ;Initialisation de SI ? 0
Boucle: ; *psz dans EDX mov dx, SI ; EDX = d, ECX = c xor ax, ax
L1: cmp byte AcClav[SI], 0 je short L2 inc SI jmp short L1
L2: cmp dx, SI je short plndExit ; chaine vide dec SI
L3: cmp dx, SI jae short plndExit mov al, [dx] sub al, byte AcClav[SI] jne short plndExit inc dx dec SI jmp short L3 xor al, al plndExit: ret 0
Boucle END End Main
|
|
vendredi 31 janvier 2003 à 10:07:46 |
Re : Palindrome en ASM

BruNews
|
------------------------------- Réponse au message : -------------------------------
> ------------------------------- > Réponse au message : > ------------------------------- > ------------------------------- > Réponse au message : > ------------------------------- > ------------------------------- > Réponse au message : > ------------------------------- > > ------------------------------- > Réponse au message : > ------------------------------- > > Serais-tu corriger ce qui ne vas pas dans ma boucle sltp pour que mon programme foncrtionne. Merci d'avance > > Voilà ce que j'ai fait: > > > .MODEL SMALL > .STACK > .DATA > > AcMsg1 db "Entrez un mot ou une phrase: $" > AcMsg2 db "Bravo, Il s'agit d'un Palindrome" > AcMsg3 db "Non, Il ne s'agit pas d'un Palindrome" > > AcClav db 50, ?, 51 dup(' ') > > > .Code > > main: > > mov ax, @Data > mov dx, ax > > mov ax, 0003h > int 10h > > mov ax, 0900h > mov dx, offset AcMsg1 ;Fait pointer dx sur AcMsg1 > int 21h > > mov ax, 0a00h ;Permet d'entrer la chaine de carcr?re au clavier > mov dx, offset AcClav ;Fait pointer dx sur AcClav > int 21h > > mov SI, 0 ;Initialisation de SI ? 0 > > > Boucle: ; *psz dans EDX > mov dx, SI ; EDX = d, ECX = c > xor ax, ax > > L1: > cmp byte AcClav[SI], 0 > je short L2 > inc SI > jmp short L1 > > L2: > cmp dx, SI > je short plndExit ; chaine vide > dec SI > > L3: > cmp dx, SI > jae short plndExit > mov al, [dx] > sub al, byte AcClav[SI] > jne short plndExit > inc dx > dec SI > jmp short L3 > xor al, al > plndExit: > ret 0 > > Boucle END > > End Main
Salut, tu peux aller voir le prog complet dans mes sources. Tu verras comment appeler cette fonction. ciao...
|
|
dimanche 2 février 2003 à 19:45:11 |
Re : urgent Palindrome en ASM

bugs2600
|
------------------------------- Réponse au message : -------------------------------
> > > > > ------------------------------- > Réponse au message : > ------------------------------- > > > ------------------------------- > > Réponse au message : > > ------------------------------- > > ------------------------------- > > Réponse au message : > > ------------------------------- > > ------------------------------- > > Réponse au message : > > ------------------------------- > > > > ------------------------------- > > Réponse au message : > > ------------------------------- > > > > ------------------------------- > > Réponse au message : > > ------------------------------- > > Besoin d'aide pourrais-tu regarder le programme et me dire pourquoi il ne prend pas les espaces et si tu serais le simplifier et me l'expliquer merci d'avance:
MODEL SMALL .STACK .DATA
AcMsg DB 'Entrer une Phrase ou un Mot: $' AcMsg1 DB 'Oui, Un Palindrome $' AcMsg2 DB 'Non, Pas un Palindrome $'
STRING LABEL BYTE MAXLEN DB 50 STRLEN DB ? STRFLD DB 50 DUP(' ')
.CODE
MAIN: MOV AX,@DATA MOV DS,AX
CALL CLS ;Efface l'?crant CALL CURSOR ;Place le curseur ? (0,0) CALL READ
CALL CLS CALL CURSOR
LEA BX,STRFLD MOV CH,00H MOV CL,STRLEN CMP CX,02H JC PAL MOV DX,BX ADD DX,CX DEC DX SHR CX,1
AGAIN: MOV AL,[BX] XCHG BX,DX CMP AL,[BX] JNE NOTPAL XCHG BX,DX INC BX DEC DX LOOP AGAIN
PAL: MOV AH,09H LEA DX,AcMsg1 INT 21H JMP HALT
NOTPAL: MOV AH,09H LEA DX,AcMsg2 INT 21H
HALT: MOV AX,4C00H ;Termine le programme INT 21H
;Efface l'?crant CLS: MOV AX,0600H MOV BH,07H MOV CX,0000H MOV DX,184FH INT 10H RET
;Place le curseur CURSOR: MOV DX,0000H MOV AH,02H MOV BH,00H INT 10H RET
READ: MOV AH,09H ;Message d'affichage LEA DX,AcMsg INT 21H
MOV AH,0AH LEA DX,STRING INT 21H RET
WRITE: MOV AH,09H LEA DX,STRFLD INT 21H RET
End MAIN
|
|
Cette discussion est classée dans : palindrome, asm
Répondre à ce message
Sujets en rapport avec ce message
Palindrome en ASM [ par bugs2600 ]
Salut,Quelqu'un pourrait-il m'aider, je suis débutant en asm et je dois faire un exrecice sur un palindrome c'est-à-dire que je dois entrer au clavier
EXE Infector [ par seboss ]
Bonjour tout le monde,Je dois realiser un petit projet sympas utilisant le C++,VB et ASM... Mais l'ASm je ne connasi pas assez bien pour realiser ce q
asm en général [ par king171717 ]
Bonjour a tousj'aimerai savoir si vous ne connaissez pas l'endroiou je pourrais trouver un site ou il y a un tutorial du langage asm complet ????merci
Debutant en asm [ par valconi ]
=[[V@LcOnI]]= Bonjourje voudrai me mettre à l'ASMQu'elle Editeur me conseillez vouset qu'elle compilateur me conseillez vousMerci d'avanceValco
Demande de codeurs [ par Vermifuge ]
Je veux fonder une team de codeurs ASM, je cherche des codeurs, attention, faut bien savoir coder( où avoir déjà une bonne expérience ), ya des trucs
ASM [ par domasm ]
Cherche développeur PIC16F84A and I2C pour aide (cours) et vérification de mes montages (Saint Mandé ou proche)
Formater une disquette en asm [ par bugs2600 ]
Personne ne pourrait me dire comment on peut formater une disquette en ASM.Si quelqu'un aurrais le code se serait sympa,merci d'avance
incorporer un objet ASM dans un projet VB [ par sibi12 ]
Bonjour je maitrise bien le VB et un peu le C et je suis dans mes debuts en ASM. J'aimerais incorporer du code ASM ds d'anciens programme VB pour les
Convertion asm vers hex (ou bin) [ par mistigry ]
J'utilise un PIC16F870 avec le compilateur CH Basic V1.2, ce compilateur me fournit des fichier asm (ou bsc) et pour pouvoir transférer le fichier sur
realisation d'une clculette en asm [ par assm ]
> j'ai besoin d'un programme qui simule le fonctionnement d'une calculatrice ça veut dire :> l'evaluation de l'expression "12+8*7-2+77"sera la suivant
Livres en rapport
|
Derniers Blogs
TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Vincent Bellet et Baptiste Giraudier La BI dans SharePoint 2010, Les nouveaux services d'application dans SP2010 et SQL Server Reporting services 2008 R2. La BI dans SharePoint est généralisée pour tous afin de permettre à tous les coll...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2010 : PLAN DE MIGRATION VERS SHAREPOINT 2010TECHDAYS PARIS 2010 : PLAN DE MIGRATION VERS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Arnault Nouvel et Antoine Dongois Le processus à prendre : Apprendre (découvrir la plateforme) Préparer (documenter l'historique et choisir la méthode de MAJ) Test (Test de MAJ) Implémenter (Effectuer la MAJ) Valid...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2010 : LA PLEINIèRE DU SECOND JOURTECHDAYS PARIS 2010 : LA PLEINIèRE DU SECOND JOUR par ROMELARD Fabrice
Après un retour sur l'histoire des TechDays de Paris et le fait que ce soit le plus gros event MS au monde (du fait de sa gratuité), le président de MS France (Eric Boustoullier) a fait une présentation de la vision Microsoft pour les années à venir...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Forum
RE : PIC 16F84RE : PIC 16F84 par pont
Cliquez pour lire la suite par pont RE : PIC 16F84RE : PIC 16F84 par belounis
Cliquez pour lire la suite par belounis RE : PIC 16F84RE : PIC 16F84 par pont
Cliquez pour lire la suite par pont
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
|