首页 > 解决方案 > 混合 C++ 和汇编语言

问题描述

我正在尝试使用二维“int”数组进行矩阵乘法。我要求用户通过 C++ 插入矩阵。然后,我使用该数据在汇编中进行矩阵乘法。当我尝试将“int”数组的一个元素移动到“ax”寄存器中时出现运行时错误。我不确定出了什么问题。

void Matrix::Calculate()
{
signed short i =0, j=0, k=0 ;

__asm{

    xor eax,eax
    xor ebx,ebx
    xor edx,edx

    mov ecx, 3

    L1:
        push ecx
        mov ecx, 3
    L2 :
        push ecx
        mov ecx, 3
    L3 :
        mov ax, p[i][k]             //runtime error 
        mov bx, q[k][j]
        imul bx
        add r[i][j], bx     

        inc k
        loop L3

        pop ecx
        inc j
        loop L2

        pop ecx
        inc k
        loop L1
};

}

标签: c++assemblymatrix-multiplication

解决方案


推荐阅读