次のように、2 つの C char 配列を使用してアセンブラー関数に入ります。
EncryptAsm(arr1,arr2)
どちらも typechar*
で、1 つはテキストを含み、2 番目は '#' 記号でいっぱいで、2 次元配列のように機能し、両方とも同じ長さです。
asm プロシージャで、最初の配列から 2 番目の配列にいくつかの値を渡そうとしています。
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
私は何を間違っていますか?