|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
Sujet : Palindrome en ASM [ Archives / c, c++ et asm ] (bugs2600)
Informations & options pour cette discussion
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é 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
|
|