Является ли системный вызов инструкцией для x86_64?

Я хотел проверить код выполнения системных вызовов в glibc. Я нашел что-то вроде этого.

ENTRY (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_LABEL /* Jump to error handler if error.  */
L(pseudo_end):
    ret         /* Return to caller.  */

Теперь мой вопрос: является ли системный вызов (перед инструкцией cmpq) инструкцией? Во-вторых, если это инструкция, что означает ENTRY (системный вызов)? Одно и то же название для ЗАПИСИ (я не знаю, что такое ЗАПИСИ) и инструкции? Во-вторых, что такое L(pseudo_end)?

11
задан hippietrail 23 January 2018 в 09:48
поделиться