我無法使用此聲明,因爲selectedWords可以是任何字符串。使字符串---以0結尾
.DATA
guessWords BYTE SIZEOF selectedWords DUP ('-'), 0
所以我嘗試這樣做:
;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
而且我寫這個功能
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
但這funcion後,我得到guessWords什麼是字符串----- - 並且沒有0和。那麼如何讓字串guessWords = ------- 0?
它非常重要,我對字符串的,因爲在代碼中的一些其他比較學結束0 ..
只要自己把0放在那裏?還要注意'stosw'是單詞,而不是字節。 – Jester
如果我把stosb我得到這樣的http://prntscr.com/ffqvdf然後我不知道我如何得到更多的信..然後我想.. :( – SakaSerbia
關於緩衝區...是的,這是故事彙編語言,你必須自己處理動態大小,這種語言幾乎沒有任何幫助。對於hangman遊戲,假設某些最大長度的單詞/句子被猜測是合理的,例如200 ...然後簡單地分配200B對於數據段中的被選擇和猜測的字,僅使用該緩衝區的第一部分用於較短的單詞/句子(確保將其正確地清除)。對於不同的任務,其中動態數據可能以千克或兆字節或千兆字節爲單位,你必須處理動態內存分配,這裏有200個就足夠了 – Ped7g