Why does int 80h only work with certain code on x86_64 Linux?
for example:
section .bss
arg resq
section .text
global _start
_start:
; code here to fill arg with argv[1]
mov rax,1
mov rdi,2
mov rsi,[arg]
mov rdx,[arglen]
syscall
is fine, but
section .bss
arg resq
section .text
global _start
_start:
; code here to fill arg with argv[1]
mov rax,4
mov rbx,2
mov rcx,[arg]
mov rdx,[arglen]
int 80h
doesn't work with pointers copied from bss, if that's even relevant
rax is filled with 0xfffffffffffffff2, aka -14.
Bringing /prog/ back to its people
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy