【发布时间】:2013-11-13 23:01:31
【问题描述】:
我用两个这样的 C char 数组输入汇编函数:
EncryptAsm(arr1,arr2)
两者都是char*类型,一个包含文本,第二个充满'#'符号,它的作用类似于二维数组,两者的长度相同。
我正在尝试将一些值从第一个数组传递到 asm 过程中的第二个数组:
mov ecx,row ;calculating index of arr2 index=[row*inputLength+column]
imul ecx,ebx
add ecx,column
mov eax,1 ;calculating index of arr1
imul eax,iterator
mov esi,arr1[eax]
mov edi,arr2[ecx]
movsb
当两个数组的索引都等于 0(eax 和 ecx 为 0)时,一切都很好,但如果它更大,它就不起作用并引发错误(例如,eax==1)。
在 asm 代码中,数组的类型为:
arr1:ptr byte, arr2:ptr byte
我做错了什么?
【问题讨论】: