난 콜에 대한 다음의 정의를 판독 하였다 : 그것은 광고가 cmpq $-4095 %rax
%의 RAX는 -4095 -1 사이의 값을 포함하는지 여부를 결정하는 것이 반드시 설명cmpq 명령은 무엇을합니까?
.text
.globl syscall
.type syscall,%function
.align 16
syscall:
movq %rdi, %rax /* Syscall number -> rax. */
movq %rsi, %rdi /* shift arg1 - arg5. */
movq %rdx, %rsi
movq %rcx, %rdx
movq %r8, %r10
movq %r9, %r8
movq 8(%rsp),%r9 /* arg6 is on the stack. */
syscall /* Do the system call. */
cmpq $-4095, %rax /* Check %rax for error. */
jae __syscall_error /* Branch forward if it failed. */
ret /* Return to caller. */
.size syscall,.-syscall
. 어떻게 그럴 수 있죠? cmpq 명령은 정확히 무엇을합니까?