我正在做一个让我难过的加密项目。我需要将一系列加密密钥应用于字符串数组,以确定用于加密消息的密钥。我将代码设置为运行一个循环,该循环应用范围内的所有键,但现在我需要一种“刷新”原始字符串数组的方法。我的解决方案是将原始数组复制到一个新的相同大小的未填充数组中,用于循环的每次迭代。我编写了以下过程来完成此操作:
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)
我的代码成功填充了重复数组。但是,副本的元素与原始数组的相应元素不同。
我真的很感谢一位更高级的汇编程序员在这方面的智慧!我对这门语言还很陌生,语法上还是有点模糊。