|
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 : 5 Erreurs à trouver [ Divers / Débutant(e) ] (bizzard4)
Informations & options pour cette discussion
vendredi 10 novembre 2006 à 14:41:42 |
5 Erreurs à trouver

bizzard4
|
Bonjour ! J'explique le contexte. Un de mes professeurs ma donné comme défi de trouver les 5 erreurs dans le code ASM suivant. Je sais qu'il l'a trouvé sur internet (un site de défi je crois). J'ai essayé d'apprendre le ASM sur le tât comme on dit mais sans résultat. Alors, pour vu que mon prof ma dit d'utiliser tout les moyens :P Je me vire vers la fabuleuse communauté ASM de Code-Source pour m'aider. Vous n'etes pas oubliger de me donner les 5 erreurs toutes cuit dans le bec mais des indices. J'ai découvert 2 anomalies dans le code que j'ai précisé plus bas. Voici l'énoncé du email (ou du site web) : Jean-Claude, expert en programmation rentre un peu beurré d'une soirée.
Devant se lever tôt le matin, et n'ayant aucun réveil il décide de
faire un réveil en ASSEMBLEUR.
Il ouvre MASM32 v8.2, et commence à taper. Seulement, toujours éméché, il oublie certaines variables et instructions.
Il va donc sur IRC et demande à un copain de l'aider à trouver les erreurs dans son code, ne se sentant pas apte à debogger.
Il précise à son ami, que le réveil possède un champ (IDC_TIME) et un bouton (BTN_TIME).
Vous êtes l'ami et Jean-Claude vous a donné une partie (et donc pas l'entieretée du programme) du programme boggé.
>Votre but, trouver au maximum 5 erreurs. (aucune suppression, seulement des modifications et des ajouts)
>TOUT et je répète TOUT doit être utilisé.
Et finalement le code :
.586p
.mmx
.model flat, stdcall
option casemap :none
Include \masm32\include\windows.inc
Include \masm32\include\user32.inc
Include \masm32\include\kernel32.inc
Includelib \masm32\lib\user32.lib
Includelib \masm32\lib\kernel32.lib
.const
BTN_TIME equ 1001
IDC_TIME equ 1002
.data
format db "%x" ,0
time byte 20 dup (0)
buffertimeconv byte 20 dup (0)
.code
DialogProc Proc hwnd:dword,message:dword,wParam:dword,lParam:dword
debut:
pushad
mov eax,hwnd
.IF message==WM_COMMAND
mov eax,wParam
.IF ax==BTN_TIME
call deb
INVOKE SetDlgItemTextA,hwnd,IDC_TIME, addr time
.ENDIF
.ELSE
popad
xor eax,eax
ret
.ENDIF
popad
xor eax,eax
ret
DialogProc endp
deb:
pushad
invoke GetSystemTime, addr time
jmp first
conv:
pushad
INVOKE wsprintf, addr buffertimeconv, addr format, buffertimeconv
popad
second:
mov byte ptr ds:[ecx], al
call qqch <-- Appel d'une fonction (mais laquel ?)
mov ax, word ptr ds:[buffertimeconv]
.IF ah==0
mov al, 30h
.ENDIF
mov word ptr ds:[buffertimeconv], 0
mov word ptr ds:[edx], ax
.IF ebx==6
mov byte ptr ds:[edx+ebx+2], 0
.ELSE
mov byte ptr ds:[edx+ebx+2], 58
.ENDIF
ret
first:
xor eax,eax
sub esi, esi
mov ebx, esi
mov ecx, offset buffertimeconv
mov edx, offset time
mov al, byte ptr ds:[edx+8]
call second
add ebx, 3
mov al, byte ptr ds:[edx+10]
call second
add ebx, 3
mov al, byte ptr ds:[edx+12]
call second
popad
ret <-- Manque l'instruction de fin de fichier !
~~ Cordialement Francois Gingras
|
|
|
vendredi 10 novembre 2006 à 20:04:21 |
Re : 5 Erreurs à trouver

ToutEnMasm
|
vite fait comme ça time SYSTEMTIME <> ;byte 20 dup (0) debut: mal placé doit servir a la fin "end debut" placer après dialog manque la ressource , ce qui rend l'exercice pas du tout amusant prendre des bytes dans la structure time parait des plus suspect mov al, byte ptr time.wHour ;[edx+8] word
|
|
|
mercredi 15 novembre 2006 à 20:49:11 |
Re : 5 Erreurs à trouver

_dune2_
|
Salut !
j'ai trouvé les 5 erreurs !!
->
Include \masm32\include\windows.inc Include \masm32\include\user32.inc Include \masm32\include\kernel32.inc Includelib \masm32\lib\user32.lib Includelib \masm32\lib\kernel32.lib
.. bon ... ok ... je -->[]
Gentoo... que du bonheur ...
|
|
|
mercredi 15 novembre 2006 à 21:23:30 |
Re : 5 Erreurs à trouver

bizzard4
|
?????????? explique un peu plus si cé vraiment la -_-
~~ Cordialement Francois Gingras
|
|
|
mercredi 15 novembre 2006 à 22:34:54 |
Re : 5 Erreurs à trouver

_dune2_
|
Ben quand je compile avec nasm ou avec as sous linux, j'ai tout de suite ces 5 lignes en erreur ! ;) Sans rancune ;)
Gentoo... que du bonheur ...
|
|
|
mercredi 29 août 2007 à 10:59:16 |
Re : 5 Erreurs à trouver

PerfectSlayer
|
Salut à toi bizzard4 Premièrement, je ne te répondrai pas. Deuxièmement, l'équipe d'administration de Newbie Contest te remercie pour la publicité que tu fais de leurs épreuves. Le code ci-dessus fait parti d'une épreuve de programmation. Merci de ne pas l'aider et de laisser tout le monde chercher.  Merci à tous. Bonne continuation à vous autres.
|
|
|
Cette discussion est classé dans : mov, time, ds, byte, ptr
Répondre à ce message
Sujets en rapport avec ce message
optimisation [ par sajid_morad ]
salut tout le monde , j ai une parti du code en c++, que j ai voulu optimiser , le l ai reécri en asm , mai ça donne pas grand chose, si quelqu un po
une librairie [ par rhumsek ]
slt mon prog contient une erreur d'après ma compilationje ne la voie pas pouvez vous m'aidé??TITLE Test de la librairieINCLUDE Irvine32.libCR=0DhLF=0A
Probleme de compilation [ par noel70 ]
Bonjour a tous.voila, sur une fenetre, j'ai mis un bouton, et quand j clique sur ce bouton, j'aimerais faire apparaitre une autre fenetre.Alors ce que
Routine inversée... [ par viva ]
salut,peutons inversé cette routine. je débute en asm je sais lire ces instructions mais j'ai des limites. MOV ESI, valeur MOV BL,BYTE PTR DS:[ESI
Peut on mieux faire ? [ par spiky31 ]
Bonjour Voila j'ai commencé ce matin a programmer en assembleur intel et j'aurais voulu avoir votre avis (Je me considére pas vraiment comme un noob
ecrire dans un fichier avec assembleur [ par karimusthb ]
Bonjour, j'essaye d'ecrire dans un fichier avec assembleur,[MASM] le probleme c que en resultat j'ai un fichier ecrit en caractére ASCII comment faire
Mini OS !! debut [ par Hardouz ]
salut a tous ! je debut en ASM je vx bosser un px en ASM je connais l'architechture ect !!! j'ai fais un pti programme mais il ya un probléme 1/ lors
Aligner des données pour le SSE [ par epineurien ]
Bonjour à tous !J'ai un petit problème avec du code dont je mesure la vitesse: suivant la compilation, la vitesse varie du simple au double .J'expliqu
Avertissement compilo [ par NairodDorian ]
Bonjour,J'ai écris un programme qui contient une fonction en full asm pour avoir les meilleurs perfs.Voici le code de la fonction :[CODE]<font color="
Livres en rapport
|
Téléchargements
Logiciels à télécharger sur le même thème :
|