Смешивание C ++ и ассемблера - PullRequest
0 голосов
/ 24 ноября 2018

Я пытаюсь умножить матрицу на 2d "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
};

}
...