asm编译问题

时间:2011-11-28 02:20:10

标签: assembly

:96: Error: `(%rax,%edx,4)' is not a valid base/index expression

:97: Error: `-4(%rax,%edx,4)' is not a valid base/index expression

101: Error: `(%rax,%edx,4)' is not a valid base/index expression

102: Error: `-4(%rax,%edx,4)' is not a valid base/index expression

我收到这些错误消息,不知道如何修复它这是我的代码

                 "movl        $0, %6\n"
     line96      "start:        \n\t"
     line97      "movl        (%1,%3,4),%4\n\t"       
                 "movl        -4(%1, %3, 4), %5\n\t"  
             "cmpl        %4, %5\n\t"    
    line 101     "jle             next\n\t"
     line102     xchgl        %4, %5\n\t"               
                 "movl        %4, (%1, %3, 4)\n\t"        
                 "movl        %5, -4(%1, %3, 4)\n\t"        
                 "movl        $1, %6\n\t"

...我的代码很长所以我不想发布整个代码,但我在asm中做冒泡排序,当我编译我得到上面的错误消息我不太确定如何解决它..如果任何人可以解释什么是错的将会有所帮助..谢谢..对不起,如果格式有点凌乱我是新的..

1 个答案:

答案 0 :(得分:0)

您错误地使用了间接寻址。

错误地使用ax:dx对作为带位移的基本指针。有关示例,请参阅thisthis