0
.data
source BYTE "Defense mechanism",0
target BYTE SIZEOF source DUP(0)
.code
main PROC
mov esi, OFFSET target
mov edi, OFFSET target
mov ecx, SIZEOF source
L1:
mov al,[esi] ; get a character from source
mov [edi],al ; store it in the target
inc esi ; move to next character
inc edi
loop L1
在.data
部分中,我看到source
被定義爲字符串。 在.code
部分,我看到target
的存儲位置存儲在源索引中。我不希望源索引(ESI
)指向source
而不是target
?這個程序應該將一個字符串複製到已經初始化爲源字符串大小的目標框中,並讓每個字段填充零。我沒有使用匯編語言的經驗。我錯了什麼? (注意:這是我的教授將程序列出來的,但他沒有提供任何真實資料,因爲這是一個基於網絡的「計算安全」課程。裝配中的操縱字符串(MASM)
是的,你說得對 - ESI應在點源,而不是目標 - 它看起來像你的「教授」h至少是該代碼中的一個錯誤。 –
@Paul R:那應該是一個答案,而不是評論,imo – Necrolis
@Necrolis:你可能是對的 - 它感覺不夠實質,不過可能它有資格 - 我會移動它。 –