我在C中做了一个带有随机数的矩阵3x3,现在我想在程序集中调用函数count_pairs_matrix(int ** m,int y,int k)来验证这个矩阵的对。
y - >是行数
k - >是列数
我这样做:
movl 8(%ebp), %eax #pointer m
movl 12(%ebp), %ebx #k
movl 16(%ebp), %ecx #y
movl $0, %esi
(..)
movl (%eax,%esi,4), %edx <-- the problem is here, the register edx have the address but not the number of that position of the matrix
答案 0 :(得分:0)
首先,这是气体语法,而不是nasm语法。
其次,矩阵迭代看起来像其他东西。假设一个直的2d数组(不是数组的数组),
movl 8(%ebp), %eax #pointer m
movl 12(%ebp), %ebx #k
movl 16(%ebp), %ecx #y
mull %ebx
movl %eax, %esi
.l movl (%esi), %edx
(and process)
addl $4, %esi
decl %ebx
jnz .l