c - 如何在汇编中遍历矩阵?

标签 c linux assembly matrix x86

我在 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

最佳答案

首先,这是gas语法,不是nasm语法。

其次,矩阵迭代看起来像其他东西。假设一个直的二维数组(不是数组的数组),

    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

关于c - 如何在汇编中遍历矩阵?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33949862/

相关文章:

c指针引用和取消引用

c - 这个哈希函数是如何工作的?这些数字是随机的吗?

c - 如何通过汇编代码找到固定长度的多维数组?

java - movzbl 如何与寄存器值 0xffffffffffffffff 交互?

c - 如何在c函数中访问堆起始地址和堆基地址

c - 连接到 Redis 时,Unix 套接字比 tcp 慢

c - Mac OS X 上标准库的源代码

c++ - 这个linux串口配置和windows串口一样吗

java.net.SocketException : Network is unreachable: connect Response data in JMeter

r - 将 .Renviron 文件位置传递给 R session ?