C#with Assembler dll复制数组

时间:2015-12-04 23:43:23

标签: c# arrays assembly dll x86

我尝试使用汇编程序中的c#和dll库将第1个表的第1个元素复制到第2个表的第1个元素。

我的c#代码

    [DllImport("mylib.dll", CallingConvention = CallingConvention.StdCall)]
private static extern char wypmacasm(string table, ref string tab2);
 private void button4_Click(object sender, EventArgs e)
        {
            table= "German forces surrendered bla bla bla...."
            char aux= 'x';
            string p = "qwerty";

            aux=asmproc(table, ref  p);


            textBox6.Text = aux.ToString();
            textBox7.Text = p.ToString();
         }

和我的asm代码

asmproc proc tab: dword, tab2: dword

mov esi, tab
mov al, byte ptr[esi]   
ret 

asmproc endp

它有效,在textBox6中我有char'G'

然后我想把这个元素复制到第二个表

asm code

asmproc proc tab: dword, tab2: dword

    mov esi, tab
    mov al, byte ptr[esi]  
    mov edi, tab2
    mov byte ptr [edi], al

    ret 

    asmproc endp

并且在ret程序崩溃后出现错误:GUI.exe中0x771EED0B(ntdll.dll)的未处理异常:0xC0000374:Stertazostałauszkodzona(参数:0x77224270)。

你知道如何将元素从第一张表复制到第二张,或者在这种情况下我做错了什么?

0 个答案:

没有答案