小编Gig*_*ull的帖子

由cmp引起的分段错误

我目前正在尝试学习汇编语言.但我被卡住了.假设我有这个C代码:

for ( int i = 100; i > 0; i-- ) {
  // Some code
}
Run Code Online (Sandbox Code Playgroud)

现在我想用汇编语言做同样的事情.我试过这样的:

__asm__ ("movq $100, %rax;"
        ".loop:"
        //Some code
        "decq %rax;"
        "cmpq $0, (%rax);"
        "jnz .loop;"
);
Run Code Online (Sandbox Code Playgroud)

编译并运行seg故障.如果我删除cmpq行,它不会出错.但当然程序不会终止.

所以基本上我的问题是我在这里做错了什么?

提前致谢.

c assembly x86-64 segmentation-fault

6
推荐指数
2
解决办法
541
查看次数

标签 统计

assembly ×1

c ×1

segmentation-fault ×1

x86-64 ×1