たとえばコードを書いた
.global _start
.data
str:
.long 0x1
.text
_start:
mov $1, %rax # system call 1 is write
mov $0x21, %rdx
mov %rdx, 4(%rax)
mov $60, %rax # system call 60 is exit
xor %rdi, %rdi # we want return code 0
syscall # invoke operating system to exit
セグメンテーション違反が発生するのはなぜですか?いつメモリロケーションを使用しますか?メモリロケーションをどのように使用しますか?