Je ne peux pas utiliser cette déclaration, parce que selectedWords peut être une chaîne.Faire chaîne de --- avec 0 à la fin
.DATA
guessWords BYTE SIZEOF selectedWords DUP ('-'), 0
J'essaie donc de le faire:
;Wordls what we select by rundom code
selectedWords BYTE ?
lengthSelectedWorld DWORD ?
;Letter what we guess, input from keyboard
guessLetter BYTE ?
guessWords BYTE ?
;Letter what are unknows, change with -
letterUnknown BYTE "-", 0
Et j'écrire cette fonction
make_array1 PROC
mov edx,OFFSET selectedWords
call StrLength
mov lengthSelectedWorld,eax
mov lengthSelectedWorld1 ,eax
inc lengthSelectedWorld
loop_add_more:
cmp lengthSelectedWorld, 1
je done
dec lengthSelectedWorld
mov eax, '-'
mov ecx, lengthSelectedWorld1
mov edi, offset guessWords
rep stosw
mov edx, offset guessWords
call WriteString
call Crlf ;stampamo enter novi red
jmp loop_add_more
done:
mov eax, '0'
mov ecx, lengthSelectedWorld1
mov edi, offset guessWords
rep stosw
mov edx, offset guessWords
call WriteString
call Crlf ;stampamo enter novi red
ret
make_array1 ENDP
Mais après funcion j'obtenir guessWords ce qui est de la chaîne ----- - et ne pas avoir 0 sur le et. Alors, comment faire une chaîne guessWords = ------- 0?
Il est important pour moi d'avoir 0 à la fin de la chaîne en raison d'une autre comparation dans le code ..
Vous venez de mettre le 0 là-bas? Notez également que 'stosw' est un mot, pas un byte. – Jester
Si je mets stosb je reçois quelque chose comme ça http://prntscr.com/ffqvdf Et puis je ne understent que je reçois plusieurs lettres .. je veux .. :( – SakaSerbia
A propos des tampons ... ouais, c'est l'histoire de Dans le langage d'assemblage, vous devez gérer la taille dynamique par vous-même, la langue a très peu à offrir.Avec le jeu du pendu, il est raisonnable de supposer une longueur maximale de mot/phrase à deviner, par exemple 200 ... puis allouer simplement 200B pour les deux sélectionnés et devina mot dans le segment de données, en utilisant uniquement la première partie de ce tampon pour mot/phrase courte (assurez-vous l'effacer correctement). Avec des tâches différentes, où les données dynamiques peuvent être en kilos ou megas ou gigas, vous devez faire face à allocation dynamique de mémoire. ici, 200 est assez – Ped7g