What do you call the calling convention behind `int 0x80`?
2
votes
1
answer
3250
views
I know there is a
syscall
convention but what do you call the calling convention that precedes it that you see when you call to int 80
rather than syscall
, like this.
mov rax,4 ; system call number (sys_write)
mov rbx,1 ; file descriptor (stdout)
mov rcx,hello ; message to write
mov rdx,12 ; message length
int 0x80 ; call kernel
I read [here](http://www.int80h.org/bsdasm/#system-calls) that the arguments after rdx
are esi
, edi
, ebp
(or for x64 rsi
, rdi
, rbp
), I don't see it documented in [Wikipedia's page for calling conventions](https://en.wikipedia.org/wiki/X86_calling_conventions) , but [int80h](http://www.int80h.org/bsdasm/#system-calls) seems to indicate that Windows also uses this convention?
What is this conventioned named. Where in the Linux Kernel source can I see it defined? And, where is the table that resolves rax
to the procedures when you call int 0x80
? For syscall
, sys_write
is rax=1
Asked by Evan Carroll
(34663 rep)
May 30, 2018, 01:16 AM
Last activity: Jul 14, 2024, 01:47 PM
Last activity: Jul 14, 2024, 01:47 PM