Assembly 一个系统调用,除非有一个我没有想到的查询保留或映射地址。无论如何,glibc的通用函数检查rax=-4095-1: . 另见。 mov rax,8000000000000000h ; The illustrative return valu
一个系统调用,除非有一个我没有想到的查询保留或映射地址。无论如何,glibc的通用函数检查rax=-4095-1: . 另见。Assembly 一个系统调用,除非有一个我没有想到的查询保留或映射地址。无论如何,glibc的通用函数检查rax=-4095-1: . 另见。 mov rax,8000000000000000h ; The illustrative return valu,assembly,x86,nasm,x86-64,Assembly,X86,Nasm,X86 64,一个系统调用,除非有一个我没有想到的查询保留或映射地址。无论如何,glibc的通用函数检查rax=-4095-1: . 另见。 mov rax,8000000000000000h ; The illustrative return value from our syscall test rax,rax ; Perform 'test' to set flags accordingly jns Exit
mov rax,8000000000000000h ; The illustrative return value from our syscall
test rax,rax ; Perform 'test' to set flags accordingly
jns Exit ; If SF set, 'fall-through' to 'Error'
; Write error message to stdout:
Error:
mov rax,4 ; sys_write
mov rbx,1 ; File descriptor 1, stdout
mov rcx,ErrorMsg ; Pass offset of message
mov rdx,ERRORLEN ; Length of error message
int 80h ; Kernel call
; Exit program:
Exit:
mov rax,1 ; exit system call
mov rbx,0 ; return a code of zero
int 80h ; make kernel call
test %rax, %rax
js error
cmpl %eax, 0xfffff000 # unsigned 2^32 - 4096, aka signed -4096
ja error # -4095 .. -1 is an error, anything else is non-error