# An example of getting a return value from a system call (系统调用返回值)
#
#
.section .bss
.lcomm pid, 4
.lcomm uid, 4
.lcomm gid, 4
.section .text
.globl main
main:
movl $20, %eax
int $0x80
movl %eax, pid
movl $24, %eax
int $0x80
movl %eax, uid
movl $47, %eax
int $0x80
movl %eax, gid
end:
movl $1, %eax
movl $0, %ebx
int $0x80
# gcc -g -o 02 02-returnvalue.s -m32
#
#if 0
(gdb) b *end
Breakpoint 1 at 0x11c1: file 02-returnvalue.s, line 25.
(gdb) r
Starting program: /home/02
Breakpoint 1, end () at 02-returnvalue.s:25
25 movl $1, %eax
(gdb) x/d &pid
0x5655900c <pid>: 1681427
(gdb) x/d &uid
0x56559010 <uid>: 1015
(gdb) x/d &gid
0x56559014 <gid>: 1001
ps -e
1681427 pts/7 00:00:00 02
id
uid=1015(wang) gid=1001(camera) groups=1001(camera)
#endif