我正在研究一個讓我難倒的加密項目。我需要將一系列加密密鑰應用於字符串數組,以確定哪個密鑰用於加密消息。我將代碼設置爲運行循環,該循環應用範圍內的所有鍵,但是現在我需要一種「刷新」原始字符串數組的方法。我的解決方案是將原始數組複製到相同大小的新的未填充數組中,用於循環的每次迭代。我寫的以下過程來實現:組裝(MASMx86 PC)複製陣列
CopyBuffer PROC
; Copies the original buffer into a storage variable
; recieves: nothing
; returns: nothing
pushad
mov ecx,67 ; loop counter
mov esi,0
L3:
mov dl,buffer[esi]
mov bufferCopy[esi],dl ; Store byte in array copy
inc esi ; point to the next byte
loop L3
popad
ret
CopyArray ENDP
在上面的代碼中提到的陣列,聲明如下:
buffer BYTE 0e9h,0c8h,0d0h,087h,0ceh,0d4h,087h,0d3h,0cfh,0c2h,087h,0d3h,0ceh,0cah,0c2h,087h
BYTE 0c1h,0c8h,0d5h,087h,0c6h,0cbh,0cbh,087h,0c0h,0c8h,0c8h,0c3h,087h,0cah,0c2h,0c9h
BYTE 087h,0d3h,0c8h,087h,0c4h,0c8h,0cah,0c2h,087h,0d3h,0c8h,087h,0d3h,0cfh,0c2h,087h
BYTE 0c6h,0ceh,0c3h,087h,0c8h,0c1h,087h,0d3h,0cfh,0c2h,0ceh,0d5h,087h,0d7h,0c6h,0d5h
BYTE 0d3h,0deh
bufferCopy db 67 dup(0)
我的代碼成功地填充重複陣列。但是,副本的元素與原始數組的相應元素不同。
我真的很感謝這個更高級的彙編程序員的智慧!我對這門語言相當陌生,語法上仍然有些模糊。
這對我來說看起來非常好。必須有其他事情正在進行。你確定你在調用proc? ;) – 2013-04-04 18:51:10