I am currently trying to learn Assembly programming with an x86 architecture with ArchLinux.  I am just getting started on this journey and understand the inner-workings of the following program to print Hello World.
; Jon Webb
; December 31, 2021
; ==============================================================================
; ==============================================================================
; Data Section
section .data
; Message to be printed
msg: db "Hello World", 10
; Length of message
len: equ $ - msg
; ==============================================================================
; Code section
section .text
; Define entry point
global _start
_start:
        ; 4 is equivalent to sys_write(std_output, msg, len)
        mov eax, 4   ; Calls sys_write function from syscall
        mov ebx, 1   ; File descriptor (1 standard output)
        mov ecx, msg ; Message to be printed
        mov edx, len ; Length of message to be printed
        int 0x80     ; Make syscall
        ; 1 is equivalent to sys_exit(status)
        mov eax, 1   ; Specify exit syscall
        mov eab, 0   ; Pass a status code of zero which indicates successful conclusion
        int 0x80     ; Make syscall
; ==============================================================================
; ==============================================================================
; end of file
I understand how this code works.  The code is calling two Linux syscall functions sys_write() and sys_exit() that are defined by the integers 4 and 1 respectively.  In each function I call the function by passing its defining integer to eax, and then I pass the successive variables to ebx, ecx, edx, and so on.  In this case I know the two functions because the book I am reading tells me that 4 represents sys_write and 1 represents sys_exit; however, I suspect their are other similar functions.  Where can I get a list of all Linux syscall functions.  I thought this would be a simple answer answered by a simple google search, but so far I have come up with very little.  This is such a fundamental aspect to x86 Assembly programming that I would have though these functions would be listed in tutorials, but so far I have not found this to be true.
 
     
    