尝试scanf时出现分段错误(核心转储)

时间:2018-03-14 19:46:32

标签: linux assembly x86-64 libc att

我使用Assembly AT& T编写代码并始终显示

  

分段错误(核心转储)

我的程序应该显示

  

输入n:

的值

然后它应该取值然后显示这个值但是在取值之后会显示我上面提到的错误

我的代码是:

    .global _start
  .data

    format: .asciz "Enter the value for n: "
    format1: .asciz "Prime numbers between 1 and %d are: "
    num: .quad 0
    x: .string "%d"
  .text
_start:

  movq $1, %rax
  movq $format, %rdi
  call puts
  movq $0, %rax
  movq $x, %rdi
  xorq $num, %rsi
  call scanf
  movq $60, %rax
  xorq %rdi, %rdi
  syscall

它出了什么问题?

0 个答案:

没有答案