#include "as-layout.h"12.globl syscall_stub3.section .__syscall_stub, "ax"45.globl batch_syscall_stub6batch_syscall_stub:7/* load pointer to first operation */8mov $(STUB_DATA+8), %esp910again:11/* load length of additional data */12mov 0x0(%esp), %eax1314/* if(length == 0) : end of list */15/* write possible 0 to header */16mov %eax, STUB_DATA+417cmpl $0, %eax18jz done1920/* save current pointer */21mov %esp, STUB_DATA+42223/* skip additional data */24add %eax, %esp2526/* load syscall-# */27pop %eax2829/* load syscall params */30pop %ebx31pop %ecx32pop %edx33pop %esi34pop %edi35pop %ebp3637/* execute syscall */38int $0x803940/* check return value */41pop %ebx42cmp %ebx, %eax43je again4445done:46/* save return value */47mov %eax, STUB_DATA4849/* stop */50int3515253